aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/input.c')
-rw-r--r--swaybar/input.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/swaybar/input.c b/swaybar/input.c
index c8c8f0d4..f12eed79 100644
--- a/swaybar/input.c
+++ b/swaybar/input.c
@@ -166,14 +166,13 @@ static void wl_pointer_button(void *data, struct wl_pointer *wl_pointer,
166 return; 166 return;
167 } 167 }
168 168
169 if (check_bindings(seat->bar, button, state)) { 169 if (state == WL_POINTER_BUTTON_STATE_PRESSED) {
170 return; 170 if (process_hotspots(output, pointer->x, pointer->y, button)) {
171 return;
172 }
171 } 173 }
172 174
173 if (state != WL_POINTER_BUTTON_STATE_PRESSED) { 175 check_bindings(seat->bar, button, state);
174 return;
175 }
176 process_hotspots(output, pointer->x, pointer->y, button);
177} 176}
178 177
179static void workspace_next(struct swaybar *bar, struct swaybar_output *output, 178static void workspace_next(struct swaybar *bar, struct swaybar_output *output,
@@ -222,15 +221,14 @@ static void workspace_next(struct swaybar *bar, struct swaybar_output *output,
222static void process_discrete_scroll(struct swaybar_seat *seat, 221static void process_discrete_scroll(struct swaybar_seat *seat,
223 struct swaybar_output *output, struct swaybar_pointer *pointer, 222 struct swaybar_output *output, struct swaybar_pointer *pointer,
224 uint32_t axis, wl_fixed_t value) { 223 uint32_t axis, wl_fixed_t value) {
225 // If there is a button press binding, execute it, skip default behavior,
226 // and check button release bindings
227 uint32_t button = wl_axis_to_button(axis, value); 224 uint32_t button = wl_axis_to_button(axis, value);
228 if (check_bindings(seat->bar, button, WL_POINTER_BUTTON_STATE_PRESSED)) { 225 if (process_hotspots(output, pointer->x, pointer->y, button)) {
229 check_bindings(seat->bar, button, WL_POINTER_BUTTON_STATE_RELEASED);
230 return; 226 return;
231 } 227 }
232 228
233 if (process_hotspots(output, pointer->x, pointer->y, button)) { 229 // If there is a button press binding, execute it, and check button release bindings
230 if (check_bindings(seat->bar, button, WL_POINTER_BUTTON_STATE_PRESSED)) {
231 check_bindings(seat->bar, button, WL_POINTER_BUTTON_STATE_RELEASED);
234 return; 232 return;
235 } 233 }
236 234