aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/cursor.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-01-09 18:15:15 -0500
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-01-09 18:15:15 -0500
commita8b3ae92844f9d0cbd9266ff0731889fd7da0ad5 (patch)
treed79b572e87e9f95151f762078d427c5839798384 /sway/input/cursor.c
parentReset container dimensions when moving into workspace from direction (diff)
downloadsway-a8b3ae92844f9d0cbd9266ff0731889fd7da0ad5.tar.gz
sway-a8b3ae92844f9d0cbd9266ff0731889fd7da0ad5.tar.zst
sway-a8b3ae92844f9d0cbd9266ff0731889fd7da0ad5.zip
cursor: allow scrolling tabs/stack on title border
This allows tabbed and stacked containers to be scrolled through when the cursor is over the border of the title bar. The borders around the other three edges of the contents should not be affected by this change.
Diffstat (limited to 'sway/input/cursor.c')
-rw-r--r--sway/input/cursor.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index 96feb47d..07c3fe1d 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -1092,6 +1092,8 @@ static void dispatch_cursor_axis(struct sway_cursor *cursor,
1092 enum wlr_edges edge = cont ? find_edge(cont, cursor) : WLR_EDGE_NONE; 1092 enum wlr_edges edge = cont ? find_edge(cont, cursor) : WLR_EDGE_NONE;
1093 bool on_border = edge != WLR_EDGE_NONE; 1093 bool on_border = edge != WLR_EDGE_NONE;
1094 bool on_titlebar = cont && !on_border && !surface; 1094 bool on_titlebar = cont && !on_border && !surface;
1095 bool on_titlebar_border = cont && on_border &&
1096 cursor->cursor->y < cont->content_y;
1095 bool on_contents = cont && !on_border && surface; 1097 bool on_contents = cont && !on_border && surface;
1096 float scroll_factor = 1098 float scroll_factor =
1097 (ic == NULL || ic->scroll_factor == FLT_MIN) ? 1.0f : ic->scroll_factor; 1099 (ic == NULL || ic->scroll_factor == FLT_MIN) ? 1.0f : ic->scroll_factor;
@@ -1117,7 +1119,7 @@ static void dispatch_cursor_axis(struct sway_cursor *cursor,
1117 } 1119 }
1118 1120
1119 // Scrolling on a tabbed or stacked title bar (handled as press event) 1121 // Scrolling on a tabbed or stacked title bar (handled as press event)
1120 if (!handled && on_titlebar) { 1122 if (!handled && (on_titlebar || on_titlebar_border)) {
1121 enum sway_container_layout layout = container_parent_layout(cont); 1123 enum sway_container_layout layout = container_parent_layout(cont);
1122 if (layout == L_TABBED || layout == L_STACKED) { 1124 if (layout == L_TABBED || layout == L_STACKED) {
1123 struct sway_node *tabcontainer = node_get_parent(node); 1125 struct sway_node *tabcontainer = node_get_parent(node);