Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c 


Log Message:


handle bizarre focus properties. ie take_focus - but a window that never
actually takes focus...

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.643
retrieving revision 1.644
diff -u -3 -r1.643 -r1.644
--- e_border.c  3 Aug 2008 21:54:49 -0000       1.643
+++ e_border.c  6 Aug 2008 22:57:37 -0000       1.644
@@ -1410,7 +1410,6 @@
        (!bd->client.icccm.take_focus)) return;
    /* dont focus an iconified window. that's silly! */
    if ((focus) && (bd->iconic)) return;
-   
    if ((bd->modal) && (bd->modal != bd))
      {
        e_border_focus_set(bd->modal, focus, set);
@@ -1421,6 +1420,37 @@
        e_border_focus_set(bd->leader->modal, focus, set);
        return;
      }
+   
+   if ((focus) && (set) && (!bd->focused))
+     {
+       if ((bd->client.icccm.accepts_focus) &&
+           (bd->client.icccm.take_focus))
+         {
+            if ((bd->visible) && (bd->changes.visible))
+              {
+                 e_border_focus_latest_set(bd);
+                 bd->want_focus = 1;
+                 bd->changed = 1;
+                 return;
+              }
+            e_grabinput_focus(bd->client.win, E_FOCUS_METHOD_LOCALLY_ACTIVE);
+            return;
+         }
+       else if ((!bd->client.icccm.accepts_focus) &&
+                (bd->client.icccm.take_focus))
+         {
+            if ((bd->visible) && (bd->changes.visible))
+              {
+                 e_border_focus_latest_set(bd);
+                 bd->want_focus = 1;
+                 bd->changed = 1;
+                 return;
+              }
+            e_grabinput_focus(bd->client.win, E_FOCUS_METHOD_GLOBALLY_ACTIVE);
+            return;
+         }
+     }
+   
    if ((bd->visible) && (bd->changes.visible))
      {  
        if ((bd->want_focus) && (set) && (!focus))



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to