only revert focus to a sticky window on desk flip if there's no other window to revert to
authorMike Blumenkrantz <zmike@samsung.com>
Tue, 10 Dec 2013 20:35:02 +0000 (15:35 -0500)
committerMike Blumenkrantz <zmike@samsung.com>
Tue, 10 Dec 2013 20:36:28 +0000 (15:36 -0500)
T625

src/bin/e_desk.c

index affe0df..6d7ce7d 100644 (file)
@@ -374,7 +374,7 @@ EAPI E_Border *
 e_desk_last_focused_focus(E_Desk *desk)
 {
    Eina_List *l = NULL;
-   E_Border *bd;
+   E_Border *bd, *bds = NULL;
 
    EINA_LIST_FOREACH(e_border_focus_stack_get(), l, bd)
      {
@@ -390,11 +390,21 @@ e_desk_last_focused_focus(E_Desk *desk)
              /* this was the window last focused in this desktop */
              if (!bd->lock_focus_out)
                {
+                  if (bd->sticky)
+                    {
+                       bds = bd;
+                       continue;
+                    }
                   e_border_focus_set_with_pointer(bd);
                   return bd;
                }
           }
      }
+   if (bds)
+     {
+        e_border_focus_set_with_pointer(bd);
+        return bd;
+     }
    return NULL;
 }