diff options
author | Jim Ramsay <lack@gentoo.org> | 2009-05-26 16:53:38 +0000 |
---|---|---|
committer | Jim Ramsay <lack@gentoo.org> | 2009-05-26 16:53:38 +0000 |
commit | f848d8c34bad969551b47476a1fdcccb80a9aa8a (patch) | |
tree | 36c2c0ea310bded2ebfceeb3cbdade948fe93ee2 /x11-wm | |
parent | Add depend.apache_pkg_setup() and don't call use() in functions called in "de... (diff) | |
download | historical-f848d8c34bad969551b47476a1fdcccb80a9aa8a.tar.gz historical-f848d8c34bad969551b47476a1fdcccb80a9aa8a.tar.bz2 historical-f848d8c34bad969551b47476a1fdcccb80a9aa8a.zip |
Added patches for all known 1.1.1 bugs
Package-Manager: portage-2.2_rc27/cvs/Linux x86_64
Diffstat (limited to 'x11-wm')
-rw-r--r-- | x11-wm/fluxbox/ChangeLog | 10 | ||||
-rw-r--r-- | x11-wm/fluxbox/Manifest | 8 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch | 74 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/keyparse_hang.patch | 13 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch | 68 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/mousefocus-1.1.1.patch | 240 | ||||
-rw-r--r-- | x11-wm/fluxbox/fluxbox-1.1.1-r1.ebuild (renamed from x11-wm/fluxbox/fluxbox-1.1.1.ebuild) | 15 |
7 files changed, 405 insertions, 23 deletions
diff --git a/x11-wm/fluxbox/ChangeLog b/x11-wm/fluxbox/ChangeLog index c4c95352f9b6..f809a4f6c4cd 100644 --- a/x11-wm/fluxbox/ChangeLog +++ b/x11-wm/fluxbox/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for x11-wm/fluxbox # Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.265 2009/04/08 16:40:32 lack Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.266 2009/05/26 16:53:38 lack Exp $ + +*fluxbox-1.1.1-r1 (26 May 2009) + + 26 May 2009; Jim Ramsay <lack@gentoo.org> + +files/fbsetbg-quiet-1.1.1.patch, +files/macrocmd-crash-1.1.1.patch, + +files/mousefocus-1.1.1.patch, -files/keyparse_hang.patch, + -fluxbox-1.1.1.ebuild, +fluxbox-1.1.1-r1.ebuild: + Added patches for all known 1.1.1 bugs 08 Apr 2009; Jim Ramsay <lack@gentoo.org> +files/keyparse_hang.patch, fluxbox-1.1.0.1.ebuild, fluxbox-1.1.1.ebuild: diff --git a/x11-wm/fluxbox/Manifest b/x11-wm/fluxbox/Manifest index 3008000318a4..66b83197e90e 100644 --- a/x11-wm/fluxbox/Manifest +++ b/x11-wm/fluxbox/Manifest @@ -2,10 +2,12 @@ AUX 1.0.0/gcc-4.3.patch 258 RMD160 c2a45bbb135f43ed008bb76c8e545d113169dcb8 SHA1 AUX 1.0.0/generate-menu.patch 1369 RMD160 58c1e756f7a2eb2d25d87dda9b6aaa7efb31288a SHA1 975b782c35d43a7ddbf408ba5e7a743f7872f969 SHA256 93bfb1d51eba8ad06eb7c47896c0d17bb107f9bc04309049a8acf6f522fa08ef AUX 1.0.0/gentoo_style_location.patch 676 RMD160 1425985eaa03a4404a4a0128d7e695dbbc14d51f SHA1 83d725fd320b8f9af329176bc8941b843e4ab559 SHA256 3765d1d02fa0db808d8d657b996508bd8425ed6ef6d898f4ecb0b7fe39d26a5f AUX 1.1.0.1/gentoo_style_location.patch 711 RMD160 d6d358759ba664bcfcf098f47d37f206387de007 SHA1 1ac6b515ab6004757cd5217cb74c892feb5ea5ee SHA256 84aba82bc9ab3a9dcdeb3857eb7ee0236a8ec96ae77e29cd0455813bac473915 +AUX fbsetbg-quiet-1.1.1.patch 2342 RMD160 211d9a868d608d87804ca79062a982838c12aa78 SHA1 366d1b452e7b8066a75f9f0f26d0ae7ac2ac3739 SHA256 e9ad48a2281549af472a0cc784e840c06d0032bd4f958a2c8bbabac134f01c0c AUX fluxbox.desktop 202 RMD160 255bb2cdae75e1fc204d4b60f39c8aba66770e7a SHA1 d57b4d0fad653660cc6cf0a2cd808b7a34d72b95 SHA256 8859f44f3eccc7b3e08c9f61f40351c49cd77c4624aabe3029572a3412687834 AUX fluxbox.xsession 2004 RMD160 9a5f192628d6d888734f24b9ff4f6f1b7e8f178b SHA1 ec59f4611868866b8bc6d7fc9762bbc9bca640c3 SHA256 dbff4840a2c32c8ab837e4f34cb002f810dccca107f5e04a28c22d33db2a59bd AUX gentoo_style_location-1.1.x.patch 711 RMD160 d6d358759ba664bcfcf098f47d37f206387de007 SHA1 1ac6b515ab6004757cd5217cb74c892feb5ea5ee SHA256 84aba82bc9ab3a9dcdeb3857eb7ee0236a8ec96ae77e29cd0455813bac473915 -AUX keyparse_hang.patch 516 RMD160 1a806a5f23dcdad6073e7787b6a402b0dd5b8845 SHA1 7b4cdb0c738ff6ea476658721d3291856c4d696b SHA256 d2c94615b8def1e5e8da87b53c104579fe7dd42bb46718acdffeb0742aae8691 +AUX macrocmd-crash-1.1.1.patch 2251 RMD160 716f3da654365730a964d693dac789a17258e164 SHA1 aa55faaaa3637b02b221c64c7a195ad1fbe434c6 SHA256 4d99d38a56aae213d03aafbf6041d8eadd7197f2212fc94deefaab803dd877a5 +AUX mousefocus-1.1.1.patch 8127 RMD160 7cd8b23c7db46256f45f931fcd44b3c18d627e3d SHA1 e83c7994439b8a7f6c10ccaac6509df2fa223a90 SHA256 a9fb2c249f13abde8a96912db9bade7252d9b312fc0ae11acee0b266773fa8b1 AUX styles-menu-commonbox 127 RMD160 e5668235e10ffa8fa73683d23d4483c85bf4296e SHA1 59c6aed23a105536de1b1264f94ee75008d74557 SHA256 44a56b182b0da9bf26ac41ff7e5ea8da3ddb7c5cbca0f554e3c74f15c72a3d98 AUX styles-menu-fluxbox 117 RMD160 a2f3ced8acd6bd9057aea30b6ca374cff7d3db3e SHA1 99692536559b07878054852e17171d4ef5f79a76 SHA256 f5829a442d8653941e2741ab73f49e9d9c95fc8129531e4197730c0bbb2f2989 AUX styles-menu-user 93 RMD160 2a6831b45ce1d655586b699d16c0547de201d187 SHA1 84a02411e552875877c169a08b49dc452176c474 SHA256 5f708a443c602485d958cb21cf55d9680e86aa3369215552c35ed9f46429e946 @@ -15,7 +17,7 @@ DIST fluxbox-1.1.1.tar.bz2 777660 RMD160 aabfdd10c835d0ef903885646a7f34f7df75af1 EBUILD fluxbox-1.0.0-r2.ebuild 3276 RMD160 841ef4db96203fe011f1df58707f4b3277bc8113 SHA1 2903a80836247319ef209043199419dad14e68f0 SHA256 073d59b4454cdb15cb366bc1db8f1617a28f6de6bdef92360db2ac1a08fd2865 EBUILD fluxbox-1.0.0.ebuild 3140 RMD160 5aeae8a078a67f9e6db1b9ac5daa70cc87d13bc4 SHA1 2af62fb34ba4ac56868db7f9e594b6ed2ae2f322 SHA256 e53bc5de76018b26269b8a89abd92b7633b13415cbb4d3957cca18bc259ddc4d EBUILD fluxbox-1.1.0.1.ebuild 3169 RMD160 374266575329074827199235f61f0bf1a9da04d2 SHA1 73fff6e5f0f8c170848f59e06856300eb166778f SHA256 9f30f9b6023fa194fc451a128de84c154d4f8b699dc1aef009079e591082c4c6 -EBUILD fluxbox-1.1.1.ebuild 3172 RMD160 626cc619938637af4f57a5bae189e1db44b495e2 SHA1 26eb65b11c11d9138bb081f6bfb959bcc407d29d SHA256 1a3eb3a42ffc0066c29e22e8049d7273f5d5f3fb27f3c1de232853216389485b +EBUILD fluxbox-1.1.1-r1.ebuild 3359 RMD160 8c492c0feed6f18e6ff2a0cd4893b1bf7b5267dc SHA1 eb59bd854ed190641394a1b9b25c78ca4dfe717b SHA256 d6ff542e44b8ad8dd701ce47d9476bfe81fac45c8928b5ff2147324c1c4a029a EBUILD fluxbox-9999.ebuild 3131 RMD160 c8d34fce442c29e0ebfff88ba96c0fcbe7d6d165 SHA1 12281f92b56c7d2fc59123fffd17d3a0e9948b33 SHA256 24a445b5b69a7efef3723687a7828eb4a7aa7534eb072e87fa483b779131e918 -MISC ChangeLog 49053 RMD160 1c324f92828c92e894e42faceacfdea765788415 SHA1 3a4db19feea9411122237d8ba20b3225f3cde569 SHA256 6a281450b78bf7b7c42e4cfc29105b15afefe81732fb340ddfb636292e5e3708 +MISC ChangeLog 49355 RMD160 17eb9df61aced293bb679bcf9eacf3ec0b9168e5 SHA1 100fbe631d95a4ae83fea769a8ec1cad0efb2230 SHA256 b4641e4c328931e334c3bb1819aedd63278897f4ec8d7932d993e0ea7b146412 MISC metadata.xml 890 RMD160 c07e8a6d876e730c1608809d2b6294cf1511bbb3 SHA1 dd886d7bba0ff28bcda9f82d356bd1b1d0d183e8 SHA256 47616493ac1ab0f7858e5f7b55b61b3e17ec0cb992ce2a5f3858a47250a3926f diff --git a/x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch b/x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch new file mode 100644 index 000000000000..a74a4ffb041c --- /dev/null +++ b/x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch @@ -0,0 +1,74 @@ +From 2c60fe4addd9480d78bf6d41c4aa9c179c70df01 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Fri, 24 Apr 2009 11:25:08 -0400 +Subject: [PATCH 1/2] Allow 'background: unset' + +When a user sets 'background: none' it really means "Do not let themes touch the +background I have already set with fbsetbg" -> It does still actually call +fbsetbeg to re-assert the proper background. + +This new value 'unset' is for users who will use an alternate method to set +their background (root-tail, xscreensaver, or whatever). It instructs fluxbox +to *never* run fbsetbg. +--- + src/RootTheme.cc | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/src/RootTheme.cc b/src/RootTheme.cc +index 049eb27..34c06e9 100644 +--- a/src/RootTheme.cc ++++ b/src/RootTheme.cc +@@ -202,6 +202,10 @@ void RootTheme::reconfigTheme() { + filename = FbTk::StringUtil::expandFilename(filename); + std::string cmd = realProgramName("fbsetbg") + (m_first ? " -z " : " -Z "); + ++ // user explicitly requests NO background be set at all ++ if (strstr(m_background->options().c_str(), "unset") != 0) { ++ return; ++ } + // style doesn't wish to change the background + if (strstr(m_background->options().c_str(), "none") != 0) { + if (!m_first) +-- +1.6.2 + + +From 23857ca509be6a8ffa306c23c8d39942105a13f9 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Fri, 24 Apr 2009 14:15:58 -0400 +Subject: [PATCH 2/2] Don't complain on '-z' if there's no lastwallpaper + +This hides the odd cornercase of users with no lastwallpaper file and no +background set in their style or overlay. + +Adapted from the patch at +http://sourceforge.net/tracker/?func=detail&aid=2389567&group_id=35398&atid=413962 +--- + util/fbsetbg | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/util/fbsetbg b/util/fbsetbg +index a12d427..47aa33b 100644 +--- a/util/fbsetbg ++++ b/util/fbsetbg +@@ -308,6 +308,7 @@ while [ $# -gt 0 ]; do + remember=false + break + fi ++ ignore_missing_wallpaper=true + style="style" + shift ;; + -Z) +@@ -521,6 +522,9 @@ fi + + + if [ ! -r "$wallpaper" ]; then ++ if [ "$ignore_missing_wallpaper" == "true" ]; then ++ exit 0 ++ fi + message "Can't find wallpaper $wallpaper" + exit 1 + fi +-- +1.6.2 + diff --git a/x11-wm/fluxbox/files/keyparse_hang.patch b/x11-wm/fluxbox/files/keyparse_hang.patch deleted file mode 100644 index b9f8a5896a74..000000000000 --- a/x11-wm/fluxbox/files/keyparse_hang.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/FbTk/StringUtil.hh b/src/FbTk/StringUtil.hh -index 75fa69e..35f23a2 100644 ---- a/src/FbTk/StringUtil.hh -+++ b/src/FbTk/StringUtil.hh -@@ -84,7 +84,7 @@ static void stringTokensBetween(Container &container, const std::string &in, - while (true) { - err = getStringBetween(token, in.c_str() + pos, first, last, ok_chars, - allow_nesting); -- if (err == 0) -+ if (err <= 0) - break; - container.push_back(token); - pos += err; diff --git a/x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch b/x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch new file mode 100644 index 000000000000..2d5d1bda78dd --- /dev/null +++ b/x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch @@ -0,0 +1,68 @@ +From 183e6666f6afd7973f60f2253187e8c24b58b6b1 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Mon, 6 Apr 2009 17:25:01 -0400 +Subject: [PATCH 1/2] Exit loop for unterminated { } pair + +--- + src/FbTk/StringUtil.hh | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/FbTk/StringUtil.hh b/src/FbTk/StringUtil.hh +index 75fa69e..35f23a2 100644 +--- a/src/FbTk/StringUtil.hh ++++ b/src/FbTk/StringUtil.hh +@@ -84,7 +84,7 @@ static void stringTokensBetween(Container &container, const std::string &in, + while (true) { + err = getStringBetween(token, in.c_str() + pos, first, last, ok_chars, + allow_nesting); +- if (err == 0) ++ if (err <= 0) + break; + container.push_back(token); + pos += err; +-- +1.6.2 + + +From 55c45305d4f6973f5fbecec1e527e55dd6bd9fa5 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Wed, 8 Apr 2009 10:57:04 -0400 +Subject: [PATCH 2/2] Error on incomplete MacroCmd key command + +--- + src/FbTk/MacroCommand.cc | 16 +++++++++------- + 1 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/src/FbTk/MacroCommand.cc b/src/FbTk/MacroCommand.cc +index 511683b..555e5f5 100644 +--- a/src/FbTk/MacroCommand.cc ++++ b/src/FbTk/MacroCommand.cc +@@ -33,16 +33,18 @@ namespace { + template <typename M> + M *addCommands(M *macro, const std::string &args, bool trusted) { + +- std::string blah; ++ std::string remainder; + std::list<std::string> cmds; +- StringUtil::stringTokensBetween(cmds, args, blah, '{', '}'); ++ StringUtil::stringTokensBetween(cmds, args, remainder, '{', '}'); + RefCount<Command<void> > cmd(0); + +- std::list<std::string>::iterator it = cmds.begin(), it_end = cmds.end(); +- for (; it != it_end; ++it) { +- cmd = CommandParser<void>::instance().parse(*it, trusted); +- if (*cmd) +- macro->add(cmd); ++ if (remainder.length() == 0) { ++ std::list<std::string>::iterator it = cmds.begin(), it_end = cmds.end(); ++ for (; it != it_end; ++it) { ++ cmd = CommandParser<void>::instance().parse(*it, trusted); ++ if (*cmd) ++ macro->add(cmd); ++ } + } + + if (macro->size() > 0) +-- +1.6.2 + diff --git a/x11-wm/fluxbox/files/mousefocus-1.1.1.patch b/x11-wm/fluxbox/files/mousefocus-1.1.1.patch new file mode 100644 index 000000000000..12cc1cb78999 --- /dev/null +++ b/x11-wm/fluxbox/files/mousefocus-1.1.1.patch @@ -0,0 +1,240 @@ +From 5c7784affe78467d7ef4e52e22da83c341622d53 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Fri, 30 Jan 2009 10:41:27 -0500 +Subject: [PATCH 1/5] Added facility to selectively ignore EnterNotify events + +This will be used to avoid some situations where an EnterNotify event should not +focus the window beneath the mouse cursor. For example, when a menu (or any +window for that matter) is unmapped, focus should not pass to whatever window is +beneath the current location of the mouse cursor, but to the previous window in +the focus list. + +This was first noticed when using the ClientMenu feature with +focus-follows-mouse on -> The focus would always end up on the window beneath +the mouse pointer, not the window selected in the menu. +--- + src/FocusControl.cc | 25 ++++++++++++++++++++++++- + src/FocusControl.hh | 10 ++++++++++ + src/Window.cc | 8 ++++++-- + 3 files changed, 40 insertions(+), 3 deletions(-) + +diff --git a/src/FocusControl.cc b/src/FocusControl.cc +index 78752bb..701373b 100644 +--- a/src/FocusControl.cc ++++ b/src/FocusControl.cc +@@ -81,7 +81,8 @@ FocusControl::FocusControl(BScreen &screen): + m_focused_win_list(screen), m_creation_order_win_list(screen), + m_cycling_list(0), + m_was_iconic(false), +- m_cycling_last(0) { ++ m_cycling_last(0), ++ m_ignore_mouse_x(-1), m_ignore_mouse_y(-1) { + + m_cycling_window = m_focused_list.clientList().end(); + +@@ -400,6 +401,28 @@ void FocusControl::dirFocus(FluxboxWindow &win, FocusDir dir) { + + } + ++void FocusControl::ignoreAtPointer() ++{ ++ int ignore_i; ++ unsigned int ignore_ui; ++ Window ignore_w; ++ ++ XQueryPointer(m_screen.rootWindow().display(), ++ m_screen.rootWindow().window(), &ignore_w, &ignore_w, ++ &m_ignore_mouse_x, &m_ignore_mouse_y, ++ &ignore_i, &ignore_i, &ignore_ui); ++} ++ ++void FocusControl::ignoreAt(int x, int y) ++{ ++ m_ignore_mouse_x = x; m_ignore_mouse_y = y; ++} ++ ++bool FocusControl::isIgnored(int x, int y) ++{ ++ return x == m_ignore_mouse_x && y == m_ignore_mouse_y; ++} ++ + void FocusControl::removeClient(WinClient &client) { + if (client.screen().isShuttingdown()) + return; +diff --git a/src/FocusControl.hh b/src/FocusControl.hh +index 4de4310..91681ab 100644 +--- a/src/FocusControl.hh ++++ b/src/FocusControl.hh +@@ -93,6 +93,15 @@ public: + bool isMouseFocus() const { return focusModel() == MOUSEFOCUS; } + /// @return true if tab focus mode is mouse tab focus + bool isMouseTabFocus() const { return tabFocusModel() == MOUSETABFOCUS; } ++ ++ /// Set the "ignore" pointer location to the current pointer location ++ void ignoreAtPointer(); ++ /// Set the "ignore" pointer location to the given coordinates ++ void ignoreAt(int x, int y); ++ /// @return true if events at the given X/Y coordinate should be ignored ++ /// (ie, they were previously cached via one of the ignoreAt calls) ++ bool isIgnored(int x, int y); ++ + /// @return true if cycling is in progress + bool isCycling() const { return m_cycling_list != 0; } + /// Appends a client to the front of the focus list +@@ -157,6 +166,7 @@ private: + const FocusableList *m_cycling_list; + Focusable *m_was_iconic; + WinClient *m_cycling_last; ++ int m_ignore_mouse_x, m_ignore_mouse_y; + + static WinClient *s_focused_window; + static FluxboxWindow *s_focused_fbwindow; +diff --git a/src/Window.cc b/src/Window.cc +index 4b4d1dc..513fbb6 100644 +--- a/src/Window.cc ++++ b/src/Window.cc +@@ -2680,13 +2680,17 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { + sa.enter = sa.leave = False; + XCheckIfEvent(display, &dummy, queueScanner, (char *) &sa); + +- if ((!sa.leave || sa.inferior) && !screen().focusControl().isCycling() ) { ++ if ((!sa.leave || sa.inferior) && ++ !screen().focusControl().isCycling() && ++ !screen().focusControl().isIgnored(ev.x_root, ev.y_root) ) { + focus(); + } + } + } + +- if (screen().focusControl().isMouseTabFocus() && client && client != m_client) { ++ if (screen().focusControl().isMouseTabFocus() && ++ client && client != m_client && ++ !screen().focusControl().isIgnored(ev.x_root, ev.y_root) ) { + setCurrentClient(*client, isFocused()); + } + +-- +1.6.2 + + +From 76ea1d9bbe3f3b7edb15da1a67652982edd5f646 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Fri, 30 Jan 2009 10:47:24 -0500 +Subject: [PATCH 2/5] Ignore EnterNotify on Unmap + +This is the basic condition that was first noticed because of the effect of the +ClientMenu window unmapping and the resulting EnterNotify event stealing focus +from the window selected in that menu. But to be complete, any window unmapping +should cause focus to move to the next in the last-recently-focused window list, +not the one that happens to be beneath the mouse cursor. +--- + src/fluxbox.cc | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/src/fluxbox.cc b/src/fluxbox.cc +index 93768da..f44f8aa 100644 +--- a/src/fluxbox.cc ++++ b/src/fluxbox.cc +@@ -899,6 +899,11 @@ void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) { + + BScreen *screen = searchScreen(ue.event); + ++ if (screen) { ++ /* Ignore all EnterNotify events until the pointer actually moves */ ++ screen->focusControl().ignoreAtPointer(); ++ } ++ + if (ue.event != ue.window && (!screen || !ue.send_event)) { + return; + } +-- +1.6.2 + + +From 8a7879913ba7169224e18db81888a49e732c1819 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Fri, 30 Jan 2009 10:51:10 -0500 +Subject: [PATCH 3/5] Ignore EnterNotify on Lower + +Lower is one of the actions which may reveal a window under the current mouse +pointer which would unexpectedly change focus under focus-folows-mouse. +--- + src/Window.cc | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/src/Window.cc b/src/Window.cc +index 513fbb6..35d9b80 100644 +--- a/src/Window.cc ++++ b/src/Window.cc +@@ -1668,6 +1668,10 @@ void FluxboxWindow::lower() { + #ifdef DEBUG + cerr<<"FluxboxWindow("<<title()<<")::lower()"<<endl; + #endif // DEBUG ++ ++ /* Ignore all EnterNotify events until the pointer actually moves */ ++ screen().focusControl().ignoreAtPointer(); ++ + // get root window + WinClient *client = getRootTransientFor(m_client); + +-- +1.6.2 + + +From 54c1ac8704c2ad81a597547912bdbf5cbf7967d9 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Fri, 30 Jan 2009 10:54:04 -0500 +Subject: [PATCH 4/5] Ignore EnterNotify on Move or Resize + +Moving and Resizing windows can reveal other windows, which of course can change +unexpected focus changes in focus-follows-mouse. +--- + src/Window.cc | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/src/Window.cc b/src/Window.cc +index 35d9b80..1104e50 100644 +--- a/src/Window.cc ++++ b/src/Window.cc +@@ -1211,6 +1211,9 @@ void FluxboxWindow::moveResize(int new_x, int new_y, + if (!moving) { + m_last_resize_x = new_x; + m_last_resize_y = new_y; ++ ++ /* Ignore all EnterNotify events until the pointer actually moves */ ++ screen().focusControl().ignoreAtPointer(); + } + + } +-- +1.6.2 + + +From c1dee4a4055f8f0dafadeca508ff5568e2d0ce08 Mon Sep 17 00:00:00 2001 +From: Jim Ramsay <i.am@jimramsay.com> +Date: Mon, 9 Mar 2009 14:05:41 -0400 +Subject: [PATCH 5/5] Ignore EnterNotify on workspace change + +Changing workspaces also reveals other windows, which causes unexpected focus +changes. +--- + src/Screen.cc | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/src/Screen.cc b/src/Screen.cc +index 8b605e7..4d9a65f 100644 +--- a/src/Screen.cc ++++ b/src/Screen.cc +@@ -1098,6 +1098,9 @@ void BScreen::changeWorkspaceID(unsigned int id, bool revert) { + id == m_current_workspace->workspaceID()) + return; + ++ /* Ignore all EnterNotify events until the pointer actually moves */ ++ this->focusControl().ignoreAtPointer(); ++ + FbTk::App::instance()->sync(false); + + FluxboxWindow *focused = FocusControl::focusedFbWindow(); +-- +1.6.2 + diff --git a/x11-wm/fluxbox/fluxbox-1.1.1.ebuild b/x11-wm/fluxbox/fluxbox-1.1.1-r1.ebuild index d64b0a8744e2..4d43860ac8ab 100644 --- a/x11-wm/fluxbox/fluxbox-1.1.1.ebuild +++ b/x11-wm/fluxbox/fluxbox-1.1.1-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-1.1.1.ebuild,v 1.5 2009/04/08 16:40:32 lack Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-1.1.1-r1.ebuild,v 1.1 2009/05/26 16:53:38 lack Exp $ EAPI="2" inherit eutils @@ -38,17 +38,20 @@ SLOT="0" LICENSE="MIT" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" -src_unpack() { - unpack ${A} - cd "${S}" - +src_prepare() { # We need to be able to include directories rather than just plain # files in menu [include] items. This patch will allow us to do clever # things with style ebuilds. epatch "${FILESDIR}/gentoo_style_location-1.1.x.patch" # Patch to handle a broken key file gracefully, #263379 - epatch "${FILESDIR}/keyparse_hang.patch" + epatch "${FILESDIR}/macrocmd-crash-1.1.1.patch" + + # Patch to quiet fbsetbg on upgrade + epatch "${FILESDIR}/fbsetbg-quiet-1.1.1.patch" + + # Patch to fix window focus bug when you have "focus-follows-mouse" + epatch "${FILESDIR}/mousefocus-1.1.1.patch" # Add in the Gentoo -r number to fluxbox -version output. if [[ "${PR}" == "r0" ]] ; then |