]> Dogcows Code - chaz/openbox/blobdiff - src/Window.cc
make cycling by window class work properly, was using the app name instead of class
[chaz/openbox] / src / Window.cc
index 4c7a31d76d9536751908b498a34af527875a1a84..8899ff1646c73ee7f70091a097b3fecae4a6a600 100644 (file)
@@ -153,10 +153,17 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
   client.rect.setRect(wattrib.x, wattrib.y, wattrib.width, wattrib.height);
   client.old_bw = wattrib.border_width;
 
-  timer = 0;
   windowmenu = 0;
   lastButtonPressTime = 0;
 
+  timer = new BTimer(blackbox, this);
+  timer->setTimeout(blackbox->getAutoRaiseDelay());
+
+  if (! getBlackboxHints()) {
+    getMWMHints();
+    getNetWMHints();
+  }
+
   // get size, aspect, minimum/maximum size and other hints set by the
   // client
   getWMProtocols();
@@ -169,14 +176,6 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
     return;
   }
 
-  timer = new BTimer(blackbox, this);
-  timer->setTimeout(blackbox->getAutoRaiseDelay());
-
-  if (! getBlackboxHints()) {
-    getMWMHints();
-    getNetWMHints();
-  }
-
   frame.window = createToplevelWindow();
   frame.plate = createChildWindow(frame.window);
   associateClientWindow();
@@ -2514,7 +2513,8 @@ void BlackboxWindow::mapRequestEvent(const XMapRequestEvent *re) {
     if (isNormal()) {
       if (! blackbox->isStartup()) {
         XSync(blackbox->getXDisplay(), False); // make sure the frame is mapped
-        if (isTransient() || screen->doFocusNew()) {
+        if (screen->doFocusNew()|| (isTransient() && getTransientFor() &&
+                                    getTransientFor()->isFocused())) {
           setInputFocus();
         }
         if (screen->getPlacementPolicy() == BScreen::ClickMousePlacement) {
This page took 0.021719 seconds and 4 git commands to generate.