]> Dogcows Code - chaz/openbox/commitdiff
Merge branch 'backport' into work
authorDana Jansens <danakj@orodu.net>
Sun, 2 Mar 2008 20:03:10 +0000 (15:03 -0500)
committerDana Jansens <danakj@orodu.net>
Sun, 2 Mar 2008 20:03:10 +0000 (15:03 -0500)
1  2 
openbox/actions/session.c
openbox/client.c
openbox/prompt.c
openbox/prompt.h
po/POTFILES.in

Simple merge
index c0864bc45db4f70ced2b3ba63850b03ba001fc41,98d1035b9c6d0d0377e29f6191a35ca13dd3495e..b57d61691bd57120e10cf67cf4a41cfe68b03bbf
@@@ -442,12 -528,10 +448,10 @@@ void client_manage(Window window, ObPro
              raise = TRUE;
              ob_debug_type(OB_DEBUG_FOCUS,
                            "Not focusing the window because its on another "
 -                          "desktop\n");
 +                          "desktop");
          }
-         /* If something is focused, and it's not our relative... */
-         else if (focus_client && client_search_focus_tree_full(self) == NULL &&
-                  client_search_focus_group_full(self) == NULL)
-         {
+         /* If something is focused... */
+         else if (focus_client) {
              /* If the user is working in another window right now, then don't
                 steal focus */
              if (event_last_user_time && launch_time &&
                  activate = FALSE;
                  ob_debug_type(OB_DEBUG_FOCUS,
                                "Not focusing the window because the user is "
 -                              "working in another window\n");
 +                              "working in another window");
              }
-             /* If it's a transient (and its parents aren't focused) */
-             else if (client_has_parent(self)) {
+             /* If the new window is a transient (and its relatives aren't
+                focused) */
+             else if (client_has_parent(self) && !relative_focused) {
                  activate = FALSE;
                  ob_debug_type(OB_DEBUG_FOCUS,
                                "Not focusing the window because it is a "
                  raise = TRUE;
                  ob_debug_type(OB_DEBUG_FOCUS,
                                "Not focusing the window because another window "
 -                              "would get the focus anyway\n");
 +                              "would get the focus anyway");
              }
+             /* Don't move focus if the window is not visible on the current
+                desktop and none of its relatives are focused */
              else if (!(self->desktop == screen_desktop ||
-                        self->desktop == DESKTOP_ALL))
+                        self->desktop == DESKTOP_ALL) &&
+                      !relative_focused)
              {
                  activate = FALSE;
                  raise = TRUE;
Simple merge
Simple merge
diff --cc po/POTFILES.in
Simple merge
This page took 0.032766 seconds and 4 git commands to generate.