Bugfix: fix crash when using multiple for_window statements that move windows (Thanks Antonio)
fixes #1257
This commit is contained in:
parent
a76a81f80b
commit
0552fd5666
|
@ -480,6 +480,10 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
|
|||
* workspace isn’t enough either — it needs the rect. */
|
||||
ws->rect = ws->parent->rect;
|
||||
render_con(ws, true);
|
||||
/* Disable setting focus, otherwise we’d move focus to an invisible
|
||||
* workspace, which we generally prevent (e.g. in
|
||||
* con_move_to_workspace). */
|
||||
set_focus = false;
|
||||
}
|
||||
render_con(croot, false);
|
||||
|
||||
|
@ -488,8 +492,10 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
|
|||
|
||||
/* Defer setting focus after the 'new' event has been sent to ensure the
|
||||
* proper window event sequence. */
|
||||
if (set_focus)
|
||||
if (set_focus) {
|
||||
DLOG("Now setting focus.\n");
|
||||
con_focus(nc);
|
||||
}
|
||||
|
||||
tree_render();
|
||||
|
||||
|
|
|
@ -42,4 +42,34 @@ does_i3_live;
|
|||
|
||||
exit_gracefully($pid);
|
||||
|
||||
################################################################################
|
||||
# Related bug: multiple for_window assignments caused a crash
|
||||
################################################################################
|
||||
|
||||
$config = <<EOT;
|
||||
# i3 config file (v4)
|
||||
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||
|
||||
for_window [instance=__i3-test-window1] move workspace 3
|
||||
for_window [instance=__i3-test-window2] move workspace 2
|
||||
EOT
|
||||
|
||||
$pid = launch_with_config($config);
|
||||
|
||||
my $window1 = open_window(
|
||||
wm_class => '__i3-test-window1',
|
||||
dont_map => 1,
|
||||
);
|
||||
$window1->map;
|
||||
|
||||
my $window2 = open_window(
|
||||
wm_class => '__i3-test-window2',
|
||||
dont_map => 1,
|
||||
);
|
||||
$window2->map;
|
||||
|
||||
does_i3_live;
|
||||
|
||||
exit_gracefully($pid);
|
||||
|
||||
done_testing;
|
||||
|
|
Loading…
Reference in New Issue