forked from enlightenment/efl
parent
9fd651fc53
commit
948fcf2a35
|
@ -15,7 +15,8 @@ Ecore_Fb.h
|
|||
|
||||
libecore_fb_la_SOURCES = \
|
||||
ecore_fb.c \
|
||||
ecore_fb_private.h
|
||||
ecore_fb_private.h \
|
||||
ecore_fb_keytab.h
|
||||
|
||||
libecore_fb_la_LIBADD = \
|
||||
$(top_builddir)/src/lib/ecore/libecore.la
|
||||
|
|
|
@ -114,6 +114,8 @@ static struct vt_mode _ecore_fb_vt_prev_mode;
|
|||
static int _ecore_fb_current_vt = 0;
|
||||
static int _ecore_fb_ctrl = 0;
|
||||
static int _ecore_fb_alt = 0;
|
||||
static int _ecore_fb_shift = 0;
|
||||
static int _ecore_fb_lock = 0;
|
||||
|
||||
static void (*_ecore_fb_func_fb_lost) (void *data) = NULL;
|
||||
static void *_ecore_fb_func_fb_lost_data = NULL;
|
||||
|
@ -126,136 +128,9 @@ static void _ecore_fb_event_filter_end(void *data, void *loop_data);
|
|||
|
||||
static double _ecore_fb_double_click_time = 0.25;
|
||||
|
||||
static char *_ecore_fb_kbd_syms[128] =
|
||||
static char *_ecore_fb_kbd_syms[128 * 6] =
|
||||
{
|
||||
"0x00",
|
||||
"Escape",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"0",
|
||||
"-",
|
||||
"=",
|
||||
"BackSpace",
|
||||
"Rab",
|
||||
"q",
|
||||
"w",
|
||||
"e",
|
||||
"r",
|
||||
"t",
|
||||
"y",
|
||||
"u",
|
||||
"i",
|
||||
"o",
|
||||
"p",
|
||||
"bracketleft",
|
||||
"bracketright",
|
||||
"Return",
|
||||
"Control_L",
|
||||
"a",
|
||||
"s",
|
||||
"d",
|
||||
"f",
|
||||
"g",
|
||||
"h",
|
||||
"j",
|
||||
"k",
|
||||
"l",
|
||||
"semicolon",
|
||||
"apostrophe",
|
||||
"0x29",
|
||||
"Shift_L",
|
||||
"backslash",
|
||||
"z",
|
||||
"x",
|
||||
"c",
|
||||
"v",
|
||||
"b",
|
||||
"n",
|
||||
"m",
|
||||
"comma",
|
||||
"period",
|
||||
"slash",
|
||||
"Shift_R",
|
||||
"KP_Multiply",
|
||||
"Alt_L",
|
||||
"space",
|
||||
"Caps_Lock",
|
||||
"F1",
|
||||
"F2",
|
||||
"F3",
|
||||
"F4",
|
||||
"F5",
|
||||
"F6",
|
||||
"F7",
|
||||
"F8",
|
||||
"F9",
|
||||
"F10",
|
||||
"Num_Lock",
|
||||
"Scroll_Lock",
|
||||
"KP_Home",
|
||||
"KP_Up",
|
||||
"KP_Prior",
|
||||
"KP_Subtract",
|
||||
"KP_Left",
|
||||
"KP_Begin",
|
||||
"KP_Right",
|
||||
"KP_Add",
|
||||
"KP_End",
|
||||
"KP_Down",
|
||||
"KP_Next",
|
||||
"KP_Insert",
|
||||
"KP_Delete",
|
||||
"0x54",
|
||||
"0x55",
|
||||
"0x56",
|
||||
"F11",
|
||||
"F12",
|
||||
"0x59",
|
||||
"0x5a",
|
||||
"0x5b",
|
||||
"0x5c",
|
||||
"0x5d",
|
||||
"0x5e",
|
||||
"0x5f",
|
||||
"KP_Enter",
|
||||
"Control_R",
|
||||
"KP_Divide",
|
||||
"Print",
|
||||
"Alt_R",
|
||||
"0x65",
|
||||
"Home",
|
||||
"Up",
|
||||
"Prior",
|
||||
"Left",
|
||||
"right",
|
||||
"End",
|
||||
"Down",
|
||||
"Next",
|
||||
"Insert",
|
||||
"Delete",
|
||||
"0x70",
|
||||
"0x71",
|
||||
"0x72",
|
||||
"0x73",
|
||||
"0x74",
|
||||
"0x75",
|
||||
"0x76",
|
||||
"Pause",
|
||||
"0x78",
|
||||
"0x79",
|
||||
"0x7a",
|
||||
"0x7b",
|
||||
"0x7c",
|
||||
"Super_L",
|
||||
"Super_R",
|
||||
"0x7f"
|
||||
#include "ecore_fb_keytab.h"
|
||||
};
|
||||
|
||||
static char *_ecore_fb_btn_syms[128] =
|
||||
|
@ -999,7 +874,15 @@ _ecore_fb_kbd_fd_handler(Ecore_Fd_Handler *fd_handler, void *data)
|
|||
e = calloc(1, sizeof(Ecore_Fb_Event_Key_Down));
|
||||
if (!e) goto retry;
|
||||
if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
|
||||
e->keyname = strdup(_ecore_fb_kbd_syms[buf & 0x7f]);
|
||||
{
|
||||
int add = 0;
|
||||
|
||||
if (_ecore_fb_shift) add = 1;
|
||||
else if (_ecore_fb_lock) add = 2;
|
||||
e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 6]);
|
||||
e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + add]);
|
||||
e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + 3 + add]);
|
||||
}
|
||||
else
|
||||
e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
|
||||
if (!e->keyname)
|
||||
|
@ -1010,12 +893,18 @@ _ecore_fb_kbd_fd_handler(Ecore_Fd_Handler *fd_handler, void *data)
|
|||
ecore_event_add(ECORE_FB_EVENT_KEY_DOWN, e, _ecore_fb_event_free_key_down, NULL);
|
||||
if (!strcmp(e->keyname, "Control_L"))
|
||||
_ecore_fb_ctrl++;
|
||||
if (!strcmp(e->keyname, "Control_R"))
|
||||
else if (!strcmp(e->keyname, "Control_R"))
|
||||
_ecore_fb_ctrl++;
|
||||
else if (!strcmp(e->keyname, "Alt_L"))
|
||||
_ecore_fb_alt++;
|
||||
else if (!strcmp(e->keyname, "Alt_R"))
|
||||
_ecore_fb_alt++;
|
||||
else if (!strcmp(e->keyname, "Shift_L"))
|
||||
_ecore_fb_shift++;
|
||||
else if (!strcmp(e->keyname, "Shift_R"))
|
||||
_ecore_fb_shift++;
|
||||
else if (!strcmp(e->keyname, "Caps_Lock"))
|
||||
_ecore_fb_lock++;
|
||||
else if (!strcmp(e->keyname, "F1")) vt_switch = 0;
|
||||
else if (!strcmp(e->keyname, "F2")) vt_switch = 1;
|
||||
else if (!strcmp(e->keyname, "F3")) vt_switch = 2;
|
||||
|
@ -1043,7 +932,15 @@ _ecore_fb_kbd_fd_handler(Ecore_Fd_Handler *fd_handler, void *data)
|
|||
e = calloc(1, sizeof(Ecore_Fb_Event_Key_Up));
|
||||
if (!e) goto retry;
|
||||
if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
|
||||
e->keyname = strdup(_ecore_fb_kbd_syms[buf & 0x7f]);
|
||||
{
|
||||
int add = 0;
|
||||
|
||||
if (_ecore_fb_shift) add = 1;
|
||||
else if (_ecore_fb_lock) add = 2;
|
||||
e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 6]);
|
||||
e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + add]);
|
||||
e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + 3 + add]);
|
||||
}
|
||||
else
|
||||
e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
|
||||
if (!e->keyname)
|
||||
|
@ -1054,14 +951,22 @@ _ecore_fb_kbd_fd_handler(Ecore_Fd_Handler *fd_handler, void *data)
|
|||
ecore_event_add(ECORE_FB_EVENT_KEY_UP, e, _ecore_fb_event_free_key_up, NULL);
|
||||
if (!strcmp(e->keyname, "Control_L"))
|
||||
_ecore_fb_ctrl--;
|
||||
if (!strcmp(e->keyname, "Control_R"))
|
||||
else if (!strcmp(e->keyname, "Control_R"))
|
||||
_ecore_fb_ctrl--;
|
||||
else if (!strcmp(e->keyname, "Alt_L"))
|
||||
_ecore_fb_alt--;
|
||||
else if (!strcmp(e->keyname, "Alt_R"))
|
||||
_ecore_fb_alt--;
|
||||
else if (!strcmp(e->keyname, "Shift_L"))
|
||||
_ecore_fb_shift--;
|
||||
else if (!strcmp(e->keyname, "Shift_R"))
|
||||
_ecore_fb_shift--;
|
||||
else if (!strcmp(e->keyname, "Caps_Lock"))
|
||||
_ecore_fb_lock--;
|
||||
if (_ecore_fb_ctrl < 0) _ecore_fb_ctrl = 0;
|
||||
if (_ecore_fb_alt < 0) _ecore_fb_alt = 0;
|
||||
if (_ecore_fb_shift < 0) _ecore_fb_shift = 0;
|
||||
if (_ecore_fb_lock < 0) _ecore_fb_lock = 0;
|
||||
}
|
||||
retry:
|
||||
;
|
||||
|
@ -1184,6 +1089,8 @@ _ecore_fb_event_free_key_down(void *data, void *ev)
|
|||
|
||||
e = ev;
|
||||
free(e->keyname);
|
||||
if (e->keysymbol) free(e->keysymbol);
|
||||
if (e->key_compose) free(e->key_compose);
|
||||
free(e);
|
||||
}
|
||||
|
||||
|
@ -1194,6 +1101,8 @@ _ecore_fb_event_free_key_up(void *data, void *ev)
|
|||
|
||||
e = ev;
|
||||
free(e->keyname);
|
||||
if (e->keysymbol) free(e->keysymbol);
|
||||
if (e->key_compose) free(e->key_compose);
|
||||
free(e);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,128 @@
|
|||
"0x00", "0x00", "0x00", /**/"", "", "",/***/
|
||||
"Escape", "Escape", "Escape", /**/"", "", "",/***/
|
||||
"1", "exclam", "1", /**/"1", "!", "1",/***/
|
||||
"2", "at", "2", /**/"2", "@", "2",/***/
|
||||
"3", "numbersign", "3", /**/"3", "#", "3",/***/
|
||||
"4", "dollar", "4", /**/"4", "$", "4",/***/
|
||||
"5", "percent", "5", /**/"5", "%", "5",/***/
|
||||
"6", "asciicircumm", "6", /**/"6", "^", "6",/***/
|
||||
"7", "ampersand", "7", /**/"7", "&", "7",/***/
|
||||
"8", "asterik", "8", /**/"8", "*", "8",/***/
|
||||
"9", "parenleft", "9", /**/"9", "(", "9",/***/
|
||||
"0", "parenright", "0", /**/"0", ")", "0",/***/
|
||||
"minus", "underscore", "minus", /**/"-", "_", "-",/***/
|
||||
"equal", "plus", "equal", /**/"=", "+", "=",/***/
|
||||
"BackSpace", "BackSpace", "BackSpace", /**/"\010","\010","\010",/***/
|
||||
"Tab", "ISO_Left_Tab", "Tab", /**/"\011","", "\011",/***/
|
||||
"q", "Q", "Q", /**/"q", "Q", "Q",/***/
|
||||
"w", "W", "W", /**/"w", "W", "W",/***/
|
||||
"e", "E", "E", /**/"e", "E", "E",/***/
|
||||
"r", "R", "R", /**/"r", "R", "R",/***/
|
||||
"t", "T", "T", /**/"t", "T", "T",/***/
|
||||
"y", "Y", "Y", /**/"y", "Y", "Y",/***/
|
||||
"u", "U", "U", /**/"u", "U", "U",/***/
|
||||
"i", "I", "I", /**/"i", "I", "I",/***/
|
||||
"o", "O", "O", /**/"o", "O", "O",/***/
|
||||
"p", "P", "P", /**/"p", "P", "P",/***/
|
||||
"bracketleft", "braceleft", "bracketleft", /**/"[", "{", "[",/***/
|
||||
"bracketright", "braceright", "bracketright", /**/"]", "}", "]",/***/
|
||||
"Return", "Return", "Return", /**/"\015","\015","\015",/***/
|
||||
"Control_L", "Control_L", "Control_L", /**/"", "", "",/***/
|
||||
"a", "A", "A", /**/"a", "A", "A",/***/
|
||||
"s", "S", "S", /**/"s", "S", "S",/***/
|
||||
"d", "D", "D", /**/"d", "D", "D",/***/
|
||||
"f", "F", "F", /**/"f", "F", "F",/***/
|
||||
"g", "G", "G", /**/"g", "G", "G",/***/
|
||||
"h", "h", "H", /**/"h", "H", "H",/***/
|
||||
"j", "J", "J", /**/"j", "J", "J",/***/
|
||||
"k", "K", "K", /**/"k", "K", "K",/***/
|
||||
"l", "L", "L", /**/"l", "L", "L",/***/
|
||||
"semicolon", "colon", "semicolon", /**/";", ":", ";",/***/
|
||||
"apostrophe", "quotedbl", "apostrophe", /**/"'", "\"", "'",/***/
|
||||
"grave", "asciitilde", "grave", /**/"`", "~", "`",/***/
|
||||
"Shift_L", "Shift_L", "Shift_L", /**/"", "", "",/***/
|
||||
"backslash", "bar", "backslash", /**/"\\", "|", "\\",/***/
|
||||
"z", "Z", "Z", /**/"z", "Z", "Z",/***/
|
||||
"x", "X", "X", /**/"x", "X", "X",/***/
|
||||
"c", "C", "C", /**/"c", "C", "C",/***/
|
||||
"v", "V", "V", /**/"v", "V", "V",/***/
|
||||
"b", "B", "B", /**/"b", "B", "B",/***/
|
||||
"n", "N", "N", /**/"n", "N", "N",/***/
|
||||
"m", "M", "M", /**/"m", "M", "M",/***/
|
||||
"comma", "less", "comma", /**/",", "<", ",",/***/
|
||||
"period", "greater", "period", /**/".", ">", ".",/***/
|
||||
"slash", "question", "slash", /**/"/", "?", "/",/***/
|
||||
"Shift_R", "Shift_R", "Shift_R", /**/"", "", "",/***/
|
||||
"KP_Multiply", "KP_Multiply", "KP_Multiply", /**/"", "*", "",/***/
|
||||
"Alt_L", "Alt_L", "Alt_L", /**/"", "", "",/***/
|
||||
"space", "space", "space", /**/" ", " ", " ",/***/
|
||||
"Caps_Lock", "Caps_Lock", "Caps_Lock", /**/"", "", "",/***/
|
||||
"F1", "F1", "F1", /**/"", "", "",/***/
|
||||
"F2", "F2", "F2", /**/"", "", "",/***/
|
||||
"F3", "F3", "F3", /**/"", "", "",/***/
|
||||
"F4", "F4", "F4", /**/"", "", "",/***/
|
||||
"F5", "F5", "F5", /**/"", "", "",/***/
|
||||
"F6", "F6", "F6", /**/"", "", "",/***/
|
||||
"F7", "F7", "F7", /**/"", "", "",/***/
|
||||
"F8", "F8", "F8", /**/"", "", "",/***/
|
||||
"F9", "F9", "F9", /**/"", "", "",/***/
|
||||
"F10", "F10", "F10", /**/"", "", "",/***/
|
||||
"Num_Lock", "Num_Lock", "Num_Lock", /**/"", "", "",/***/
|
||||
"Scroll_Lock", "Scroll_Lock", "Scroll_Lock", /**/"", "", "",/***/
|
||||
"KP_Home", "KP_7", "KP_Home", /**/"", "7", "",/***/
|
||||
"KP_Up", "KP_8", "KP_Up", /**/"", "8", "",/***/
|
||||
"KP_Prior", "KP_9", "KP_Prior", /**/"", "9", "",/***/
|
||||
"KP_Subtract", "KP_Subtract", "KP_Subtract", /**/"", "", "",/***/
|
||||
"KP_Left", "KP_4", "KP_Left", /**/"", "4", "",/***/
|
||||
"KP_Begin", "KP_5", "KP_Begin", /**/"", "5", "",/***/
|
||||
"KP_Right", "KP_6", "KP_Right", /**/"", "6", "",/***/
|
||||
"KP_Add", "KP_Add", "KP_Add", /**/"", "", "",/***/
|
||||
"KP_End", "KP_1", "KP_End", /**/"", "1", "",/***/
|
||||
"KP_Down", "KP_2", "KP_Down", /**/"", "2", "",/***/
|
||||
"KP_Next", "KP_3", "KP_Next", /**/"", "3", "",/***/
|
||||
"KP_Insert", "KP_0", "KP_Insert", /**/"", "0", "",/***/
|
||||
"KP_Delete", "KP_Decimal", "KP_Delete", /**/"", ".", "",/***/
|
||||
"0x54", "0x54", "0x54", /**/"", "", "",/***/
|
||||
"0x55", "0x55", "0x55", /**/"", "", "",/***/
|
||||
"0x56", "0x56", "0x56", /**/"", "", "",/***/
|
||||
"F11", "F11", "F11", /**/"", "", "",/***/
|
||||
"F12", "F12", "F12", /**/"", "", "",/***/
|
||||
"0x59", "0x59", "0x59", /**/"", "", "",/***/
|
||||
"0x5a", "0x5a", "0x5a", /**/"", "", "",/***/
|
||||
"0x5b", "0x5b", "0x5b", /**/"", "", "",/***/
|
||||
"0x5c", "0x5c", "0x5c", /**/"", "", "",/***/
|
||||
"0x5d", "0x5d", "0x5d", /**/"", "", "",/***/
|
||||
"0x5e", "0x5e", "0x5e", /**/"", "", "",/***/
|
||||
"0x5f", "0x5f", "0x5f", /**/"", "", "",/***/
|
||||
"KP_Enter", "KP_Enter", "KP_Enter", /**/"", "", "",/***/
|
||||
"Control_R", "Control_R", "Control_R", /**/"", "", "",/***/
|
||||
"KP_Divide", "KP_Divide", "KP_Divide", /**/"", "", "",/***/
|
||||
"Print", "Print", "Print", /**/"", "", "",/***/
|
||||
"Alt_R", "Alt_R", "Alt_R", /**/"", "", "",/***/
|
||||
"0x65", "0x65", "0x65", /**/"", "", "",/***/
|
||||
"Home", "Home", "Home", /**/"", "", "",/***/
|
||||
"Up", "Up", "Up", /**/"", "", "",/***/
|
||||
"Prior", "Prior", "Prior", /**/"", "", "",/***/
|
||||
"Left", "Left", "Left", /**/"", "", "",/***/
|
||||
"Right", "Right", "Right", /**/"", "", "",/***/
|
||||
"End", "End", "End", /**/"", "", "",/***/
|
||||
"Down", "Down", "Down", /**/"", "", "",/***/
|
||||
"Next", "Next", "Next", /**/"", "", "",/***/
|
||||
"Insert", "Insert", "Insert", /**/"", "", "",/***/
|
||||
"Delete", "Delete", "Delete", /**/"\177","\177","\177",/***/
|
||||
"0x70", "0x70", "0x70", /**/"", "", "",/***/
|
||||
"0x71", "0x71", "0x71", /**/"", "", "",/***/
|
||||
"0x72", "0x72", "0x72", /**/"", "", "",/***/
|
||||
"0x73", "0x73", "0x73", /**/"", "", "",/***/
|
||||
"0x74", "0x74", "0x74", /**/"", "", "",/***/
|
||||
"0x75", "0x75", "0x75", /**/"", "", "",/***/
|
||||
"0x76", "0x76", "0x76", /**/"", "", "",/***/
|
||||
"Pause", "Pause", "Pause", /**/"", "", "",/***/
|
||||
"0x78", "0x78", "0x78", /**/"", "", "",/***/
|
||||
"0x79", "0x79", "0x79", /**/"", "", "",/***/
|
||||
"0x7a", "0x7a", "0x7a", /**/"", "", "",/***/
|
||||
"0x7b", "0x7b", "0x7b", /**/"", "", "",/***/
|
||||
"0x7c", "0x7c", "0x7c", /**/"", "", "",/***/
|
||||
"Super_L", "Super_L", "Super_L", /**/"", "", "",/***/
|
||||
"Super_R", "Super_R", "Super_R", /**/"", "", "",/***/
|
||||
"0x7f", "0x7f", "0x7f", /**/"", "", "" /***/
|
Loading…
Reference in New Issue