forked from enlightenment/efl
update modifiers on mapping changes too.
SVN revision: 63665
This commit is contained in:
parent
b70d6a0556
commit
8c26779f16
|
@ -1706,6 +1706,7 @@ _ecore_xcb_event_handle_mapping_notify(xcb_generic_event_t *event)
|
|||
if (!(e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change)))) return;
|
||||
|
||||
_ecore_xcb_keymap_refresh(ev);
|
||||
_ecore_xcb_modifiers_get();
|
||||
|
||||
switch (ev->request)
|
||||
{
|
||||
|
|
|
@ -78,6 +78,12 @@ _ecore_xcb_keymap_finalize(void)
|
|||
ECORE_X_LOCK_SHIFT = _ecore_xcb_keymap_mask_get(reply, XK_Shift_Lock);
|
||||
}
|
||||
|
||||
void
|
||||
_ecore_xcb_modifiers_get(void)
|
||||
{
|
||||
_ecore_xcb_keymap_finalize();
|
||||
}
|
||||
|
||||
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);
|
||||
int _ecore_xcb_xdefaults_int_get(const char *prog, const char *param);
|
||||
|
||||
void _ecore_xcb_modifiers_get(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -195,6 +195,41 @@ _XReply(Display *disp, void *rep, int extra, Bool discard)
|
|||
|
||||
#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
|
||||
*
|
||||
|
@ -487,36 +522,7 @@ ecore_x_init(const char *name)
|
|||
ECORE_X_EVENT_GENERIC = ecore_event_type_new();
|
||||
}
|
||||
|
||||
/* 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);
|
||||
_ecore_x_modifiers_get();
|
||||
|
||||
_ecore_x_fd_handler_handle =
|
||||
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;
|
||||
XRefreshKeyboardMapping((XMappingEvent *)xevent);
|
||||
_ecore_x_modifiers_get();
|
||||
e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change));
|
||||
if (!e) return;
|
||||
switch (xevent->xmapping.request)
|
||||
|
|
|
@ -363,6 +363,8 @@ Ecore_Event_Mouse_Button * _ecore_mouse_button(int event,
|
|||
double mrx,
|
||||
double mry);
|
||||
|
||||
void _ecore_x_modifiers_get(void);
|
||||
|
||||
//#define LOGFNS 1
|
||||
|
||||
#ifdef LOGFNS
|
||||
|
|
Loading…
Reference in New Issue