Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h borders.c grabs.c menus.c moveresize.c 


Log Message:
Attempt to fix pointer grab problem.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.331
retrieving revision 1.332
diff -u -3 -r1.331 -r1.332
--- E.h 17 Nov 2004 19:31:08 -0000      1.331
+++ E.h 20 Nov 2004 17:55:11 -0000      1.332
@@ -1997,6 +1997,7 @@
 #define EDBUG_TYPE_SESSION     134
 #define EDBUG_TYPE_SNAPS       135
 #define EDBUG_TYPE_DESKS       136
+#define EDBUG_TYPE_GRABS       137
 int                 EventDebug(unsigned int type);
 #else
 #define             EventDebug(type) 0
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v
retrieving revision 1.234
retrieving revision 1.235
diff -u -3 -r1.234 -r1.235
--- borders.c   19 Nov 2004 23:14:47 -0000      1.234
+++ borders.c   20 Nov 2004 17:55:11 -0000      1.235
@@ -329,7 +329,6 @@
    EWin              **lst;
    int                 i, k, num, speed, fx, fy, x, y;
    char                doslide, manplace;
-   char                cangrab = 0;
 
    EDBUG(3, "AddToFamily");
 
@@ -479,18 +478,11 @@
    if ((!ewin->client.transient) && (Conf.place.manual)
        && (!ewin->client.already_placed) && (!Mode.wm.startup) && 
(!Mode.place))
      {
+       char                cangrab;
+
        cangrab = GrabPointerSet(VRoot.win, ECSR_GRAB, 0);
-       if ((cangrab == GrabNotViewable) || (cangrab == AlreadyGrabbed)
-           || (cangrab == GrabFrozen))
-         {
-            XUngrabPointer(disp, CurrentTime);
-            cangrab = 0;
-         }
-       else
-         {
-            manplace = 1;
-            cangrab = 1;
-         }
+       if (cangrab == GrabSuccess)
+          manplace = 1;
      }
 
    /* if it hasn't been placed yet.... find a spot for it */
@@ -512,10 +504,8 @@
             if (ewin->desktop >= 0)
                GotoDesktop(ewin->desktop);
 
-            GrabPointerSet(VRoot.win, ECSR_GRAB, 0);
             XQueryPointer(disp, VRoot.win, &root_return, &junk, &rx, &ry, &wx,
                           &wy, &mask);
-            XUngrabPointer(disp, CurrentTime);
             Mode.x = rx;
             Mode.y = ry;
             ewin->client.already_placed = 1;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/grabs.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- grabs.c     14 Aug 2004 15:06:26 -0000      1.19
+++ grabs.c     20 Nov 2004 17:55:12 -0000      1.20
@@ -74,6 +74,7 @@
    EDBUG_RETURN_;
 }
 
+#if 0                          /* Unused */
 void
 GrabButtonsSet(Window win, unsigned int csr)
 {
@@ -86,15 +87,16 @@
    Mode.grabs.pointer_grab_window = win;
    Mode.grabs.pointer_grab_active = 1;
 }
+#endif
 
 int
 GrabPointerSet(Window win, unsigned int csr, int confine)
 {
-   int                 ret;
+   int                 ret = -1;
    Window              confine_to = (confine) ? win : None;
 
    if (Mode.grabs.pointer_grab_active)
-      return 1;
+      goto done;
 
    ret = XGrabPointer(disp, win, True,
                      ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
@@ -105,6 +107,11 @@
    Mode.grabs.pointer_grab_window = win;
    Mode.grabs.pointer_grab_active = 1;
 
+ done:
+   if (EventDebug(EDBUG_TYPE_GRABS))
+      Eprintf("GrabPointerSet: %#lx, ret=%d\n", Mode.grabs.pointer_grab_window,
+             ret);
+
    return ret;
 }
 
@@ -112,10 +119,14 @@
 GrabPointerRelease(void)
 {
    if (!Mode.grabs.pointer_grab_active)
-      return;
+      goto done;
 
    XUngrabPointer(disp, CurrentTime);
 
+ done:
+   if (EventDebug(EDBUG_TYPE_GRABS))
+      Eprintf("GrabPointerRelease: %#lx\n", Mode.grabs.pointer_grab_window);
+
    Mode.grabs.pointer_grab_active = 0;
    Mode.grabs.pointer_grab_window = None;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -3 -r1.154 -r1.155
--- menus.c     12 Nov 2004 17:34:14 -0000      1.154
+++ menus.c     20 Nov 2004 17:55:12 -0000      1.155
@@ -1848,7 +1848,6 @@
    m = FindItem(name, 0, LIST_FINDBY_NAME, LIST_TYPE_MENU);
    if (m)
      {
-       XUngrabPointer(disp, CurrentTime);
        if (!FindEwinByMenu(m)) /* Don't show if already shown */
           MenuShow(m, 0);
        Mode.menus.list[0] = m;
@@ -1992,8 +1991,6 @@
 
    EDBUG(5, "ShowInternalMenu");
 
-   XUngrabPointer(disp, CurrentTime);
-
    if (!ms)
      {
        ms = FindItem(style, 0, LIST_FINDBY_NAME, LIST_TYPE_MENU_STYLE);
@@ -2317,7 +2314,6 @@
        Mode.menus.list[0] = m;
        Mode.menus.current_depth = 1;
        MenuShowMasker(m);
-       XUngrabPointer(disp, CurrentTime);
        ewin = FindEwinByMenu(m);
        if (ewin)
          {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/moveresize.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- moveresize.c        14 Aug 2004 15:06:26 -0000      1.23
+++ moveresize.c        20 Nov 2004 17:55:12 -0000      1.24
@@ -94,6 +94,7 @@
    int                 d, wasresize = 0, num, i;
 
    EDBUG(6, "doMoveEnd");
+
    GrabPointerRelease();
 
    if (ewin && ewin != mode_moveresize_ewin)
@@ -169,13 +170,7 @@
    Conf.movemode = move_mode_real;
    Mode.nogroup = 0;
    Mode.move.swap = 0;
-
-   if (Mode.have_place_grab)
-     {
-       Mode.have_place_grab = 0;
-       XUngrabPointer(disp, CurrentTime);
-     }
-
+   Mode.have_place_grab = 0;
    EwinUpdateAfterMoveResize(ewin, 0);
 
    EDBUG_RETURN(0);




-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to