Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c 


Log Message:
* Windows can be transient and be part of a group
* Check for recursive focus

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.387
retrieving revision 1.388
diff -u -3 -r1.387 -r1.388
--- e_border.c  2 Sep 2005 17:51:34 -0000       1.387
+++ e_border.c  2 Sep 2005 21:06:57 -0000       1.388
@@ -973,12 +973,12 @@
    E_OBJECT_CHECK(bd);
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
    //printf("e_border_focus_set(%p, %i %i);\n", bd, focus, set);
-   if (bd->modal)
+   if ((bd->modal) && (bd->modal != bd))
      {
        e_border_focus_set(bd->modal, focus, set);
        return;
      }
-   else if ((bd->leader) && (bd->leader->modal))
+   else if ((bd->leader) && (bd->leader->modal) && (bd->leader->modal != bd))
      {
        e_border_focus_set(bd->leader->modal, focus, set);
        return;
@@ -2345,8 +2345,11 @@
        if (bd->leader->modal == bd)
          {
             bd->leader->modal = NULL;
+            /* TODO Should we focus leader when this window closes? */
+#if 0
             if (bd->focused)
               e_border_focus_set(bd->leader, 1, 1);
+#endif
          }
      }
    while (bd->group)
@@ -4743,12 +4746,6 @@
    if (bd->new_client)
      {
        bd->new_client = 0;
-       if ((bd->client.icccm.transient_for) && 
(bd->client.icccm.client_leader))
-         {
-            e_error_dialog_show(_("ICCCM error"),
-                                _("Weird, this window is transient and has a 
leader: %s\n"),
-                                  e_border_name_get(bd));
-         }
        if (bd->client.icccm.transient_for)
          {
             E_Border *bd_parent;
@@ -4767,7 +4764,8 @@
             E_Border *bd_leader;
 
             bd_leader = 
e_border_find_by_client_window(bd->client.icccm.client_leader);
-            if (bd_leader)
+            /* If this border is the leader of the group, don't register 
itself */
+            if ((bd_leader) && (bd_leader != bd))
               {
                  bd_leader->group = evas_list_append(bd_leader->group, bd);
                  bd->leader = bd_leader;




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to