aboutsummaryrefslogtreecommitdiff
path: root/src/event.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-24 19:39:19 +0100
committerFederico Angelilli <code@fedang.net>2024-11-24 19:39:19 +0100
commitdef1e18d86579cf77649d1b8aa596d0877b822bb (patch)
tree0e6deebdef1575b4b74472bc4367b294f7551753 /src/event.c
parent76ad6b0d404d40f08b73d90ac5f66564c29feb95 (diff)
Refactor block_change_fn
Diffstat (limited to 'src/event.c')
-rw-r--r--src/event.c14
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;