summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKacper Kowalik <xarthisius@gentoo.org>2013-06-30 14:07:12 +0000
committerKacper Kowalik <xarthisius@gentoo.org>2013-06-30 14:07:12 +0000
commit7a8af62c577ee3ba06f14203b686d33a878685af (patch)
tree6f37e6faabd3df0aea12c9e65ff6fa9c0cde00f2 /x11-wm/fluxbox
parentdev-python/pycairo: Fix usage of python-r1.eclass (diff)
downloadgentoo-2-7a8af62c577ee3ba06f14203b686d33a878685af.tar.gz
gentoo-2-7a8af62c577ee3ba06f14203b686d33a878685af.tar.bz2
gentoo-2-7a8af62c577ee3ba06f14203b686d33a878685af.zip
Drop old, obsoletes bug #464898 by Vicente Olivert Riera <vincent@gentoo.org>
(Portage version: 2.2.0_alpha179/cvs/Linux x86_64, signed Manifest commit with key 895192F9)
Diffstat (limited to 'x11-wm/fluxbox')
-rw-r--r--x11-wm/fluxbox/ChangeLog13
-rw-r--r--x11-wm/fluxbox/files/1.0.0/gcc-4.3.patch15
-rw-r--r--x11-wm/fluxbox/files/1.0.0/generate-menu.patch22
-rw-r--r--x11-wm/fluxbox/files/1.0.0/gentoo_style_location.patch17
-rw-r--r--x11-wm/fluxbox/files/1.1.0.1/gentoo_style_location.patch19
-rw-r--r--x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch74
-rw-r--r--x11-wm/fluxbox/files/fluxbox-1.0.0-interix.patch39
-rw-r--r--x11-wm/fluxbox/files/fluxbox-1.1.1-multiscreen.patch65
-rw-r--r--x11-wm/fluxbox/files/fluxbox-1.3.1-gcc46.patch44
-rw-r--r--x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch68
-rw-r--r--x11-wm/fluxbox/files/mousefocus-1.1.1-r2.patch159
-rw-r--r--x11-wm/fluxbox/files/mousefocus-1.1.1.patch240
-rw-r--r--x11-wm/fluxbox/files/strictmousefocus-1.1.1.patch236
-rw-r--r--x11-wm/fluxbox/fluxbox-1.1.1-r3.ebuild125
-rw-r--r--x11-wm/fluxbox/fluxbox-1.3.1.ebuild109
-rw-r--r--x11-wm/fluxbox/fluxbox-1.3.3.ebuild106
16 files changed, 12 insertions, 1339 deletions
diff --git a/x11-wm/fluxbox/ChangeLog b/x11-wm/fluxbox/ChangeLog
index a60248b59ad9..2fe33e22994b 100644
--- a/x11-wm/fluxbox/ChangeLog
+++ b/x11-wm/fluxbox/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for x11-wm/fluxbox
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.308 2013/06/01 11:40:33 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.309 2013/06/30 14:07:11 xarthisius Exp $
+
+ 30 Jun 2013; Kacper Kowalik <xarthisius@gentoo.org>
+ -files/1.0.0/gcc-4.3.patch, -files/1.0.0/generate-menu.patch,
+ -files/1.0.0/gentoo_style_location.patch,
+ -files/1.1.0.1/gentoo_style_location.patch, -files/fbsetbg-quiet-1.1.1.patch,
+ -files/fluxbox-1.0.0-interix.patch, -files/fluxbox-1.1.1-multiscreen.patch,
+ -files/fluxbox-1.3.1-gcc46.patch, -files/macrocmd-crash-1.1.1.patch,
+ -files/mousefocus-1.1.1-r2.patch, -files/mousefocus-1.1.1.patch,
+ -files/strictmousefocus-1.1.1.patch, -fluxbox-1.1.1-r3.ebuild,
+ -fluxbox-1.3.1.ebuild, -fluxbox-1.3.3.ebuild:
+ Drop old, obsoletes bug #464898 by Vicente Olivert Riera <vincent@gentoo.org>
01 Jun 2013; Pacho Ramos <pacho@gentoo.org> metadata.xml:
Cleanup due bug #144305
diff --git a/x11-wm/fluxbox/files/1.0.0/gcc-4.3.patch b/x11-wm/fluxbox/files/1.0.0/gcc-4.3.patch
deleted file mode 100644
index a4f14de2b250..000000000000
--- a/x11-wm/fluxbox/files/1.0.0/gcc-4.3.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- fluxbox-1.0.0/src/main.cc
-+++ fluxbox-1.0.0/src/main.cc
-@@ -45,6 +45,12 @@
- #include <stdlib.h>
- #endif
-
-+#ifdef HAVE_CSTRING
-+ #include <cstring>
-+#else
-+ #include <string.h>
-+#endif
-+
- #include <iostream>
- #include <fstream>
- #include <stdexcept>
diff --git a/x11-wm/fluxbox/files/1.0.0/generate-menu.patch b/x11-wm/fluxbox/files/1.0.0/generate-menu.patch
deleted file mode 100644
index 1656fe23f175..000000000000
--- a/x11-wm/fluxbox/files/1.0.0/generate-menu.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- util/fluxbox-generate_menu.in.orig 2007-12-26 13:46:13.000000000 -0500
-+++ util/fluxbox-generate_menu.in 2007-12-26 13:54:59.000000000 -0500
-@@ -1685,6 +1685,7 @@
- append_submenu "${GRAPHICMENU}"
- normal_find gimp gimp2 gimp-2.2 inkscape sodipodi xv gqview showimg xpaint kpaint kiconedit \
- ee xzgv xscreensaver-demo xlock gphoto tuxpaint krita skencil
-+ find_it display append "[exec] (ImageMagick Display) {display}"
- find_it xnview append "[exec] (xnview browser) {xnview -browser}"
- find_it blender append "[exec] (blender) {blender -w}"
- find_it gears append "[exec] (Mesa gears) {gears}"
-@@ -1718,9 +1719,10 @@
- find_it gcalc append "[exec] (gcalc) {gcalc}" || \
- find_it gnome-calculator append "[exec] (gcalc) {gnome-calculator}"
- find_it ical append "[exec] (Calendar) {ical}"
-+ find_it sunbird append "[exec] (Sunbird) {sunbird}"
-
- # older <=1.1.3 apparently have stuff like swriter, not sowriter
-- for ext in s so oo xoo; do
-+ for ext in oo xoo; do
- find_it ${ext}ffice2 && (
- find_it ${ext}ffice2 append "[exec] (Open Office 2) {${ext}ffice2}"
- find_it ${ext}base2 append "[exec] (OO Base 2) {${ext}base2}"
diff --git a/x11-wm/fluxbox/files/1.0.0/gentoo_style_location.patch b/x11-wm/fluxbox/files/1.0.0/gentoo_style_location.patch
deleted file mode 100644
index cc814e4a9cba..000000000000
--- a/x11-wm/fluxbox/files/1.0.0/gentoo_style_location.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- util/fluxbox-generate_menu.in.orig 2007-07-13 13:47:11.000000000 -0600
-+++ util/fluxbox-generate_menu.in 2007-07-13 13:51:03.000000000 -0600
-@@ -1803,12 +1803,8 @@
- append_submenu "${FBSETTINGSMENU}"
- append "[config] (${CONFIGUREMENU})"
-
-- append_menu "[submenu] (${SYSTEMSTYLES}) {${STYLEMENUTITLE}}"
-- append "[stylesdir] (${PREFIX}/share/fluxbox/styles)"
-- append_menu_end
--
-- append_menu "[submenu] (${USERSTYLES}) {${STYLEMENUTITLE}}"
-- append "[stylesdir] (~/.@pkgprefix@fluxbox@pkgsuffix@/styles)"
-+ append_submenu "Styles"
-+ append "[include] (@GENTOO_PORTAGE_EPREFIX@/usr/share/fluxbox/menu.d/styles/)"
- append_menu_end
-
- # Backgroundmenu
diff --git a/x11-wm/fluxbox/files/1.1.0.1/gentoo_style_location.patch b/x11-wm/fluxbox/files/1.1.0.1/gentoo_style_location.patch
deleted file mode 100644
index dfa4f2eab48f..000000000000
--- a/x11-wm/fluxbox/files/1.1.0.1/gentoo_style_location.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/util/fluxbox-generate_menu.in b/util/fluxbox-generate_menu.in
-index aca8b08..b229046 100755
---- a/util/fluxbox-generate_menu.in
-+++ b/util/fluxbox-generate_menu.in
-@@ -1794,12 +1794,8 @@ fi
- append_submenu "${FBSETTINGSMENU}"
- append "[config] (${CONFIGUREMENU})"
-
-- append_menu "[submenu] (${SYSTEMSTYLES}) {${STYLEMENUTITLE}}"
-- append "[stylesdir] (${PREFIX}/share/fluxbox/styles)"
-- append_menu_end
--
-- append_menu "[submenu] (${USERSTYLES}) {${STYLEMENUTITLE}}"
-- append "[stylesdir] (~/.@pkgprefix@fluxbox@pkgsuffix@/styles)"
-+ append_submenu "Styles"
-+ append "[include] (@GENTOO_PORTAGE_EPREFIX@/usr/share/fluxbox/menu.d/styles/)"
- append_menu_end
-
- # Backgroundmenu
diff --git a/x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch b/x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch
deleted file mode 100644
index a74a4ffb041c..000000000000
--- a/x11-wm/fluxbox/files/fbsetbg-quiet-1.1.1.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-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/fluxbox-1.0.0-interix.patch b/x11-wm/fluxbox/files/fluxbox-1.0.0-interix.patch
deleted file mode 100644
index aec829962e9c..000000000000
--- a/x11-wm/fluxbox/files/fluxbox-1.0.0-interix.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -ru fluxbox-1.0.0.orig/src/FbTk/FbString.cc fluxbox-1.0.0/src/FbTk/FbString.cc
---- fluxbox-1.0.0.orig/src/FbTk/FbString.cc 2008-03-11 10:36:10 +0100
-+++ fluxbox-1.0.0/src/FbTk/FbString.cc 2008-03-11 10:39:29 +0100
-@@ -46,7 +46,16 @@
- #ifdef HAVE_ICONV
- #include <iconv.h>
- #endif // HAVE_ICONV
-+
-+#if defined(__INTERIX)
-+extern "C" {
-+// interix has a broken langinfo.h without extern "C"
-+#include <langinfo.h>
-+}
-+#else
- #include <langinfo.h>
-+#endif
-+
- #include <locale.h>
-
- #include <iostream>
-diff -ru fluxbox-1.0.0.orig/src/FbTk/Font.cc fluxbox-1.0.0/src/FbTk/Font.cc
---- fluxbox-1.0.0.orig/src/FbTk/Font.cc 2008-03-11 10:36:10 +0100
-+++ fluxbox-1.0.0/src/FbTk/Font.cc 2008-03-11 10:39:44 +0100
-@@ -68,7 +68,15 @@
- #include <list>
- #include <map>
- #include <typeinfo>
-+
-+#if defined(__INTERIX)
-+extern "C" {
-+// interix has a broken langinfo.h without extern "C"
-+#include <langinfo.h>
-+}
-+#else
- #include <langinfo.h>
-+#endif
-
- #include <errno.h>
-
diff --git a/x11-wm/fluxbox/files/fluxbox-1.1.1-multiscreen.patch b/x11-wm/fluxbox/files/fluxbox-1.1.1-multiscreen.patch
deleted file mode 100644
index 802809934957..000000000000
--- a/x11-wm/fluxbox/files/fluxbox-1.1.1-multiscreen.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 95ee731d9118eec110ecb2de5c9094d561a004bd Mon Sep 17 00:00:00 2001
-From: Mathias Gumz <akira at fluxbox dot org>
-Date: Thu, 6 Jan 2011 08:33:34 +0100
-Subject: [PATCH] Backported bugfix: do not assume ':number.screen' as the result of 'DisplayString()'
-
-a newer xlib recently changed the result of 'DisplayString()' a little bit:
-instead of returning ':0.0' or ':1.0' it yields ':0' or ':1'. our code to
-transform this string into something that includes the currently used
-Screen worked only on something like ':0.0'.
-
-we now find the '.' after the ':' and strip that part away.
-
-Backported from e8ce9ed3a38e1b4a3e5727d408d0fac0e2ff1ada
----
- src/FbCommands.cc | 18 +++++++++++++++---
- 1 files changed, 15 insertions(+), 3 deletions(-)
-
-diff --git a/src/FbCommands.cc b/src/FbCommands.cc
-index fd3f71e..fc9e7a2 100644
---- a/src/FbCommands.cc
-+++ b/src/FbCommands.cc
-@@ -142,9 +142,13 @@ int ExecuteCmd::run() {
- if (pid)
- return pid;
-
-+ // 'display' is given as 'host:number.screen'. we want to give the
-+ // new app a good home, so we remove '.screen' from what is given
-+ // us from the xserver and replace it with the screen_num of the Screen
-+ // the user currently points at with the mouse
- string displaystring("DISPLAY=");
-- displaystring += DisplayString(FbTk::App::instance()->display());
- char intbuff[64];
-+ string display = DisplayString(FbTk::App::instance()->display());
- int screen_num = m_screen_num;
- if (screen_num < 0) {
- if (Fluxbox::instance()->mouseScreen() == 0)
-@@ -155,6 +159,15 @@ int ExecuteCmd::run() {
-
- sprintf(intbuff, "%d", screen_num);
-
-+ // strip away the '.screen'
-+ size_t dot = display.rfind(':');
-+ dot = display.find('.', dot);
-+ if (dot != string::npos) { // 'display' has actually a '.screen' part
-+ display.erase(dot);
-+ }
-+ display += '.';
-+ display += intbuff;
-+
- // get shell path from the environment
- // this process exits immediately, so we don't have to worry about memleaks
- const char *shell = getenv("SHELL");
-@@ -162,8 +175,7 @@ int ExecuteCmd::run() {
- shell = "/bin/sh";
-
- // remove last number of display and add screen num
-- displaystring.erase(displaystring.size()-1);
-- displaystring += intbuff;
-+ displaystring += DisplayString(FbTk::App::instance()->display());
-
- setsid();
- putenv(const_cast<char *>(displaystring.c_str()));
---
-1.7.4.rc1
-
diff --git a/x11-wm/fluxbox/files/fluxbox-1.3.1-gcc46.patch b/x11-wm/fluxbox/files/fluxbox-1.3.1-gcc46.patch
deleted file mode 100644
index 90d268989dc7..000000000000
--- a/x11-wm/fluxbox/files/fluxbox-1.3.1-gcc46.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From d28e105075e3ec46515c322ee5dca6967a4cc696 Mon Sep 17 00:00:00 2001
-From: Daniel Diaz<dydyam at gmail dot com>
-Date: Mon, 28 Mar 2011 07:06:01 +0000
-Subject: compile fix: added <cstdlib> to provide declaration for 'size_t' (gcc-4.6.x likes it that way)
-
----
-diff --git a/src/FbTk/LayerItem.hh b/src/FbTk/LayerItem.hh
-index a4cdd49..ad33451 100644
---- a/src/FbTk/LayerItem.hh
-+++ b/src/FbTk/LayerItem.hh
-@@ -26,6 +26,7 @@
- #include "Layer.hh"
- #include "NotCopyable.hh"
- #include <vector>
-+#include <cstdlib> // size_t
-
- namespace FbTk {
-
-diff --git a/src/FbTk/MacroCommand.hh b/src/FbTk/MacroCommand.hh
-index 932ecaf..bce2ce4 100644
---- a/src/FbTk/MacroCommand.hh
-+++ b/src/FbTk/MacroCommand.hh
-@@ -26,6 +26,7 @@
- #include "RefCount.hh"
-
- #include <vector>
-+#include <cstdlib> // size_t
-
- namespace FbTk {
-
-diff --git a/src/FbTk/MultLayers.hh b/src/FbTk/MultLayers.hh
-index 62c006f..3da25f6 100644
---- a/src/FbTk/MultLayers.hh
-+++ b/src/FbTk/MultLayers.hh
-@@ -24,6 +24,7 @@
- #define FBTK_MULTLAYERS_HH
-
- #include <vector>
-+#include <cstdlib> // size_t
-
- namespace FbTk {
-
---
-cgit
diff --git a/x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch b/x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch
deleted file mode 100644
index 2d5d1bda78dd..000000000000
--- a/x11-wm/fluxbox/files/macrocmd-crash-1.1.1.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-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-r2.patch b/x11-wm/fluxbox/files/mousefocus-1.1.1-r2.patch
deleted file mode 100644
index b492eee11659..000000000000
--- a/x11-wm/fluxbox/files/mousefocus-1.1.1-r2.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From 998d9ea7942e3bcb07b52e06d08ef69bbe552944 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/2] 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 cead827..e0a3662 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();
-
-@@ -402,6 +403,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 5d50fcf..fe32d29 100644
---- a/src/Window.cc
-+++ b/src/Window.cc
-@@ -2676,13 +2676,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.7.1
-
-
-From e16a6d1fa71825b5390d9139b771f470aeb03d79 Mon Sep 17 00:00:00 2001
-From: Jim Ramsay <i.am@jimramsay.com>
-Date: Sat, 29 May 2010 09:30:48 -0400
-Subject: [PATCH 2/2] Ignore EnterNotify when the ClientMenu closes
-
-This is so that the resulting exposition of a window belowe the ClientMenu will
-not steal focus from the window just focused by the ClientMenu.
----
- src/ClientMenu.cc | 7 ++++++-
- 1 files changed, 6 insertions(+), 1 deletions(-)
-
-diff --git a/src/ClientMenu.cc b/src/ClientMenu.cc
-index f5af305..c49791c 100644
---- a/src/ClientMenu.cc
-+++ b/src/ClientMenu.cc
-@@ -25,6 +25,7 @@
- #include "Screen.hh"
- #include "Window.hh"
- #include "WindowCmd.hh"
-+#include "FocusControl.hh"
- #include <X11/keysym.h>
-
- #include "FbTk/MenuItem.hh"
-@@ -52,8 +53,12 @@ public:
-
- m_client.focus();
- fbwin->raise();
-- if ((mods & ControlMask) == 0)
-+ if ((mods & ControlMask) == 0) {
-+ // Ignore any focus changes due to this menu closing
-+ // (even in StrictMouseFocus mode)
-+ m_client.screen().focusControl().ignoreAtPointer();
- parent->hide();
-+ }
- }
-
- const std::string &label() const { return m_client.title(); }
---
-1.7.1
-
diff --git a/x11-wm/fluxbox/files/mousefocus-1.1.1.patch b/x11-wm/fluxbox/files/mousefocus-1.1.1.patch
deleted file mode 100644
index 12cc1cb78999..000000000000
--- a/x11-wm/fluxbox/files/mousefocus-1.1.1.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-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/files/strictmousefocus-1.1.1.patch b/x11-wm/fluxbox/files/strictmousefocus-1.1.1.patch
deleted file mode 100644
index ff150fbe4ac9..000000000000
--- a/x11-wm/fluxbox/files/strictmousefocus-1.1.1.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From a830cf18ce0830451208157ecd0997521e171522 Mon Sep 17 00:00:00 2001
-From: Jim Ramsay <jim.ramsay@motorola.com>
-Date: Fri, 28 May 2010 13:22:13 -0400
-Subject: [PATCH 1/2] Add new focus model: StrictMouseFocus
-
-This is not actually implemented yet, but from now on, "MouseFocus" means:
- Focus follows mouse only when you are moving the mouse, any EnterNotify events
- caused by non-mouse operations (window closing, keycommands, changing
- desktops) will *not* shift focus
-
-And once fully-implemented, "StrictMouseFocus" will mean:
- Focus follows mouse on every EnterNotify event (except when the "ClientMenu"
- closes or during alt+tab window cycling)
----
- doc/fluxbox.1.in | 7 +++++--
- nls/fluxbox-nls.hh | 1 +
- src/FocusControl.cc | 5 +++++
- src/FocusControl.hh | 7 ++++---
- src/Screen.cc | 7 ++++++-
- 5 files changed, 21 insertions(+), 6 deletions(-)
-
-diff --git a/doc/fluxbox.1.in b/doc/fluxbox.1.in
-index 11f70d9..86802b9 100644
---- a/doc/fluxbox.1.in
-+++ b/doc/fluxbox.1.in
-@@ -910,10 +910,13 @@ session\.screen0\.followModel: <model>
- be focused\. `Ignore\' does nothing, and `Follow\' uses the setting in
- session\.screen0\.userFollowModel\. Default: Ignore
-
--session\.screen0\.focusModel: ClickToFocus|MouseFocus
-+session\.screen0\.focusModel: ClickToFocus|MouseFocus|StrictMouseFocus
- This controls how windows gain focus via the mouse\. With `ClickToFocus\',
- the user must click on the window\. With `MouseFocus\', windows gain focus
-- whenever the mouse moves over them\. Default: ClickToFocus
-+ whenever the mouse moves over them, but only when the mouse is moving.
-+ With `StrictMouseFocus\', windows gain focus whenever the mouse enters any
-+ exposed area, even if this is due to layer changes, window movement,
-+ changing desktops, closing windows, etc\. Default: ClickToFocus
-
- session\.screen0\.autoRaise: <boolean>
- When True, this setting automatically raises any window that gains focus\.
-diff --git a/nls/fluxbox-nls.hh b/nls/fluxbox-nls.hh
-index a304995..178c2f2 100644
---- a/nls/fluxbox-nls.hh
-+++ b/nls/fluxbox-nls.hh
-@@ -84,6 +84,7 @@ enum {
- ConfigmenuMaxIgnoreInc = 27,
- ConfigmenuMaxDisableMove = 28,
- ConfigmenuMaxDisableResize = 29,
-+ ConfigmenuStrictMouseFocus = 30,
-
- EwmhSet = 5,
- EwmhOutOfMemoryClientList = 1,
-diff --git a/src/FocusControl.cc b/src/FocusControl.cc
-index e0a3662..66a2ed8 100644
---- a/src/FocusControl.cc
-+++ b/src/FocusControl.cc
-@@ -491,6 +491,7 @@ void FocusControl::revertFocus(BScreen &screen) {
- else {
- switch (screen.focusControl().focusModel()) {
- case FocusControl::MOUSEFOCUS:
-+ case FocusControl::STRICTMOUSEFOCUS:
- XSetInputFocus(screen.rootWindow().display(),
- PointerRoot, None, CurrentTime);
- break;
-@@ -596,6 +597,8 @@ std::string FbTk::Resource<FocusControl::FocusModel>::getString() const {
- switch (m_value) {
- case FocusControl::MOUSEFOCUS:
- return string("MouseFocus");
-+ case FocusControl::STRICTMOUSEFOCUS:
-+ return string("StrictMouseFocus");
- case FocusControl::CLICKFOCUS:
- return string("ClickFocus");
- }
-@@ -608,6 +611,8 @@ void FbTk::Resource<FocusControl::FocusModel>::
- setFromString(char const *strval) {
- if (strcasecmp(strval, "MouseFocus") == 0)
- m_value = FocusControl::MOUSEFOCUS;
-+ else if (strcasecmp(strval, "StrictMouseFocus") == 0)
-+ m_value = FocusControl::STRICTMOUSEFOCUS;
- else if (strcasecmp(strval, "ClickToFocus") == 0)
- m_value = FocusControl::CLICKFOCUS;
- else
-diff --git a/src/FocusControl.hh b/src/FocusControl.hh
-index 91681ab..72eec11 100644
---- a/src/FocusControl.hh
-+++ b/src/FocusControl.hh
-@@ -42,8 +42,9 @@ public:
- typedef std::list<Focusable *> Focusables;
- /// main focus model
- enum FocusModel {
-- MOUSEFOCUS = 0, ///< focus follows mouse
-- CLICKFOCUS ///< focus on click
-+ MOUSEFOCUS = 0, ///< focus follows mouse, but only when the mouse is moving
-+ CLICKFOCUS, ///< focus on click
-+ STRICTMOUSEFOCUS ///< focus always follows mouse, even when stationary
- };
- /// focus model for tabs
- enum TabFocusModel {
-@@ -90,7 +91,7 @@ public:
- */
- void dirFocus(FluxboxWindow &win, FocusDir dir);
- /// @return true if focus mode is mouse focus
-- bool isMouseFocus() const { return focusModel() == MOUSEFOCUS; }
-+ bool isMouseFocus() const { return focusModel() != CLICKFOCUS; }
- /// @return true if tab focus mode is mouse tab focus
- bool isMouseTabFocus() const { return tabFocusModel() == MOUSETABFOCUS; }
-
-diff --git a/src/Screen.cc b/src/Screen.cc
-index 649ea2b..0271868 100644
---- a/src/Screen.cc
-+++ b/src/Screen.cc
-@@ -1615,8 +1615,13 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) {
- "Click To Focus", "Click to focus",
- FocusControl::CLICKFOCUS);
- _FOCUSITEM(Configmenu, MouseFocus,
-- "Mouse Focus", "Mouse Focus",
-+ "Mouse Focus (Keyboard Friendly)",
-+ "Mouse Focus (Keyboard Friendly)",
- FocusControl::MOUSEFOCUS);
-+ _FOCUSITEM(Configmenu, StrictMouseFocus,
-+ "Mouse Focus (Strict)",
-+ "Mouse Focus (Strict)",
-+ FocusControl::STRICTMOUSEFOCUS);
- #undef _FOCUSITEM
-
- focus_menu->insert(new FbTk::MenuSeparator());
---
-1.7.1
-
-
-From 9db301c26e27e4d139dff424f8eab2f8def30cb5 Mon Sep 17 00:00:00 2001
-From: Jim Ramsay <jim.ramsay@motorola.com>
-Date: Fri, 28 May 2010 15:50:15 -0400
-Subject: [PATCH 2/2] Implement StrictMouseFocus
-
-As noted in the previous commit, StrictMouseFocus now works as advertised:
- Focus follows mouse on every EnterNotify event (except when the "ClientMenu"
- closes or during alt+tab window cycling)
----
- src/ClientMenu.cc | 7 ++++++-
- src/FocusControl.cc | 19 ++++++++++++++-----
- src/FocusControl.hh | 10 ++++++++--
- 3 files changed, 28 insertions(+), 8 deletions(-)
-
-diff --git a/src/ClientMenu.cc b/src/ClientMenu.cc
-index f5af305..46306d9 100644
---- a/src/ClientMenu.cc
-+++ b/src/ClientMenu.cc
-@@ -25,6 +25,7 @@
- #include "Screen.hh"
- #include "Window.hh"
- #include "WindowCmd.hh"
-+#include "FocusControl.hh"
- #include <X11/keysym.h>
-
- #include "FbTk/MenuItem.hh"
-@@ -52,8 +53,12 @@ public:
-
- m_client.focus();
- fbwin->raise();
-- if ((mods & ControlMask) == 0)
-+ if ((mods & ControlMask) == 0) {
-+ // Ignore any focus changes due to this menu closing
-+ // (even in StrictMouseFocus mode)
-+ m_client.screen().focusControl().ignoreAtPointer(true);
- parent->hide();
-+ }
- }
-
- const std::string &label() const { return m_client.title(); }
-diff --git a/src/FocusControl.cc b/src/FocusControl.cc
-index 66a2ed8..44cd81b 100644
---- a/src/FocusControl.cc
-+++ b/src/FocusControl.cc
-@@ -403,21 +403,30 @@ void FocusControl::dirFocus(FluxboxWindow &win, FocusDir dir) {
-
- }
-
--void FocusControl::ignoreAtPointer()
-+void FocusControl::ignoreAtPointer(bool force)
- {
-- int ignore_i;
-+ int ignore_i, ignore_x, ignore_y;
- 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_x, &ignore_y,
- &ignore_i, &ignore_i, &ignore_ui);
-+
-+ this->ignoreAt(ignore_x, ignore_y, force);
-+}
-+
-+void FocusControl::ignoreAt(int x, int y, bool force)
-+{
-+ if (force || this->focusModel() == MOUSEFOCUS) {
-+ m_ignore_mouse_x = x; m_ignore_mouse_y = y;
-+ }
- }
-
--void FocusControl::ignoreAt(int x, int y)
-+void FocusControl::ignoreCancel()
- {
-- m_ignore_mouse_x = x; m_ignore_mouse_y = y;
-+ m_ignore_mouse_x = m_ignore_mouse_y = -1;
- }
-
- bool FocusControl::isIgnored(int x, int y)
-diff --git a/src/FocusControl.hh b/src/FocusControl.hh
-index 72eec11..c265253 100644
---- a/src/FocusControl.hh
-+++ b/src/FocusControl.hh
-@@ -96,9 +96,15 @@ public:
- bool isMouseTabFocus() const { return tabFocusModel() == MOUSETABFOCUS; }
-
- /// Set the "ignore" pointer location to the current pointer location
-- void ignoreAtPointer();
-+ /// @param force If true, ignore even in StrictMouseFocus mode
-+ void ignoreAtPointer(bool force = false);
- /// Set the "ignore" pointer location to the given coordinates
-- void ignoreAt(int x, int y);
-+ /// @param x Current X position of the pointer
-+ /// @param y Current Y position of the pointer
-+ /// @param force If true, ignore even in StrictMouseFocus mode
-+ void ignoreAt(int x, int y, bool force = false);
-+ /// unset the "ignore" pointer location
-+ void ignoreCancel();
- /// @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);
---
-1.7.1
-
diff --git a/x11-wm/fluxbox/fluxbox-1.1.1-r3.ebuild b/x11-wm/fluxbox/fluxbox-1.1.1-r3.ebuild
deleted file mode 100644
index d3d1a2283a54..000000000000
--- a/x11-wm/fluxbox/fluxbox-1.1.1-r3.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright 1999-2011 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-r3.ebuild,v 1.8 2011/04/16 18:22:51 ulm Exp $
-
-EAPI="3"
-inherit eutils prefix
-
-IUSE="nls xinerama truetype gnome +imlib +slit +toolbar vim-syntax -newmousefocus"
-
-DESCRIPTION="Fluxbox is an X11 window manager featuring tabs and an iconbar"
-
-SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.bz2"
-HOMEPAGE="http://www.fluxbox.org"
-
-# Please note that USE="gnome" simply adds support for some gnome protocols, and
-# does not depend on external libraries. However, it does make the binary a
-# fair bit bigger, so we don't want to turn it on unless the user actually wants
-# it.
-
-RDEPEND="x11-libs/libXpm
- x11-libs/libXrandr
- xinerama? ( x11-libs/libXinerama )
- x11-apps/xmessage
- x11-libs/libXft
- truetype? ( media-libs/freetype )
- imlib? ( >=media-libs/imlib2-1.2.0[X] )
- vim-syntax? ( app-vim/fluxbox-syntax )
- !!<x11-themes/fluxbox-styles-fluxmod-20040809-r1
- !!<=x11-misc/fluxconf-0.9.9
- !!<=x11-misc/fbdesk-1.2.1"
-DEPEND="nls? ( sys-devel/gettext )
- x11-proto/xextproto
- xinerama? ( x11-proto/xineramaproto )
- ${RDEPEND}"
-
-SLOT="0"
-LICENSE="MIT"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux"
-
-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"
- eprefixify util/fluxbox-generate_menu.in
-
- epatch "${FILESDIR}"/osx-has-otool.patch
-
- # Patch to handle a broken key file gracefully, #263379
- 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"
- if use newmousefocus; then
- # These change 'MouseFocus' behaviour to what will be in fluxbox-1.1.2
- # and add the new 'StrictMouseFocus' mode.
- epatch "${FILESDIR}/mousefocus-1.1.1.patch"
- epatch "${FILESDIR}/strictmousefocus-1.1.1.patch"
- else
- epatch "${FILESDIR}/mousefocus-1.1.1-r2.patch"
- fi
-
- # Patch to fix multiple screens with libX11-1.4.0, #348819
- epatch "${FILESDIR}/fluxbox-1.1.1-multiscreen.patch"
-
- # Add in the Gentoo -r number to fluxbox -version output.
- if [[ "${PR}" == "r0" ]] ; then
- suffix="gentoo"
- else
- suffix="gentoo-${PR}"
- fi
- sed -i \
- -e "s~\(__fluxbox_version .@VERSION@\)~\1-${suffix}~" \
- version.h.in || die "version sed failed"
-}
-
-src_configure() {
- econf \
- $(use_enable nls) \
- $(use_enable xinerama) \
- $(use_enable truetype xft) \
- $(use_enable gnome) \
- $(use_enable imlib imlib2) \
- $(use_enable slit ) \
- $(use_enable toolbar ) \
- --sysconfdir="${EPREFIX}"/etc/X11/${PN} \
- --with-style="${EPREFIX}"/usr/share/fluxbox/styles/Emerge \
- ${myconf}
-}
-
-src_compile() {
- default
-
- ebegin "Creating a menu file (may take a while)"
- mkdir -p "${T}/home/.fluxbox" || die "mkdir home failed"
- MENUFILENAME="${S}/data/menu" MENUTITLE="Fluxbox ${PV}" \
- CHECKINIT="no. go away." HOME="${T}/home" \
- "${S}/util/fluxbox-generate_menu" -is -ds \
- || die "menu generation failed"
- eend $?
-}
-
-src_install() {
- dodir /usr/share/fluxbox
- emake DESTDIR="${D}" STRIP="" install || die "install failed"
- dodoc README* AUTHORS TODO* ChangeLog NEWS
-
- dodir /usr/share/xsessions
- insinto /usr/share/xsessions
- doins "${FILESDIR}/${PN}.desktop"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}/${PN}.xsession" fluxbox
-
- dodir /usr/share/fluxbox/menu.d
-
- # Styles menu framework
- dodir /usr/share/fluxbox/menu.d/styles
- insinto /usr/share/fluxbox/menu.d/styles
- doins "${FILESDIR}/styles-menu-fluxbox" || die
- doins "${FILESDIR}/styles-menu-commonbox" || die
- doins "${FILESDIR}/styles-menu-user" || die
-}
diff --git a/x11-wm/fluxbox/fluxbox-1.3.1.ebuild b/x11-wm/fluxbox/fluxbox-1.3.1.ebuild
deleted file mode 100644
index aa196504bda3..000000000000
--- a/x11-wm/fluxbox/fluxbox-1.3.1.ebuild
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-1.3.1.ebuild,v 1.9 2011/08/20 16:03:39 jer Exp $
-
-EAPI=4
-inherit eutils prefix
-
-IUSE="nls xinerama bidi +truetype gnome +imlib +slit +toolbar vim-syntax"
-
-DESCRIPTION="Fluxbox is an X11 window manager featuring tabs and an iconbar"
-
-SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.bz2"
-HOMEPAGE="http://www.fluxbox.org"
-
-# Please note that USE="gnome" simply adds support for some gnome protocols, and
-# does not depend on external libraries. However, it does make the binary a
-# fair bit bigger, so we don't want to turn it on unless the user actually wants
-# it.
-
-RDEPEND="x11-libs/libXpm
- x11-libs/libXrandr
- xinerama? ( x11-libs/libXinerama )
- x11-apps/xmessage
- x11-libs/libXft
- truetype? ( media-libs/freetype )
- bidi? ( dev-libs/fribidi )
- imlib? ( >=media-libs/imlib2-1.2.0[X] )
- vim-syntax? ( app-vim/fluxbox-syntax )
- !!<x11-themes/fluxbox-styles-fluxmod-20040809-r1
- !!<=x11-misc/fluxconf-0.9.9
- !!<=x11-misc/fbdesk-1.2.1"
-DEPEND="nls? ( sys-devel/gettext )
- x11-proto/xextproto
- xinerama? ( x11-proto/xineramaproto )
- ${RDEPEND}"
-
-SLOT="0"
-LICENSE="MIT"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux"
-
-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"
- eprefixify util/fluxbox-generate_menu.in
-
- epatch "${FILESDIR}"/osx-has-otool.patch \
- "${FILESDIR}"/${P}-gcc46.patch
-
- # Add in the Gentoo -r number to fluxbox -version output.
- if [[ "${PR}" == "r0" ]] ; then
- suffix="gentoo"
- else
- suffix="gentoo-${PR}"
- fi
- sed -i \
- -e "s~\(__fluxbox_version .@VERSION@\)~\1-${suffix}~" \
- version.h.in || die "version sed failed"
-}
-
-src_configure() {
- econf \
- $(use_enable nls) \
- $(use_enable xinerama) \
- $(use_enable truetype xft) \
- $(use_enable gnome) \
- $(use_enable imlib imlib2) \
- $(use_enable bidi fribidi ) \
- $(use_enable slit ) \
- $(use_enable toolbar ) \
- --sysconfdir="${EPREFIX}"/etc/X11/${PN} \
- --with-style="${EPREFIX}"/usr/share/fluxbox/styles/Emerge \
- ${myconf}
-}
-
-src_compile() {
- default
-
- ebegin "Creating a menu file (may take a while)"
- mkdir -p "${T}/home/.fluxbox" || die "mkdir home failed"
- MENUFILENAME="${S}/data/menu" MENUTITLE="Fluxbox ${PV}" \
- CHECKINIT="no. go away." HOME="${T}/home" \
- "${S}/util/fluxbox-generate_menu" -is -ds \
- || die "menu generation failed"
- eend $?
-}
-
-src_install() {
- dodir /usr/share/fluxbox
- emake DESTDIR="${D}" STRIP="" install
- dodoc README* AUTHORS TODO* ChangeLog NEWS
-
- dodir /usr/share/xsessions
- insinto /usr/share/xsessions
- doins "${FILESDIR}/${PN}.desktop"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}/${PN}.xsession" fluxbox
-
- dodir /usr/share/fluxbox/menu.d
-
- # Styles menu framework
- dodir /usr/share/fluxbox/menu.d/styles
- insinto /usr/share/fluxbox/menu.d/styles
- doins "${FILESDIR}/styles-menu-fluxbox"
- doins "${FILESDIR}/styles-menu-commonbox"
- doins "${FILESDIR}/styles-menu-user"
-}
diff --git a/x11-wm/fluxbox/fluxbox-1.3.3.ebuild b/x11-wm/fluxbox/fluxbox-1.3.3.ebuild
deleted file mode 100644
index a1577a399a54..000000000000
--- a/x11-wm/fluxbox/fluxbox-1.3.3.ebuild
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-1.3.3.ebuild,v 1.1 2013/01/08 21:32:50 lack Exp $
-
-EAPI=4
-inherit eutils flag-o-matic toolchain-funcs prefix
-
-IUSE="nls xinerama bidi +truetype +imlib +slit +toolbar vim-syntax"
-
-DESCRIPTION="Fluxbox is an X11 window manager featuring tabs and an iconbar"
-
-SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.lzma"
-HOMEPAGE="http://www.fluxbox.org"
-
-RDEPEND="x11-libs/libXpm
- x11-libs/libXrandr
- x11-libs/libXext
- x11-libs/libXft
- x11-libs/libXrender
- || ( x11-misc/gxmessage x11-apps/xmessage )
- xinerama? ( x11-libs/libXinerama )
- truetype? ( media-libs/freetype )
- bidi? ( >=dev-libs/fribidi-0.19.2 )
- imlib? ( >=media-libs/imlib2-1.2.0[X] )
- vim-syntax? ( app-vim/fluxbox-syntax )
- !!<x11-themes/fluxbox-styles-fluxmod-20040809-r1
- !!<=x11-misc/fluxconf-0.9.9
- !!<=x11-misc/fbdesk-1.2.1"
-DEPEND="bidi? ( virtual/pkgconfig )
- nls? ( sys-devel/gettext )
- x11-proto/xextproto
- ${RDEPEND}"
-
-SLOT="0"
-LICENSE="MIT"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux"
-
-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"
- eprefixify util/fluxbox-generate_menu.in
-
- epatch "${FILESDIR}"/osx-has-otool.patch
-
- # Add in the Gentoo -r number to fluxbox -version output.
- if [[ "${PR}" == "r0" ]] ; then
- suffix="gentoo"
- else
- suffix="gentoo-${PR}"
- fi
- sed -i \
- -e "s~\(__fluxbox_version .@VERSION@\)~\1-${suffix}~" \
- version.h.in || die "version sed failed"
-}
-
-src_configure() {
- use bidi && append-cppflags "$($(tc-getPKG_CONFIG) --cflags fribidi)"
-
- econf \
- $(use_enable nls) \
- $(use_enable xinerama) \
- $(use_enable truetype xft) \
- $(use_enable imlib imlib2) \
- $(use_enable bidi fribidi ) \
- $(use_enable slit ) \
- $(use_enable toolbar ) \
- --sysconfdir="${EPREFIX}"/etc/X11/${PN} \
- --with-style="${EPREFIX}"/usr/share/fluxbox/styles/Emerge \
- ${myconf}
-}
-
-src_compile() {
- default
-
- ebegin "Creating a menu file (may take a while)"
- mkdir -p "${T}/home/.fluxbox" || die "mkdir home failed"
- MENUFILENAME="${S}/data/menu" MENUTITLE="Fluxbox ${PV}" \
- CHECKINIT="no. go away." HOME="${T}/home" \
- "${S}/util/fluxbox-generate_menu" -is -ds \
- || die "menu generation failed"
- eend $?
-}
-
-src_install() {
- dodir /usr/share/fluxbox
- emake DESTDIR="${D}" STRIP="" install
- dodoc README* AUTHORS TODO* ChangeLog NEWS
-
- dodir /usr/share/xsessions
- insinto /usr/share/xsessions
- doins "${FILESDIR}/${PN}.desktop"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}/${PN}.xsession" fluxbox
-
- dodir /usr/share/fluxbox/menu.d
-
- # Styles menu framework
- dodir /usr/share/fluxbox/menu.d/styles
- insinto /usr/share/fluxbox/menu.d/styles
- doins "${FILESDIR}/styles-menu-fluxbox"
- doins "${FILESDIR}/styles-menu-commonbox"
- doins "${FILESDIR}/styles-menu-user"
-}