Focus modal windows if any group member is focused.
authorsebastid <sebastid>
Sat, 10 Jun 2006 22:05:50 +0000 (22:05 +0000)
committersebastid <sebastid@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 10 Jun 2006 22:05:50 +0000 (22:05 +0000)
SVN revision: 23370

src/bin/e.h
src/bin/e_border.c

index a645a02..51f25be 100644 (file)
@@ -7,10 +7,8 @@
 #include "config.h"
 
 #define USE_IPC
-/*
 #define OBJECT_PARANOIA_CHECK
 #define OBJECT_CHECK
-*/
 
 #include <stdio.h>
 #include <stdlib.h>
index e8bfffd..7734418 100644 (file)
@@ -4551,6 +4551,18 @@ _e_border_eval(E_Border *bd)
                  bd->leader->modal = bd;
                  if (bd->leader->focused)
                    e_border_focus_set(bd, 1, 1);
+                 else
+                   {
+                      Evas_List *l;
+                      for (l = bd->leader->group; l; l = l->next)
+                        {
+                           E_Border *child;
+
+                           child = l->data;
+                           if ((child != bd) && (child->focused))
+                             e_border_focus_set(bd, 1, 1);
+                        }
+                   }
               }
          }
        bd->client.icccm.fetch.client_leader = 0;
@@ -4998,6 +5010,18 @@ _e_border_eval(E_Border *bd)
                  bd->leader->modal = bd;
                  if (bd->leader->focused)
                    e_border_focus_set(bd, 1, 1);
+                 else
+                   {
+                      Evas_List *l;
+                      for (l = bd->leader->group; l; l = l->next)
+                        {
+                           E_Border *child;
+
+                           child = l->data;
+                           if ((child != bd) && (child->focused))
+                             e_border_focus_set(bd, 1, 1);
+                        }
+                   }
               }
          }
        bd->client.netwm.update.state = 0;