]> Dogcows Code - chaz/openbox/blobdiff - src/blackbox.cc
window resistance complete
[chaz/openbox] / src / blackbox.cc
index d30c01edf47e65273da9ac991b4b478b3d301b98..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);
@@ -439,8 +430,12 @@ void Blackbox::process_event(XEvent *e) {
     if ( i > 0 )
       e = &realevent;
 
+    // the pointer is on the wrong screen
+    if (! e->xmotion.same_screen)
+      break;
+
     // strip the lock key modifiers
-    e->xbutton.state &= ~(NumLockMask | ScrollLockMask | LockMask);
+    e->xmotion.state &= ~(NumLockMask | ScrollLockMask | LockMask);
 
     last_time = e->xmotion.time;
 
@@ -492,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?
         }
@@ -718,9 +713,8 @@ void Blackbox::process_event(XEvent *e) {
 
           if (win->isIconic())
             win->deiconify(False, True);
-          if (win->isShaded())
-            win->shade();
-          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())->
@@ -1264,15 +1258,15 @@ void Blackbox::load_rc(void) {
 #ifdef    XINERAMA
   if (! config.getValue("session.xineramaSupport.windowPlacement",
                         resource.xinerama_placement))
-    resource.xinerama_placement = true;
+    resource.xinerama_placement = false;
 
   if (! config.getValue("session.xineramaSupport.windowMaximizing",
                         resource.xinerama_maximize))
-    resource.xinerama_maximize = true;
+    resource.xinerama_maximize = false;
 
   if (! config.getValue("session.xineramaSupport.windowSnapping",
                         resource.xinerama_snap))
-    resource.xinerama_snap = true;
+    resource.xinerama_snap = false;
 #endif // XINERAMA
 }
 
This page took 0.028656 seconds and 4 git commands to generate.