]> Dogcows Code - chaz/openbox/blobdiff - src/blackbox.cc
window resistance complete
[chaz/openbox] / src / blackbox.cc
index cdc7137a0b07291674e1c6aa37af67e723fb0ddb..0e03e17817ebc9289f31b5d89bb8a95a92ad10da 100644 (file)
@@ -282,16 +282,6 @@ void Blackbox::process_event(XEvent *e) {
   }
 
   case ConfigureRequest: {
-    // compress configure requests...
-    XEvent realevent;
-    unsigned int i = 0;
-    while(XCheckTypedWindowEvent(getXDisplay(), e->xconfigurerequest.window,
-                                 ConfigureRequest, &realevent)) {
-      i++;
-    }
-    if ( i > 0 )
-      e = &realevent;
-
     BlackboxWindow *win = (BlackboxWindow *) 0;
     Slit *slit = (Slit *) 0;
 
@@ -338,7 +328,8 @@ void Blackbox::process_event(XEvent *e) {
         focus = True;
       }
 
-      if (focus && (win->isTransient() || win->getScreen()->doFocusNew()))
+      if (focus && (win->isTransient() || win->getScreen()->doFocusNew()) &&
+          win->isVisible())
         win->setInputFocus();
     } else {
       BScreen *screen = searchScreen(e->xmaprequest.parent);
@@ -496,7 +487,7 @@ void Blackbox::process_event(XEvent *e) {
       if (win->getScreen()->isSloppyFocus() &&
           (! win->isFocused()) && (! no_focus) &&
           win->isNormal()) {  // don't focus non-normal windows with mouseover
-        if (((! sa.leave) || sa.inferior) && win->isVisible()) {
+        if ((! sa.leave || sa.inferior) && win->isVisible()) {
           if (win->setInputFocus())
             win->installColormap(True); // XXX: shouldnt we honour no install?
         }
@@ -722,7 +713,8 @@ void Blackbox::process_event(XEvent *e) {
 
           if (win->isIconic())
             win->deiconify(False, True);
-          if (win->getWorkspaceNumber() != screen->getCurrentWorkspaceID())
+          if (! win->isStuck() &&
+              (win->getWorkspaceNumber() != screen->getCurrentWorkspaceID()))
             screen->changeWorkspaceID(win->getWorkspaceNumber());
           if (win->isVisible() && win->setInputFocus()) {
             win->getScreen()->getWorkspace(win->getWorkspaceNumber())->
This page took 0.024301 seconds and 4 git commands to generate.