From bd3d8d5c8da9a1db58108c3b26257d7bb3d3139c Mon Sep 17 00:00:00 2001
From: markt <markt>
Date: Mon, 19 Feb 2007 16:04:59 +0000
Subject: fixed some strange behavior with tabbing a transient to its main
 window

---
 src/Ewmh.cc   | 2 ++
 src/Window.cc | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/Ewmh.cc b/src/Ewmh.cc
index 646fa0e..ce5f1a3 100644
--- a/src/Ewmh.cc
+++ b/src/Ewmh.cc
@@ -328,6 +328,8 @@ void Ewmh::setupFrame(FluxboxWindow &win) {
                 changeProperty(m_net_wm_window_type,
                                XA_ATOM, 32, PropModeReplace,
                                (unsigned char*)&m_net_wm_window_type_dialog, 1);
+            // and then we should treat it like a dialog
+            win.setTabable(false);
         }
     }
 
diff --git a/src/Window.cc b/src/Window.cc
index 36bd271..ccdb477 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -1887,7 +1887,8 @@ void FluxboxWindow::raise() {
     // raise this window and every transient in it with this one last
     if (client->fbwindow()) {
         // doing this on startup messes up the focus order
-        if (!Fluxbox::instance()->isStartup())
+        if (!Fluxbox::instance()->isStartup() && client->fbwindow() != this &&
+                &client->fbwindow()->winClient() != client)
             // activate the client so the transient won't get pushed back down
             client->fbwindow()->setCurrentClient(*client, false);
         raiseFluxboxWindow(*client->fbwindow());
-- 
cgit v0.11.2