forked from enlightenment/efl
parent
dcf719cd51
commit
edeb6ec6da
|
@ -517,12 +517,14 @@ struct _ev_window_leave
|
||||||
struct _ev_window_focus_in
|
struct _ev_window_focus_in
|
||||||
{
|
{
|
||||||
Window win, root;
|
Window win, root;
|
||||||
|
int key_grab;
|
||||||
Time time;
|
Time time;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _ev_window_focus_out
|
struct _ev_window_focus_out
|
||||||
{
|
{
|
||||||
Window win, root;
|
Window win, root;
|
||||||
|
int key_grab;
|
||||||
Time time;
|
Time time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -111,6 +111,7 @@ e_ev_x_init(void)
|
||||||
mod_mask_alt = e_mod_mask_alt_get();
|
mod_mask_alt = e_mod_mask_alt_get();
|
||||||
mod_mask_win = e_mod_mask_win_get();
|
mod_mask_win = e_mod_mask_win_get();
|
||||||
|
|
||||||
|
/* HRRRMMM lets not do this
|
||||||
e_key_grab("Num_Lock", EV_KEY_MODIFIER_NONE, 1, 1);
|
e_key_grab("Num_Lock", EV_KEY_MODIFIER_NONE, 1, 1);
|
||||||
e_key_grab("Scroll_Lock", EV_KEY_MODIFIER_NONE, 1, 1);
|
e_key_grab("Scroll_Lock", EV_KEY_MODIFIER_NONE, 1, 1);
|
||||||
e_key_grab("Caps_Lock", EV_KEY_MODIFIER_NONE, 1, 1);
|
e_key_grab("Caps_Lock", EV_KEY_MODIFIER_NONE, 1, 1);
|
||||||
|
@ -129,6 +130,7 @@ e_ev_x_init(void)
|
||||||
e_mod_alt_set(1);
|
e_mod_alt_set(1);
|
||||||
if (current_lock & mod_mask_win)
|
if (current_lock & mod_mask_win)
|
||||||
e_mod_win_set(1);
|
e_mod_win_set(1);
|
||||||
|
*/
|
||||||
e_add_event_fd(e_x_get_fd(), e_ev_x_handle_events);
|
e_add_event_fd(e_x_get_fd(), e_ev_x_handle_events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,6 +253,7 @@ e_ev_x_handle_key_press(XEvent * xevent)
|
||||||
return;
|
return;
|
||||||
previous_code = xevent->xkey.keycode;
|
previous_code = xevent->xkey.keycode;
|
||||||
previous_time = xevent->xkey.time;
|
previous_time = xevent->xkey.time;
|
||||||
|
/*
|
||||||
if (e_key_get_keysym_from_keycode(xevent->xkey.keycode) == XK_Scroll_Lock)
|
if (e_key_get_keysym_from_keycode(xevent->xkey.keycode) == XK_Scroll_Lock)
|
||||||
{
|
{
|
||||||
if (e_lock_scroll_get())
|
if (e_lock_scroll_get())
|
||||||
|
@ -278,6 +281,7 @@ e_ev_x_handle_key_press(XEvent * xevent)
|
||||||
e_event_allow(ReplayKeyboard, xevent->xkey.time);
|
e_event_allow(ReplayKeyboard, xevent->xkey.time);
|
||||||
e_flush();
|
e_flush();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
e = NEW(Ev_Key_Down, 1);
|
e = NEW(Ev_Key_Down, 1);
|
||||||
e->win = xevent->xkey.window;
|
e->win = xevent->xkey.window;
|
||||||
e->root = xevent->xkey.root;
|
e->root = xevent->xkey.root;
|
||||||
|
@ -526,6 +530,8 @@ e_ev_x_handle_focus_in(XEvent * xevent)
|
||||||
e = NEW(Ev_Window_Focus_In, 1);
|
e = NEW(Ev_Window_Focus_In, 1);
|
||||||
e->win = xevent->xfocus.window;
|
e->win = xevent->xfocus.window;
|
||||||
e->root = e_window_get_root(e->win);
|
e->root = e_window_get_root(e->win);
|
||||||
|
if (xevent->xfocus.mode != NotifyNormal) e->key_grab = 1;
|
||||||
|
else e->key_grab = 0;
|
||||||
e_add_event(EV_WINDOW_FOCUS_IN, e, e_ev_generic_free);
|
e_add_event(EV_WINDOW_FOCUS_IN, e, e_ev_generic_free);
|
||||||
e_focus_window_set(e->win);
|
e_focus_window_set(e->win);
|
||||||
}
|
}
|
||||||
|
@ -538,6 +544,8 @@ e_ev_x_handle_focus_out(XEvent * xevent)
|
||||||
e = NEW(Ev_Window_Focus_Out, 1);
|
e = NEW(Ev_Window_Focus_Out, 1);
|
||||||
e->win = xevent->xfocus.window;
|
e->win = xevent->xfocus.window;
|
||||||
e->root = e_window_get_root(e->win);
|
e->root = e_window_get_root(e->win);
|
||||||
|
if (xevent->xfocus.mode != NotifyNormal) e->key_grab = 1;
|
||||||
|
else e->key_grab = 0;
|
||||||
e_add_event(EV_WINDOW_FOCUS_OUT, e, e_ev_generic_free);
|
e_add_event(EV_WINDOW_FOCUS_OUT, e, e_ev_generic_free);
|
||||||
e_focus_window_set(0);
|
e_focus_window_set(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,11 @@ static Window e_window_at_xy_0(Window base, int bx, int by, int x, int y);
|
||||||
static void
|
static void
|
||||||
e_handle_x_error(Display * d, XErrorEvent * ev)
|
e_handle_x_error(Display * d, XErrorEvent * ev)
|
||||||
{
|
{
|
||||||
|
char err[16384];
|
||||||
|
|
||||||
|
XGetErrorText(d, ev->error_code, err, 16000);
|
||||||
|
printf("X Error:\n"
|
||||||
|
"Error: %s\nrequest: %i\nminor: %i\n", err, ev->request_code, ev->minor_code);
|
||||||
/* ignroe all X errors */
|
/* ignroe all X errors */
|
||||||
return;
|
return;
|
||||||
d = NULL;
|
d = NULL;
|
||||||
|
@ -1155,6 +1160,11 @@ e_key_grab(char *key, Ev_Key_Modifiers mods, int anymod, int sync)
|
||||||
mode = GrabModeSync;
|
mode = GrabModeSync;
|
||||||
if (!grabkey_win)
|
if (!grabkey_win)
|
||||||
grabkey_win = default_root;
|
grabkey_win = default_root;
|
||||||
|
if (!grabkey_win)
|
||||||
|
{
|
||||||
|
grabkey_win = e_window_override_new(0, -1, -1, 1, 1);
|
||||||
|
e_window_show(grabkey_win);
|
||||||
|
}
|
||||||
if (mods & EV_KEY_MODIFIER_SHIFT)
|
if (mods & EV_KEY_MODIFIER_SHIFT)
|
||||||
mod |= mod_shift;
|
mod |= mod_shift;
|
||||||
if (mods & EV_KEY_MODIFIER_CTRL)
|
if (mods & EV_KEY_MODIFIER_CTRL)
|
||||||
|
|
Loading…
Reference in New Issue