diff options
Diffstat (limited to 'x11-wm/i3-4.5.1/fix-floating-bug.patch')
-rw-r--r-- | x11-wm/i3-4.5.1/fix-floating-bug.patch | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/x11-wm/i3-4.5.1/fix-floating-bug.patch b/x11-wm/i3-4.5.1/fix-floating-bug.patch deleted file mode 100644 index a72cd9f..0000000 --- a/x11-wm/i3-4.5.1/fix-floating-bug.patch +++ /dev/null @@ -1,108 +0,0 @@ -From b4f7142509e3af51504a1e72163d544d305f0fa8 Mon Sep 17 00:00:00 2001 -From: Michael Stapelberg <michael@stapelberg.de> -Date: Sat, 29 Jun 2013 18:27:33 +0000 -Subject: Bugfix: fix focus handling in 'floating disable' on non-visible windows (Thanks necoro) - -fixes #1027 ---- -diff --git a/src/floating.c b/src/floating.c -index 49a4122..ea93747 100644 ---- a/src/floating.c -+++ b/src/floating.c -@@ -315,6 +315,8 @@ void floating_disable(Con *con, bool automatic) { - return; - } - -+ const bool set_focus = (con == focused); -+ - Con *ws = con_get_workspace(con); - - /* 1: detach from parent container */ -@@ -344,8 +346,9 @@ void floating_disable(Con *con, bool automatic) { - con_attach(con, con->parent, false); - - con_fix_percent(con->parent); -- // TODO: don’t influence focus handling when Con was not focused before. -- con_focus(con); -+ -+ if (set_focus) -+ con_focus(con); - } - - /* -diff --git a/testcases/t/208-regress-floating-criteria.t b/testcases/t/208-regress-floating-criteria.t -new file mode 100644 -index 0000000..09a29fd ---- a/dev/null -+++ b/testcases/t/208-regress-floating-criteria.t -@@ -0,0 +1,68 @@ -+#!perl -+# vim:ts=4:sw=4:expandtab -+# -+# Please read the following documents before working on tests: -+# • http://build.i3wm.org/docs/testsuite.html -+# (or docs/testsuite) -+# -+# • http://build.i3wm.org/docs/lib-i3test.html -+# (alternatively: perldoc ./testcases/lib/i3test.pm) -+# -+# • http://build.i3wm.org/docs/ipc.html -+# (or docs/ipc) -+# -+# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf -+# (unless you are already familiar with Perl) -+# -+# Regression test for focus handling when using floating enable/disable with -+# criteria for windows on non-visible workspaces. -+# Ticket: #1027 -+# Bug still in: 4.5.1-90-g6582da9 -+use i3test i3_autostart => 0; -+use X11::XCB qw(PROP_MODE_REPLACE); -+ -+my $config = <<'EOT'; -+# i3 config file (v4) -+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 -+ -+assign [class="^special$"] → mail -+for_window [class="^special$"] floating enable, floating disable -+EOT -+ -+my $pid = launch_with_config($config); -+ -+# TODO: move this to X11::XCB::Window -+sub set_wm_class { -+ my ($id, $class, $instance) = @_; -+ -+ # Add a _NET_WM_STRUT_PARTIAL hint -+ my $atomname = $x->atom(name => 'WM_CLASS'); -+ my $atomtype = $x->atom(name => 'STRING'); -+ -+ $x->change_property( -+ PROP_MODE_REPLACE, -+ $id, -+ $atomname->id, -+ $atomtype->id, -+ 8, -+ length($class) + length($instance) + 2, -+ "$instance\x00$class\x00" -+ ); -+} -+ -+my $window = open_window( -+ name => 'Borderless window', -+ before_map => sub { set_wm_class($_->id, 'special', 'special') }, -+ dont_map => 1, -+); -+$window->map; -+ -+sync_with_i3; -+ -+cmd '[class="^special$"] focus'; -+ -+does_i3_live; -+ -+exit_gracefully($pid); -+ -+done_testing; --- -cgit v0.9.0.3 |