]> git.sur5r.net Git - i3/i3/commitdiff
Activate the focused child when scrolling over tab/stack decorations 3279/head
authorDan Elkouby <streetwalkermc@gmail.com>
Sat, 5 May 2018 10:30:48 +0000 (13:30 +0300)
committerDan Elkouby <streetwalkermc@gmail.com>
Sat, 5 May 2018 10:30:48 +0000 (13:30 +0300)
fbce834b introduced a bug where scrolling over the decoration while
another container is focused would not focus the tabbed/stacked
container itself, but would instead move focus through the currently
focused container.

src/click.c
testcases/t/297-scroll-tabbed.t

index c2b38d4dd69d1ebfe5774e223df1ccb88e02d12a..81e95dfabfcf5c4f2a6a490b6dfcf919ddb7a699 100644 (file)
@@ -235,6 +235,7 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
          * container the user scrolled on. */
         Con *focused = con->parent;
         focused = TAILQ_FIRST(&(focused->focus_head));
+        con_activate(con_descend_focused(focused));
         /* To prevent scrolling from going outside the container (see ticket
          * #557), we first check if scrolling is possible at all. */
         bool scroll_prev_possible = (TAILQ_PREV(focused, nodes_head, nodes) != NULL);
index 6deeaf65d7a78743b7c53733bd368d8e202d5474..b535d0cd262a0839b6c219240133bfff8064d17f 100644 (file)
@@ -53,7 +53,7 @@ open_window;
 cmd 'splitv';
 my $last = open_window;
 # Second child of the outer horizontal split, next to the tabbed one.
-open_window;
+my $outside = open_window;
 cmd 'move right, move right';
 
 cmd '[id=' . $first->id . '] focus';
@@ -76,4 +76,9 @@ is($x->input_focus, $first->id, 'First window focused through scrolling');
 scroll_up;
 is($x->input_focus, $first->id, 'Scrolling again doesn\'t focus the whole sibling');
 
+# Try scrolling with another window focused
+cmd '[id=' . $outside->id . '] focus';
+scroll_up;
+is($x->input_focus, $first->id, 'Scrolling from outside the tabbed container works');
+
 done_testing;