diff options
| author | Federico Angelilli <code@fedang.net> | 2024-11-24 19:39:19 +0100 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2024-11-24 19:39:19 +0100 |
| commit | def1e18d86579cf77649d1b8aa596d0877b822bb (patch) | |
| tree | 0e6deebdef1575b4b74472bc4367b294f7551753 /src/event.c | |
| parent | 76ad6b0d404d40f08b73d90ac5f66564c29feb95 (diff) | |
Refactor block_change_fn
Diffstat (limited to 'src/event.c')
| -rw-r--r-- | src/event.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/event.c b/src/event.c index 5e8d7d5..b4e1975 100644 --- a/src/event.c +++ b/src/event.c @@ -81,7 +81,7 @@ static void event_dispatch_callback(event_state_t *state, layout_t *layout, even "b:action", layout->block->actions != NULL, "b:callback", event_fn != NULL); - if (layout->block->actions != NULL) { + if (event_is_click(event) && layout->block->actions != NULL) { action_perform(layout->block->actions, layout->block, state->config); } @@ -123,9 +123,15 @@ static bool event_dispatch_mouse(event_state_t *state, layout_t *layout, event_t if (event_is_hover(event)) { // Compare only the part related to position and size // - bool update = !memcmp(&state->hovered, layout, offsetof(layout_t, line_width)) - && event.x == state->hover_x - && event.y == state->hover_y; + bool update = event.x == state->hover_x + && event.y == state->hover_y + && state->hovered.x == layout->x + && state->hovered.y == layout->y + && state->hovered.x_padding == layout->x_padding + && state->hovered.y_padding == layout->y_padding + && state->hovered.width == layout->width + && state->hovered.height == layout->height + && state->hovered.line_width == layout->line_width; state->hover_x = event.x; state->hover_y = event.y; |
