aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2019-01-09 18:15:15 -0500
committerBrian Ashworth <bosrsf04@gmail.com>2019-01-09 18:15:15 -0500
commita8b3ae92844f9d0cbd9266ff0731889fd7da0ad5 (patch)
treed79b572e87e9f95151f762078d427c5839798384
parent14cab7861294189f820e0830ae84ac7b15271342 (diff)
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.
-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,
enum wlr_edges edge = cont ? find_edge(cont, cursor) : WLR_EDGE_NONE;
bool on_border = edge != WLR_EDGE_NONE;
bool on_titlebar = cont && !on_border && !surface;
+ bool on_titlebar_border = cont && on_border &&
+ cursor->cursor->y < cont->content_y;
bool on_contents = cont && !on_border && surface;
float scroll_factor =
(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,
}
// Scrolling on a tabbed or stacked title bar (handled as press event)
- if (!handled && on_titlebar) {
+ if (!handled && (on_titlebar || on_titlebar_border)) {
enum sway_container_layout layout = container_parent_layout(cont);
if (layout == L_TABBED || layout == L_STACKED) {
struct sway_node *tabcontainer = node_get_parent(node);