mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
input/cursor.c: avoid consuming scroll on client mousebind
This commit is contained in:
parent
df8e3d819c
commit
4cdc6c435b
1 changed files with 4 additions and 3 deletions
|
|
@ -1346,7 +1346,7 @@ process_cursor_axis(struct server *server, enum wl_pointer_axis orientation,
|
||||||
wlr_log(WLR_DEBUG, "Failed to handle cursor axis event");
|
wlr_log(WLR_DEBUG, "Failed to handle cursor axis event");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool handled = false;
|
bool consumed = false;
|
||||||
if (direction != LAB_DIRECTION_INVALID) {
|
if (direction != LAB_DIRECTION_INVALID) {
|
||||||
struct mousebind *mousebind;
|
struct mousebind *mousebind;
|
||||||
wl_list_for_each(mousebind, &rc.mousebinds, link) {
|
wl_list_for_each(mousebind, &rc.mousebinds, link) {
|
||||||
|
|
@ -1358,7 +1358,8 @@ process_cursor_axis(struct server *server, enum wl_pointer_axis orientation,
|
||||||
&& mousebind->direction == direction
|
&& mousebind->direction == direction
|
||||||
&& modifiers == mousebind->modifiers
|
&& modifiers == mousebind->modifiers
|
||||||
&& mousebind->mouse_event == MOUSE_ACTION_SCROLL) {
|
&& mousebind->mouse_event == MOUSE_ACTION_SCROLL) {
|
||||||
handled = true;
|
consumed |= mousebind->context == LAB_NODE_FRAME;
|
||||||
|
consumed |= mousebind->context == LAB_NODE_ALL;
|
||||||
/*
|
/*
|
||||||
* Action may not be executed if the accumulated scroll delta
|
* Action may not be executed if the accumulated scroll delta
|
||||||
* on touchpads or hi-res mice doesn't exceed the threshold
|
* on touchpads or hi-res mice doesn't exceed the threshold
|
||||||
|
|
@ -1371,7 +1372,7 @@ process_cursor_axis(struct server *server, enum wl_pointer_axis orientation,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bindings swallow mouse events if activated */
|
/* Bindings swallow mouse events if activated */
|
||||||
if (ctx.surface && !handled) {
|
if (ctx.surface && !consumed) {
|
||||||
/* Make sure we are sending the events to the surface under the cursor */
|
/* Make sure we are sending the events to the surface under the cursor */
|
||||||
double sx, sy;
|
double sx, sy;
|
||||||
cursor_update_common(server, &ctx, /*cursor_has_moved*/ false, &sx, &sy);
|
cursor_update_common(server, &ctx, /*cursor_has_moved*/ false, &sx, &sy);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue