Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h actions.c borders.c buttons.c evhandlers.c focus.c grabs.c ipc.c moveresize.c pager.c session.c Log Message: Pass button grabs through one function. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.320 retrieving revision 1.321 diff -u -3 -r1.320 -r1.321 --- E.h 14 Aug 2004 00:47:17 -0000 1.320 +++ E.h 14 Aug 2004 15:06:26 -0000 1.321 @@ -2176,10 +2176,14 @@ /* grabs.c */ void GrabActionKey(Action * a); void UnGrabActionKey(Action * a); -void GrabTheButtons(Window win); -int GrabThePointer(Window win, int csr); -int GrabConfineThePointer(Window win, int csr); -void UnGrabTheButtons(void); +void GrabButtonsSet(Window win, unsigned int csr); +int GrabPointerSet(Window win, unsigned int csr, int confine); +void GrabPointerRelease(void); +void GrabButtonSet(unsigned int button, unsigned int modifiers, + Window window, unsigned int event_mask, + unsigned int csr, int confine); +void GrabButtonRelease(unsigned int button, + unsigned int modifiers, Window win); /* groups.c */ void CopyGroupConfig(GroupConfig * src, GroupConfig * dest); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/actions.c,v retrieving revision 1.176 retrieving revision 1.177 diff -u -3 -r1.176 -r1.177 --- actions.c 14 Aug 2004 00:47:17 -0000 1.176 +++ actions.c 14 Aug 2004 15:06:26 -0000 1.177 @@ -79,7 +79,6 @@ ActionClass *ac; int j; Action *a; - Window pager_hi_win; unsigned int mod, button, mask; ac = (ActionClass *) FindItem("BUTTONBINDINGS", 0, LIST_FINDBY_NAME, @@ -88,7 +87,6 @@ if (!ac) return; - pager_hi_win = PagerGetHiWin(ewin->pager); ac->ref_count++; for (j = 0; j < ac->num; j++) { @@ -114,15 +112,7 @@ if (mod == AnyModifier) { -#if 0 /* Why? */ - 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, - ewin->win, ECsrGet(ECSR_PGRAB)); + GrabButtonSet(button, mod, ewin->win, mask, ECSR_PGRAB, 1); } else { @@ -130,17 +120,8 @@ 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); -#endif - XGrabButton(disp, button, mod | mask_mod_combos[i], - ewin->win, False, mask, - GrabModeSync, GrabModeAsync, - ewin->win, ECsrGet(ECSR_PGRAB)); + GrabButtonSet(button, mod | mask_mod_combos[i], ewin->win, + mask, ECSR_PGRAB, 1); } } } @@ -152,7 +133,6 @@ ActionClass *ac; int j; Action *a; - Window pager_hi_win; unsigned int mod, button; ac = (ActionClass *) FindItem("BUTTONBINDINGS", 0, LIST_FINDBY_NAME, @@ -161,7 +141,6 @@ if (!ac) return; - pager_hi_win = PagerGetHiWin(ewin->pager); ac->ref_count--; for (j = 0; j < ac->num; j++) { @@ -185,9 +164,7 @@ if (mod == AnyModifier) { - if (pager_hi_win) - XUngrabButton(disp, button, mod, pager_hi_win); - XUngrabButton(disp, button, mod, ewin->win); + GrabButtonRelease(button, mod, ewin->win); } else { @@ -195,11 +172,8 @@ 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); + GrabButtonRelease(button, mod | mask_mod_combos[i], + ewin->win); } } } @@ -1718,7 +1692,7 @@ EDBUG_RETURN(0); } - GrabThePointer(VRoot.win, ECSR_GRAB); + GrabPointerSet(VRoot.win, ECSR_GRAB, 0); Mode.mode = MODE_BUTTONDRAG; Mode.button_move_pending = 1; Mode.start_x = Mode.x; @@ -1743,7 +1717,7 @@ EDBUG_RETURN(0); Mode.mode = MODE_NONE; - UnGrabTheButtons(); + GrabPointerRelease(); if (!Mode.button_move_pending) { d = DesktopAt(Mode.x, Mode.y); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v retrieving revision 1.224 retrieving revision 1.225 diff -u -3 -r1.224 -r1.225 --- borders.c 13 Aug 2004 21:06:34 -0000 1.224 +++ borders.c 14 Aug 2004 15:06:26 -0000 1.225 @@ -493,7 +493,7 @@ if ((!ewin->client.transient) && (Conf.place.manual) && (!ewin->client.already_placed) && (!Mode.wm.startup) && (!Mode.place)) { - cangrab = GrabThePointer(VRoot.win, ECSR_GRAB); + cangrab = GrabPointerSet(VRoot.win, ECSR_GRAB, 0); if ((cangrab == GrabNotViewable) || (cangrab == AlreadyGrabbed) || (cangrab == GrabFrozen)) { @@ -526,7 +526,7 @@ if (ewin->desktop >= 0) GotoDesktop(ewin->desktop); - GrabThePointer(VRoot.win, ECSR_GRAB); + GrabPointerSet(VRoot.win, ECSR_GRAB, 0); XQueryPointer(disp, VRoot.win, &root_return, &junk, &rx, &ry, &wx, &wy, &mask); XUngrabPointer(disp, CurrentTime); @@ -596,7 +596,7 @@ MoveEwin(ewin, x, y); RaiseEwin(ewin); ShowEwin(ewin); - GrabThePointer(VRoot.win, ECSR_GRAB); + GrabPointerSet(VRoot.win, ECSR_GRAB, 0); Mode.have_place_grab = 1; Mode.place = 1; ICCCM_Configure(ewin); @@ -3525,7 +3525,7 @@ static void BorderWinpartEventMouseDown(XEvent * ev, EWin * ewin, int j) { - GrabThePointer(ewin->bits[j].win, ECSR_GRAB); + GrabPointerSet(ewin->bits[j].win, ECSR_GRAB, 0); ewin->bits[j].state = STATE_CLICKED; BorderWinpartChange(ewin, j, 0); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/buttons.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -3 -r1.36 -r1.37 --- buttons.c 15 Jul 2004 18:23:53 -0000 1.36 +++ buttons.c 14 Aug 2004 15:06:26 -0000 1.37 @@ -607,7 +607,7 @@ if ((win != buttons[i]->win) && (win != buttons[i]->event_win)) continue; - GrabThePointer(win, ECSR_GRAB); + GrabPointerSet(win, ECSR_GRAB, 0); if (buttons[i]->inside_win) { Window id = ev->xany.window; /* ??? */ =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/evhandlers.c,v retrieving revision 1.174 retrieving revision 1.175 diff -u -3 -r1.174 -r1.175 --- evhandlers.c 7 Aug 2004 21:00:08 -0000 1.174 +++ evhandlers.c 14 Aug 2004 15:06:26 -0000 1.175 @@ -239,7 +239,7 @@ LIST_TYPE_ACLASS); if (ac) { - GrabThePointer(ewin->win, ECSR_GRAB); + GrabPointerSet(ewin->win, ECSR_GRAB, 0); if (EventAclass(ev, ewin, ac)) { goto done; @@ -273,7 +273,7 @@ } TooltipsHandleEvent(); - UnGrabTheButtons(); + GrabPointerRelease(); ModeGetXY(ev->xbutton.root, ev->xbutton.x_root, ev->xbutton.y_root); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/focus.c,v retrieving revision 1.82 retrieving revision 1.83 diff -u -3 -r1.82 -r1.83 --- focus.c 14 Aug 2004 00:47:17 -0000 1.82 +++ focus.c 14 Aug 2004 15:06:26 -0000 1.83 @@ -159,9 +159,8 @@ ewin->active && Conf.focus.clickraises) || (Conf.focus.mode == MODE_FOCUS_CLICK && !ewin->active)) { - XGrabButton(disp, AnyButton, AnyModifier, ewin->win_container, - False, ButtonPressMask, GrabModeSync, GrabModeAsync, - ewin->win_container, ECsrGet(ECSR_PGRAB)); + GrabButtonSet(AnyButton, AnyModifier, ewin->win_container, + ButtonPressMask, ECSR_PGRAB, 1); #if 0 Eprintf("FocusEwinSetGrabs: %#lx grab %s\n", ewin->client.win, EwinGetTitle(ewin)); @@ -169,7 +168,7 @@ } else { - XUngrabButton(disp, AnyButton, AnyModifier, ewin->win_container); + GrabButtonRelease(AnyButton, AnyModifier, ewin->win_container); #if 0 Eprintf("FocusEwinSetGrabs: %#lx ungrab %s\n", ewin->client.win, EwinGetTitle(ewin)); @@ -198,7 +197,7 @@ for (i = 0; i < num; i++) { ewin = lst[i]; - XUngrabButton(disp, AnyButton, AnyModifier, ewin->win_container); + GrabButtonRelease(AnyButton, AnyModifier, ewin->win_container); FocusEwinSetGrabs(ewin); } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/grabs.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- grabs.c 5 Aug 2004 23:08:34 -0000 1.18 +++ grabs.c 14 Aug 2004 15:06:26 -0000 1.19 @@ -75,64 +75,66 @@ } void -GrabTheButtons(Window win) +GrabButtonsSet(Window win, unsigned int csr) { - EDBUG(4, "GrabTheButtons"); if (Mode.grabs.pointer_grab_active) - EDBUG_RETURN_; + return; + XGrabPointer(disp, win, True, ButtonPressMask | ButtonReleaseMask, - GrabModeAsync, GrabModeAsync, None, None, CurrentTime); + GrabModeAsync, GrabModeAsync, None, ECsrGet(csr), CurrentTime); + Mode.grabs.pointer_grab_window = win; Mode.grabs.pointer_grab_active = 1; - EDBUG_RETURN_; } int -GrabThePointer(Window win, int csr) +GrabPointerSet(Window win, unsigned int csr, int confine) { int ret; + Window confine_to = (confine) ? win : None; - EDBUG(4, "GrabThePointer"); if (Mode.grabs.pointer_grab_active) - EDBUG_RETURN(1); - ret = - XGrabPointer(disp, win, True, - ButtonPressMask | ButtonReleaseMask | PointerMotionMask | - ButtonMotionMask | EnterWindowMask | LeaveWindowMask, - GrabModeAsync, GrabModeAsync, None, ECsrGet(csr), - CurrentTime); - Mode.grabs.pointer_grab_window = win; - Mode.grabs.pointer_grab_active = 1; - EDBUG_RETURN(ret); -} + return 1; -int -GrabConfineThePointer(Window win, int csr) -{ - int ret; + ret = XGrabPointer(disp, win, True, + ButtonPressMask | ButtonReleaseMask | PointerMotionMask | + ButtonMotionMask | EnterWindowMask | LeaveWindowMask, + GrabModeAsync, GrabModeAsync, confine_to, ECsrGet(csr), + CurrentTime); - EDBUG(4, "GrabThePointer"); - if (Mode.grabs.pointer_grab_active) - EDBUG_RETURN(1); - ret = - XGrabPointer(disp, win, True, - ButtonPressMask | ButtonReleaseMask | PointerMotionMask | - ButtonMotionMask | EnterWindowMask | LeaveWindowMask, - GrabModeAsync, GrabModeAsync, win, ECsrGet(csr), - CurrentTime); Mode.grabs.pointer_grab_window = win; Mode.grabs.pointer_grab_active = 1; - EDBUG_RETURN(ret); + + return ret; } void -UnGrabTheButtons() +GrabPointerRelease(void) { - EDBUG(4, "UnGrabTheButtons"); if (!Mode.grabs.pointer_grab_active) - EDBUG_RETURN_; + return; + XUngrabPointer(disp, CurrentTime); + Mode.grabs.pointer_grab_active = 0; Mode.grabs.pointer_grab_window = None; - EDBUG_RETURN_; +} + +void +GrabButtonSet(unsigned int button, unsigned int modifiers, Window win, + unsigned int event_mask, unsigned int csr, int confine) +{ + Bool owner_events = False; + int pointer_mode = GrabModeSync; + int keyboard_mode = GrabModeAsync; + Window confine_to = (confine) ? win : None; + + XGrabButton(disp, button, modifiers, win, owner_events, event_mask, + pointer_mode, keyboard_mode, confine_to, ECsrGet(csr)); +} + +void +GrabButtonRelease(unsigned int button, unsigned int modifiers, Window win) +{ + XUngrabButton(disp, button, modifiers, win); } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v retrieving revision 1.178 retrieving revision 1.179 diff -u -3 -r1.178 -r1.179 --- ipc.c 14 Aug 2004 00:47:17 -0000 1.178 +++ ipc.c 14 Aug 2004 15:06:26 -0000 1.179 @@ -4448,13 +4448,13 @@ } else if (!strncmp(param, "unset", 2)) { - UnGrabTheButtons(); + GrabPointerRelease(); IpcPrintf("Ungrab\n"); } else { sscanf(param, "%li", &win); - GrabConfineThePointer(win, ECSR_ACT_RESIZE); + GrabPointerSet(win, ECSR_ACT_RESIZE, 1); IpcPrintf("Grab %#lx\n", win); } } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/moveresize.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- moveresize.c 22 Jul 2004 16:11:43 -0000 1.22 +++ moveresize.c 14 Aug 2004 15:06:26 -0000 1.23 @@ -51,8 +51,8 @@ } SoundPlay("SOUND_MOVE_START"); - UnGrabTheButtons(); - GrabConfineThePointer(VRoot.win, ECSR_ACT_MOVE); + GrabPointerRelease(); + GrabPointerSet(VRoot.win, ECSR_ACT_MOVE, 1); Mode.mode = MODE_MOVE_PENDING; Mode.constrained = constrained; @@ -94,7 +94,7 @@ int d, wasresize = 0, num, i; EDBUG(6, "doMoveEnd"); - UnGrabTheButtons(); + GrabPointerRelease(); if (ewin && ewin != mode_moveresize_ewin) return 0; @@ -275,8 +275,8 @@ Mode.queue_up = 0; SoundPlay("SOUND_RESIZE_START"); - UnGrabTheButtons(); - GrabConfineThePointer(VRoot.win, ECSR_ACT_RESIZE); + GrabPointerRelease(); + GrabPointerSet(VRoot.win, ECSR_ACT_RESIZE, 1); switch (hv) { @@ -360,7 +360,7 @@ int i; EDBUG(0, "doResizeEnd"); - UnGrabTheButtons(); + GrabPointerRelease(); if (ewin && ewin != mode_moveresize_ewin) return 0; =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/pager.c,v retrieving revision 1.105 retrieving revision 1.106 diff -u -3 -r1.105 -r1.106 --- pager.c 8 Aug 2004 21:32:19 -0000 1.105 +++ pager.c 14 Aug 2004 15:06:26 -0000 1.106 @@ -1734,7 +1734,7 @@ EMoveResizeWindow(disp, p->hi_win, px + wx, py + wy, ww, wh); ESetWindowBackgroundPixmap(disp, p->hi_win, ewin->mini_pmm.pmap); EMapRaised(disp, p->hi_win); - GrabThePointer(p->hi_win, None); + GrabPointerSet(p->hi_win, None, 0); p->hi_visible = 1; p->hi_ewin = ewin; p->hi_win_w = ww; @@ -1879,7 +1879,7 @@ } mode_context_pager = NULL; - UnGrabTheButtons(); + GrabPointerRelease(); } done: =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/session.c,v retrieving revision 1.75 retrieving revision 1.76 diff -u -3 -r1.75 -r1.76 --- session.c 30 Jun 2004 13:04:18 -0000 1.75 +++ session.c 14 Aug 2004 15:06:26 -0000 1.76 @@ -1249,7 +1249,8 @@ if (disp) { UngrabX(); - UnGrabTheButtons(); + GrabPointerRelease(); + XAllowEvents(disp, AsyncBoth, CurrentTime); /* This mechanism is only needed when the SM is unavailable: */ ICCCM_SetEInfoOnAll(); ------------------------------------------------------- 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