]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
Menu data structures basically completed.
[chaz/openbox] / openbox / client.c
index 75ba752b57b8c9d4ef12e028c824b1a989f24184..95d1e97e1539613eb1c7b4c19a33017fac88fa2d 100644 (file)
@@ -1721,7 +1721,9 @@ void client_set_desktop(Client *self, guint target, gboolean donthide)
     /* 'move' the window to the new desktop */
     if (!donthide)
         client_showhide(self);
-    stacking_raise(self);
+    /* raise if it was not already on the desktop */
+    if (old != DESKTOP_ALL)
+        stacking_raise(self);
     screen_update_struts();
 
     /* update the focus lists */
@@ -1956,9 +1958,10 @@ gboolean client_focus(Client *self)
     }
 
     if (self->can_focus)
-        /* RevertToNone is used so that windows dont get focused inadvertantly
-           by having the pointer in them, and then FocusIn events go missing */
-       XSetInputFocus(ob_display, self->window, RevertToNone,
+        /* RevertToPointerRoot causes much more headache than TevertToNone, so
+           I choose to use it always, hopefully to find errors quicker, if any
+           are left. (I hate X. I hate focus events.) */
+       XSetInputFocus(ob_display, self->window, RevertToPointerRoot,
                        event_lasttime);
 
     if (self->focus_notify) {
This page took 0.02083 seconds and 4 git commands to generate.