forked from enlightenment/efl
update modifiers on mapping changes too.
SVN revision: 63665
This commit is contained in:
parent
b70d6a0556
commit
8c26779f16
|
@ -1706,7 +1706,8 @@ _ecore_xcb_event_handle_mapping_notify(xcb_generic_event_t *event)
|
||||||
if (!(e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change)))) return;
|
if (!(e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change)))) return;
|
||||||
|
|
||||||
_ecore_xcb_keymap_refresh(ev);
|
_ecore_xcb_keymap_refresh(ev);
|
||||||
|
_ecore_xcb_modifiers_get();
|
||||||
|
|
||||||
switch (ev->request)
|
switch (ev->request)
|
||||||
{
|
{
|
||||||
case XCB_MAPPING_MODIFIER:
|
case XCB_MAPPING_MODIFIER:
|
||||||
|
|
|
@ -78,6 +78,12 @@ _ecore_xcb_keymap_finalize(void)
|
||||||
ECORE_X_LOCK_SHIFT = _ecore_xcb_keymap_mask_get(reply, XK_Shift_Lock);
|
ECORE_X_LOCK_SHIFT = _ecore_xcb_keymap_mask_get(reply, XK_Shift_Lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_ecore_xcb_modifiers_get(void)
|
||||||
|
{
|
||||||
|
_ecore_xcb_keymap_finalize();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_ecore_xcb_keymap_shutdown(void)
|
_ecore_xcb_keymap_shutdown(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -351,4 +351,6 @@ void _ecore_xcb_xdefaults_shutdown(void);
|
||||||
char *_ecore_xcb_xdefaults_string_get(const char *prog, const char *param);
|
char *_ecore_xcb_xdefaults_string_get(const char *prog, const char *param);
|
||||||
int _ecore_xcb_xdefaults_int_get(const char *prog, const char *param);
|
int _ecore_xcb_xdefaults_int_get(const char *prog, const char *param);
|
||||||
|
|
||||||
|
void _ecore_xcb_modifiers_get(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -195,6 +195,41 @@ _XReply(Display *disp, void *rep, int extra, Bool discard)
|
||||||
|
|
||||||
#endif /* ifdef LOGRT */
|
#endif /* ifdef LOGRT */
|
||||||
|
|
||||||
|
void
|
||||||
|
_ecore_x_modifiers_get(void)
|
||||||
|
{
|
||||||
|
/* everything has these... unless its like a pda... :) */
|
||||||
|
ECORE_X_MODIFIER_SHIFT = _ecore_x_key_mask_get(XK_Shift_L);
|
||||||
|
ECORE_X_MODIFIER_CTRL = _ecore_x_key_mask_get(XK_Control_L);
|
||||||
|
|
||||||
|
/* apple's xdarwin has no alt!!!! */
|
||||||
|
ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Alt_L);
|
||||||
|
if (!ECORE_X_MODIFIER_ALT)
|
||||||
|
ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Meta_L);
|
||||||
|
|
||||||
|
if (!ECORE_X_MODIFIER_ALT)
|
||||||
|
ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Super_L);
|
||||||
|
|
||||||
|
/* the windows key... a valid modifier :) */
|
||||||
|
ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Super_L);
|
||||||
|
if (!ECORE_X_MODIFIER_WIN)
|
||||||
|
ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Mode_switch);
|
||||||
|
|
||||||
|
if (!ECORE_X_MODIFIER_WIN)
|
||||||
|
ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Meta_L);
|
||||||
|
|
||||||
|
if (ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_ALT)
|
||||||
|
ECORE_X_MODIFIER_WIN = 0;
|
||||||
|
|
||||||
|
if (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_CTRL)
|
||||||
|
ECORE_X_MODIFIER_ALT = 0;
|
||||||
|
|
||||||
|
ECORE_X_LOCK_SCROLL = _ecore_x_key_mask_get(XK_Scroll_Lock);
|
||||||
|
ECORE_X_LOCK_NUM = _ecore_x_key_mask_get(XK_Num_Lock);
|
||||||
|
ECORE_X_LOCK_CAPS = _ecore_x_key_mask_get(XK_Caps_Lock);
|
||||||
|
ECORE_X_LOCK_SHIFT = _ecore_x_key_mask_get(XK_Shift_Lock);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup Ecore_X_Init_Group X Library Init and Shutdown Functions
|
* @defgroup Ecore_X_Init_Group X Library Init and Shutdown Functions
|
||||||
*
|
*
|
||||||
|
@ -487,36 +522,7 @@ ecore_x_init(const char *name)
|
||||||
ECORE_X_EVENT_GENERIC = ecore_event_type_new();
|
ECORE_X_EVENT_GENERIC = ecore_event_type_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* everything has these... unless its like a pda... :) */
|
_ecore_x_modifiers_get();
|
||||||
ECORE_X_MODIFIER_SHIFT = _ecore_x_key_mask_get(XK_Shift_L);
|
|
||||||
ECORE_X_MODIFIER_CTRL = _ecore_x_key_mask_get(XK_Control_L);
|
|
||||||
|
|
||||||
/* apple's xdarwin has no alt!!!! */
|
|
||||||
ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Alt_L);
|
|
||||||
if (!ECORE_X_MODIFIER_ALT)
|
|
||||||
ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Meta_L);
|
|
||||||
|
|
||||||
if (!ECORE_X_MODIFIER_ALT)
|
|
||||||
ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Super_L);
|
|
||||||
|
|
||||||
/* the windows key... a valid modifier :) */
|
|
||||||
ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Super_L);
|
|
||||||
if (!ECORE_X_MODIFIER_WIN)
|
|
||||||
ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Mode_switch);
|
|
||||||
|
|
||||||
if (!ECORE_X_MODIFIER_WIN)
|
|
||||||
ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Meta_L);
|
|
||||||
|
|
||||||
if (ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_ALT)
|
|
||||||
ECORE_X_MODIFIER_WIN = 0;
|
|
||||||
|
|
||||||
if (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_CTRL)
|
|
||||||
ECORE_X_MODIFIER_ALT = 0;
|
|
||||||
|
|
||||||
ECORE_X_LOCK_SCROLL = _ecore_x_key_mask_get(XK_Scroll_Lock);
|
|
||||||
ECORE_X_LOCK_NUM = _ecore_x_key_mask_get(XK_Num_Lock);
|
|
||||||
ECORE_X_LOCK_CAPS = _ecore_x_key_mask_get(XK_Caps_Lock);
|
|
||||||
ECORE_X_LOCK_SHIFT = _ecore_x_key_mask_get(XK_Shift_Lock);
|
|
||||||
|
|
||||||
_ecore_x_fd_handler_handle =
|
_ecore_x_fd_handler_handle =
|
||||||
ecore_main_fd_handler_add(ConnectionNumber(_ecore_x_disp),
|
ecore_main_fd_handler_add(ConnectionNumber(_ecore_x_disp),
|
||||||
|
|
|
@ -1910,6 +1910,7 @@ _ecore_x_event_handle_mapping_notify(XEvent *xevent)
|
||||||
|
|
||||||
_ecore_x_last_event_mouse_move = 0;
|
_ecore_x_last_event_mouse_move = 0;
|
||||||
XRefreshKeyboardMapping((XMappingEvent *)xevent);
|
XRefreshKeyboardMapping((XMappingEvent *)xevent);
|
||||||
|
_ecore_x_modifiers_get();
|
||||||
e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change));
|
e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change));
|
||||||
if (!e) return;
|
if (!e) return;
|
||||||
switch (xevent->xmapping.request)
|
switch (xevent->xmapping.request)
|
||||||
|
|
|
@ -363,6 +363,8 @@ Ecore_Event_Mouse_Button * _ecore_mouse_button(int event,
|
||||||
double mrx,
|
double mrx,
|
||||||
double mry);
|
double mry);
|
||||||
|
|
||||||
|
void _ecore_x_modifiers_get(void);
|
||||||
|
|
||||||
//#define LOGFNS 1
|
//#define LOGFNS 1
|
||||||
|
|
||||||
#ifdef LOGFNS
|
#ifdef LOGFNS
|
||||||
|
|
Loading…
Reference in New Issue