* ecore_xcb: Fix key grab too.

SVN revision: 39518
This commit is contained in:
Cedric BAIL 2009-03-17 13:34:40 +00:00
parent bff5617109
commit a11beb0a96
1 changed files with 20 additions and 4 deletions

View File

@ -1445,7 +1445,7 @@ ecore_x_window_button_grab(Ecore_X_Window window,
uint16_t locks[8];
uint16_t ev;
m = mod;
m = _ecore_x_event_modifier(mod);
if (any_mod) m = XCB_BUTTON_MASK_ANY;
locks[0] = 0;
locks[1] = ECORE_X_LOCK_CAPS;
@ -1516,7 +1516,7 @@ ecore_x_window_button_ungrab(Ecore_X_Window window,
uint16_t m;
uint16_t locks[8];
m = mod;
m = _ecore_x_event_modifier(mod);
if (any_mod) m = XCB_BUTTON_MASK_ANY;
locks[0] = 0;
locks[1] = ECORE_X_LOCK_CAPS;
@ -1559,7 +1559,7 @@ ecore_x_window_key_grab(Ecore_X_Window window,
/* } */
if (keycode == 0) return;
m = mod;
m = _ecore_x_event_modifier(mod);
if (any_mod) m = XCB_BUTTON_MASK_ANY;
locks[0] = 0;
locks[1] = ECORE_X_LOCK_CAPS;
@ -1625,7 +1625,7 @@ ecore_x_window_key_ungrab(Ecore_X_Window window,
/* } */
if (keycode == 0) return;
m = mod;
m = _ecore_x_event_modifier(mod);
if (any_mod) m = XCB_BUTTON_MASK_ANY;
locks[0] = 0;
locks[1] = ECORE_X_LOCK_CAPS;
@ -1877,3 +1877,19 @@ ecore_x_pointer_last_xy_get(int *x,
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
static int
_ecore_x_event_modifier(unsigned int state)
{
int xmodifiers = 0;
if (state & ECORE_EVENT_MODIFIER_SHIFT) xmodifiers |= ECORE_X_MODIFIER_SHIFT;
if (state & ECORE_EVENT_MODIFIER_CTRL) xmodifiers |= ECORE_X_MODIFIER_CTRL;
if (state & ECORE_EVENT_MODIFIER_ALT) xmodifiers |= ECORE_X_MODIFIER_ALT;
if (state & ECORE_EVENT_MODIFIER_WIN) xmodifiers |= ECORE_X_MODIFIER_WIN;
if (state & ECORE_EVENT_LOCK_SCROLL) xmodifiers |= ECORE_X_LOCK_SCROLL;
if (state & ECORE_EVENT_LOCK_NUM) xmodifiers |= ECORE_X_LOCK_NUM;
if (state & ECORE_EVENT_LOCK_CAPS) xmodifiers |= ECORE_X_LOCK_CAPS;
return xmodifiers;
}