Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h actions.c cursors.c focus.c ipc.c 


Log Message:
Partial fix to button grab problem.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.319
retrieving revision 1.320
diff -u -3 -r1.319 -r1.320
--- E.h 13 Aug 2004 20:41:25 -0000      1.319
+++ E.h 14 Aug 2004 00:47:17 -0000      1.320
@@ -1803,9 +1803,10 @@
 #define ECSR_NONE           0
 #define ECSR_ROOT           1
 #define ECSR_GRAB           2
-#define ECSR_ACT_MOVE       3
-#define ECSR_ACT_RESIZE     4
-#define ECSR_COUNT          5
+#define ECSR_PGRAB          3
+#define ECSR_ACT_MOVE       4
+#define ECSR_ACT_RESIZE     5
+#define ECSR_COUNT          6
 void                ECursorsInit(void);
 ECursor            *ECursorCreate(const char *name, const char *image,
                                  int native_id, XColor * fg, XColor * bg);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/actions.c,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -3 -r1.175 -r1.176
--- actions.c   7 Aug 2004 21:00:08 -0000       1.175
+++ actions.c   14 Aug 2004 00:47:17 -0000      1.176
@@ -80,64 +80,67 @@
    int                 j;
    Action             *a;
    Window              pager_hi_win;
+   unsigned int        mod, button, mask;
 
    ac = (ActionClass *) FindItem("BUTTONBINDINGS", 0, LIST_FINDBY_NAME,
                                 LIST_TYPE_ACLASS);
 
