From da503e92475cd542f7b454d0f85ae1e3bf585604 Mon Sep 17 00:00:00 2001
From: rathnor <rathnor>
Date: Thu, 11 Sep 2003 21:30:20 +0000
Subject: fix problems relating to windows reparenting themselves. Fixes
 vncviewer switch to fullscreen. Maybe mplayer fullscreen issue too?

---
 ChangeLog      | 4 ++++
 src/Window.cc  | 7 +++++--
 src/fluxbox.cc | 5 +++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index dec350c..e743849 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 (Format: Year/Month/Day)
 Changes for 0.9.6:
 *03/09/12:
+   * Fix a couple of issues related to windows reparenting themselves
+     to escape the WM. Hopefully fixes mplayer/vncviewer fullscreen
+     problems.  (Simon)
+     fluxbox.cc Window.cc
    * Fix window gravity handling (Simon)
      - should fix some offset fullscreen issues
      FbWinFrame.hh/cc WinClient.hh/cc Window.cc
diff --git a/src/Window.cc b/src/Window.cc
index 763fd52..cd97f16 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -22,7 +22,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: Window.cc,v 1.224 2003/09/11 19:55:27 rathnor Exp $
+// $Id: Window.cc,v 1.225 2003/09/11 21:30:20 rathnor Exp $
 
 #include "Window.hh"
 
@@ -2963,7 +2963,10 @@ void FluxboxWindow::restore(WinClient *client, bool remap) {
     int wx = frame().x(), wy = frame().y(); // not actually used here
     frame().gravityTranslate(wx, wy, -client->gravity(), true); // negative to invert
 
-    client->hide();
+    // Why was this hide done? It broke vncviewer (and mplayer?), 
+    // since it would reparent when going fullscreen.
+    // is it needed for anything? Reparent should imply unmap
+    //client->hide();
 
     // restore old border width
     client->setBorderWidth(client->old_bw);
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 94da4cb..16c4204 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -22,7 +22,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: fluxbox.cc,v 1.188 2003/09/10 09:51:58 fluxgen Exp $
+// $Id: fluxbox.cc,v 1.189 2003/09/11 21:30:20 rathnor Exp $
 
 #include "fluxbox.hh"
 
@@ -873,7 +873,8 @@ void Fluxbox::handleEvent(XEvent * const e) {
 #endif // DEBUG
 
         } else {
-            
+            if (winclient == m_focused_window)
+                setFocusedWindow(0);
         }
     }
 	break;
-- 
cgit v0.11.2