Hi,

this is the thing to apply. ☻

Thanks,
//mirabilos
-- 
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-314
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Boris Esser, Sebastian Mancke
diff -Nru icewm-1.3.7/debian/changelog icewm-1.3.7/debian/changelog
--- icewm-1.3.7/debian/changelog        2013-06-29 18:00:56.000000000 +0200
+++ icewm-1.3.7/debian/changelog        2013-09-20 13:30:07.000000000 +0200
@@ -1,3 +1,11 @@
+icewm (1.3.7-5.0) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Add hack to fix JDK7 focus on input/text fields, from zstegi via
+    http://sourceforge.net/p/icewm/bugs/892/ (Closes: #723844)
+
+ -- Thorsten Glaser <t...@mirbsd.de>  Fri, 20 Sep 2013 13:29:20 +0200
+
 icewm (1.3.7-5) unstable; urgency=low
 
   * Fixing linking arguments (libm also for Gnome parts, closes: #713632)
diff -Nru icewm-1.3.7/debian/patches/java7focus-1 
icewm-1.3.7/debian/patches/java7focus-1
--- icewm-1.3.7/debian/patches/java7focus-1     1970-01-01 01:00:00.000000000 
+0100
+++ icewm-1.3.7/debian/patches/java7focus-1     2013-09-20 13:28:57.000000000 
+0200
@@ -0,0 +1,63 @@
+From 9d2382ce230cbe03f8ad472cc8d5cb7dab0173d4 Mon Sep 17 00:00:00 2001
+From: Stefan Giermair <zst...@gmail.com>
+Date: Mon, 1 Apr 2013 03:47:57 +0200
+Subject: [PATCH 1/2] Hack for java7 focus issue; deactivatable with parameter
+ ActivateJava7FocusHack=0
+
+Signed-off-by: Thorsten Glaser <t.gla...@tarent.de>
+---
+ src/default.h |  2 ++
+ src/wmmgr.cc  | 24 +++++++++++++++++++++++-
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+--- a/src/default.h
++++ b/src/default.h
+@@ -129,6 +129,7 @@ XIV(bool, confirmLogout,
+ #ifdef CONFIG_SHAPED_DECORATION
+ XIV(bool, protectClientWindow,                  true)
+ #endif
++XIV(bool, activateJava7FocusHack,               true)
+ XIV(int, MenuMaximalWidth,                      0)
+ XIV(int, EdgeResistance,                        32)
+ XIV(int, snapDistance,                          8)
+@@ -331,6 +332,7 @@ cfoption icewm_preferences[] = {
+ #endif
+     OBV("DoubleBuffer",                         &doubleBuffer,                
  "Use double buffering when redrawing the display"),
+     OBV("XRRDisable",                           &xrrDisable,                  
  "Disable use of new XRANDR API for dual head (nvidia workaround)"),
++    OBV("ActivateJava7FocusHack",               &activateJava7FocusHack,      
  "Activate workaround for Java7 Swing/AWT focus issue"),
+     OIV("DelayFuzziness",                       &DelayFuzziness, 0, 100,      
  "Delay fuzziness, to allow merging of multiple timer timeouts into one 
(notebook power saving)"),
+     OIV("ClickMotionDistance",                  &ClickMotionDistance, 0, 32,  
  "Pointer motion distance before click gets interpreted as drag"),
+     OIV("ClickMotionDelay",                     &ClickMotionDelay, 0, 2000,   
  "Delay before click gets interpreted as drag"),
+--- a/src/wmmgr.cc
++++ b/src/wmmgr.cc
+@@ -869,7 +869,29 @@ void YWindowManager::setFocus(YFrameWind
+ #endif
+ 
+     if (w != None) {// input || w == desktop->handle()) {
+-        XSetInputFocus(xapp->display(), w, RevertToNone, 
xapp->getEventTime("setFocus"));
++        /* UGLY HACK for JAVA7! */
++        bool focusproxyfound = false;
++        if (activateJava7FocusHack) {
++            Window rr, pr, *cr(NULL);
++            unsigned int nc;
++            XQueryTree(xapp->display(), w, &rr, &pr, &cr, &nc);
++            if (cr) {
++                unsigned int i;
++                for (i = 0; i < nc && !focusproxyfound; i++) {
++                    char* str;
++                    XFetchName(xapp->display(), cr[i], &str);
++                    if (str && strcmp("FocusProxy", str)) {
++                        MSG(("HACK: Java(7) window found. Suppress 
XSetInputFocus."));
++                        focusproxyfound = true;
++                        XFree(str);
++                    }
++                }
++                XFree(cr);
++            }
++        }
++        if (!focusproxyfound) {
++            XSetInputFocus(xapp->display(), w, None, 
xapp->getEventTime("setFocus"));
++        }
+     } else {
+         XSetInputFocus(xapp->display(), fTopWin->handle(), RevertToNone, 
xapp->getEventTime("setFocus"));
+     }
diff -Nru icewm-1.3.7/debian/patches/java7focus-2 
icewm-1.3.7/debian/patches/java7focus-2
--- icewm-1.3.7/debian/patches/java7focus-2     1970-01-01 01:00:00.000000000 
+0100
+++ icewm-1.3.7/debian/patches/java7focus-2     2013-09-20 13:29:01.000000000 
+0200
@@ -0,0 +1,28 @@
+From 197367a92a9cc4d7f2357ddc2b6a97eeadbed591 Mon Sep 17 00:00:00 2001
+From: Stefan Giermair <zst...@gmail.com>
+Date: Tue, 2 Apr 2013 18:44:23 +0200
+Subject: [PATCH 2/2] java7 focus hack: xfree str even if the title is not
+ focusproxy
+
+Signed-off-by: Thorsten Glaser <t.gla...@tarent.de>
+---
+ src/wmmgr.cc | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/src/wmmgr.cc
++++ b/src/wmmgr.cc
+@@ -880,9 +880,11 @@ void YWindowManager::setFocus(YFrameWind
+                 for (i = 0; i < nc && !focusproxyfound; i++) {
+                     char* str;
+                     XFetchName(xapp->display(), cr[i], &str);
+-                    if (str && strcmp("FocusProxy", str)) {
+-                        MSG(("HACK: Java(7) window found. Suppress 
XSetInputFocus."));
+-                        focusproxyfound = true;
++                    if (str) {
++                        if (strcmp("FocusProxy", str)) {
++                            MSG(("HACK: Java(7) window found. Suppress 
XSetInputFocus."));
++                            focusproxyfound = true;
++                        }
+                         XFree(str);
+                     }
+                 }
diff -Nru icewm-1.3.7/debian/patches/series icewm-1.3.7/debian/patches/series
--- icewm-1.3.7/debian/patches/series   2013-06-29 16:52:57.000000000 +0200
+++ icewm-1.3.7/debian/patches/series   2013-09-20 13:28:23.000000000 +0200
@@ -15,3 +15,5 @@
 ftbfs-gcc-4.7.diff
 icon_property_fix
 safe_get_argument
+java7focus-1
+java7focus-2

Reply via email to