-   if (ac)
-     {
-       pager_hi_win = PagerGetHiWin(ewin->pager);
-       ac->ref_count++;
-       for (j = 0; j < ac->num; j++)
-         {
-            a = ac->list[j];
-            if ((a)
-                && ((a->event == EVENT_MOUSE_DOWN)
-                    || (a->event == EVENT_MOUSE_UP)))
-              {
-                 unsigned int        mod, button, mask;
+   if (!ac)
+      return;
 
-                 mod = 0;
-                 button = 0;
-                 if (a->anymodifier)
-                    mod = AnyModifier;
-                 else
-                    mod = a->modifiers;
-                 if (a->anybutton)
-                    button = AnyButton;
-                 else
-                    button = a->button;
-                 mask = ButtonPressMask | ButtonReleaseMask;
-                 if (mod == AnyModifier)
-                   {
+   pager_hi_win = PagerGetHiWin(ewin->pager);
+   ac->ref_count++;
+   for (j = 0; j < ac->num; j++)
+     {
+       a = ac->list[j];
+       if ((!a) || ((a->event != EVENT_MOUSE_DOWN)
+                    && (a->event != EVENT_MOUSE_UP)))
+          continue;
+
+       mod = 0;
+       button = 0;
+
+       if (a->anymodifier)
+          mod = AnyModifier;
+       else
+          mod = a->modifiers;
+
+       if (a->anybutton)
+          button = AnyButton;
+       else
+          button = a->button;
+
+       mask = ButtonPressMask | ButtonReleaseMask;
+
+       if (mod == AnyModifier)
+         {
 #if 0                          /* Why? */
-                      if (pager_hi_win)
-                         XGrabButton(disp, button, mod, pager_hi_win,
-                                     False, mask, GrabModeSync, GrabModeAsync,
-                                     None, None);
+            if (pager_hi_win)
+               XGrabButton(disp, button, mod, pager_hi_win,
+                           False, mask, GrabModeSync, GrabModeAsync,
+                           None, None);
 #endif
-                      XGrabButton(disp, button, mod, ewin->win, False, mask,
-                                  GrabModeSync, GrabModeAsync, None, None);
-                   }
-                 else
-                   {
-                      int                 i;
+            XGrabButton(disp, button, mod, ewin->win, False, mask,
+                        GrabModeSync, GrabModeAsync,
+                        ewin->win, ECsrGet(ECSR_PGRAB));
+         }
+       else
+         {
+            int                 i;
 
-                      for (i = 0; i < 8; i++)
-                        {
+            for (i = 0; i < 8; i++)
+              {
 #if 0                          /* Why? */
-                           if (pager_hi_win)
-                              XGrabButton(disp, button,
-                                          mod | mask_mod_combos[i],
-                                          pager_hi_win, False, mask,
-                                          GrabModeSync, GrabModeAsync, None,
-                                          None);
+                 if (pager_hi_win)
+                    XGrabButton(disp, button,
+                                mod | mask_mod_combos[i],
+                                pager_hi_win, False, mask,
+                                GrabModeSync, GrabModeAsync, None, None);
 #endif
-                           XGrabButton(disp, button, mod | mask_mod_combos[i],
-                                       ewin->win, False, mask, GrabModeSync,
-                                       GrabModeAsync, None, None);
-                        }
-                   }
+                 XGrabButton(disp, button, mod | mask_mod_combos[i],
+                             ewin->win, False, mask,
+                             GrabModeSync, GrabModeAsync,
+                             ewin->win, ECsrGet(ECSR_PGRAB));
               }
          }
      }
@@ -150,53 +153,53 @@
    int                 j;
    Action             *a;
    Window              pager_hi_win;
+   unsigned int        mod, button;
 
    ac = (ActionClass *) FindItem("BUTTONBINDINGS", 0, LIST_FINDBY_NAME,
                                 LIST_TYPE_ACLASS);
 
-   if (ac)
-     {
-       pager_hi_win = PagerGetHiWin(ewin->pager);
-       ac->ref_count--;
-       for (j = 0; j < ac->num; j++)
-         {
-            a = ac->list[j];
-            if ((a)
-                && ((a->event == EVENT_MOUSE_DOWN)
-                    || (a->event == EVENT_MOUSE_UP)))
-              {
-                 unsigned int        mod, button;
+   if (!ac)
+      return;
 
-                 mod = 0;
-                 button = 0;
-                 if (a->anymodifier)
-                    mod = AnyModifier;
-                 else
-                    mod = a->modifiers;
-                 if (a->anybutton)
-                    button = AnyButton;
-                 else
-                    button = a->button;
-                 if (mod == AnyModifier)
-                   {
-                      if (pager_hi_win)
-                         XUngrabButton(disp, button, mod, pager_hi_win);
-                      XUngrabButton(disp, button, mod, ewin->win);
-                   }
-                 else
-                   {
-                      int                 i;
+   pager_hi_win = PagerGetHiWin(ewin->pager);
+   ac->ref_count--;
+   for (j = 0; j < ac->num; j++)
+     {
+       a = ac->list[j];
+       if ((!a) || ((a->event != EVENT_MOUSE_DOWN)
+                    && (a->event != EVENT_MOUSE_UP)))
+          continue;
 
-                      for (i = 0; i < 8; i++)
-                        {
-                           if (pager_hi_win)
-                              XUngrabButton(disp, button,
-                                            mod | mask_mod_combos[i],
-                                            pager_hi_win);
-                           XUngrabButton(disp, button,
-                                         mod | mask_mod_combos[i], ewin->win);
-                        }
-                   }
+       mod = 0;
+       button = 0;
+
+       if (a->anymodifier)
+          mod = AnyModifier;
+       else
+          mod = a->modifiers;
+
+       if (a->anybutton)
+          button = AnyButton;
+       else
+          button = a->button;
+
+       if (mod == AnyModifier)
+         {
+            if (pager_hi_win)
+               XUngrabButton(disp, button, mod, pager_hi_win);
+            XUngrabButton(disp, button, mod, ewin->win);
+         }
+       else
+         {
+            int                 i;
+
+            for (i = 0; i < 8; i++)
+              {
+                 if (pager_hi_win)
+                    XUngrabButton(disp, button,
+                                  mod | mask_mod_combos[i], pager_hi_win);
+                 XUngrabButton(disp, button,
+                               mod | mask_mod_combos[i], ewin->win);
               }
          }
      }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/cursors.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- cursors.c   18 Jul 2004 12:27:38 -0000      1.20
+++ cursors.c   14 Aug 2004 00:47:17 -0000      1.21
@@ -202,6 +202,7 @@
    ECsrs[ECSR_NONE] = None;
    ECsrs[ECSR_ROOT] = ECursorGetByName("DEFAULT", XC_left_ptr);
    ECsrs[ECSR_GRAB] = ECursorGetByName("GRAB", XC_crosshair);
+   ECsrs[ECSR_PGRAB] = ECursorGetByName("PGRAB", XC_X_cursor);
    ECsrs[ECSR_ACT_MOVE] = ECursorGetByName("GRAB_MOVE", XC_fleur);
    ECsrs[ECSR_ACT_RESIZE] = ECursorGetByName("GRAB_RESIZE", XC_sizing);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/focus.c,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -3 -r1.81 -r1.82
--- focus.c     23 Jul 2004 20:05:50 -0000      1.81
+++ focus.c     14 Aug 2004 00:47:17 -0000      1.82
@@ -161,13 +161,19 @@
      {
        XGrabButton(disp, AnyButton, AnyModifier, ewin->win_container,
                    False, ButtonPressMask, GrabModeSync, GrabModeAsync,
-                   None, None);
-/*     Eprintf("FocusEwinSetGrabs: %#lx grab\n", ewin->client.win); */
+                   ewin->win_container, ECsrGet(ECSR_PGRAB));
+#if 0
+       Eprintf("FocusEwinSetGrabs: %#lx grab %s\n", ewin->client.win,
+               EwinGetTitle(ewin));
+#endif
      }
    else
      {
        XUngrabButton(disp, AnyButton, AnyModifier, ewin->win_container);
-/*     Eprintf("FocusEwinSetGrabs: %#lx ungrab\n", ewin->client.win); */
+#if 0
+       Eprintf("FocusEwinSetGrabs: %#lx ungrab %s\n", ewin->client.win,
+               EwinGetTitle(ewin));
+#endif
      }
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v
retrieving revision 1.177
retrieving revision 1.178
diff -u -3 -r1.177 -r1.178
--- ipc.c       7 Aug 2004 23:11:44 -0000       1.177
+++ ipc.c       14 Aug 2004 00:47:17 -0000      1.178
@@ -4439,7 +4439,14 @@
        l = 0;
        sscanf(p, "%1000s %n", param, &l);
        p += l;
-       if (!strncmp(param, "unset", 2))
+       if (!strncmp(param, "allow", 2))
+         {
+            l = 0;
+            sscanf(p, "%d", &l);
+            XAllowEvents(disp, l, CurrentTime);
+            IpcPrintf("XAllowEvents\n");
+         }
+       else if (!strncmp(param, "unset", 2))
          {
             UnGrabTheButtons();
             IpcPrintf("Ungrab\n");




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to