forked from enlightenment/enlightenment
parent
448f5524d6
commit
0e67df5730
|
@ -16,6 +16,7 @@ static void _e_mod_kbd_slide(int visible, double len);
|
||||||
static int _e_mod_kbd_cb_animate(void *data __UNUSED__);
|
static int _e_mod_kbd_cb_animate(void *data __UNUSED__);
|
||||||
static E_Illume_Keyboard *_e_mod_kbd_by_border_get(E_Border *bd);
|
static E_Illume_Keyboard *_e_mod_kbd_by_border_get(E_Border *bd);
|
||||||
static void _e_mod_kbd_border_adopt(E_Border *bd);
|
static void _e_mod_kbd_border_adopt(E_Border *bd);
|
||||||
|
static void _e_mod_kbd_layout_send(void);
|
||||||
|
|
||||||
/* local variables */
|
/* local variables */
|
||||||
static Eina_List *_kbd_hdls = NULL;
|
static Eina_List *_kbd_hdls = NULL;
|
||||||
|
@ -146,7 +147,7 @@ e_mod_kbd_show(void)
|
||||||
/* if it's disabled, get out */
|
/* if it's disabled, get out */
|
||||||
if (_e_illume_kbd->disabled) return;
|
if (_e_illume_kbd->disabled) return;
|
||||||
|
|
||||||
/* TODO: Layout send */
|
_e_mod_kbd_layout_send();
|
||||||
|
|
||||||
/* if we are not animating, just show it */
|
/* if we are not animating, just show it */
|
||||||
if (_e_illume_cfg->animation.vkbd.duration <= 0)
|
if (_e_illume_cfg->animation.vkbd.duration <= 0)
|
||||||
|
@ -209,9 +210,11 @@ e_mod_kbd_fullscreen_set(E_Zone *zone, int fullscreen)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_mod_kbd_layout_set(E_Illume_Keyboard *kbd, E_Illume_Keyboard_Layout layout)
|
e_mod_kbd_layout_set(E_Illume_Keyboard_Layout layout)
|
||||||
{
|
{
|
||||||
|
if (!_e_illume_kbd->border) return;
|
||||||
|
_e_illume_kbd->layout = layout;
|
||||||
|
_e_mod_kbd_layout_send();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* local functions */
|
/* local functions */
|
||||||
|
@ -444,6 +447,8 @@ _e_mod_kbd_hide(void)
|
||||||
/* can't hide keyboard if it's not visible, or disabled */
|
/* can't hide keyboard if it's not visible, or disabled */
|
||||||
if ((!_e_illume_kbd->visible) || (_e_illume_kbd->disabled)) return;
|
if ((!_e_illume_kbd->visible) || (_e_illume_kbd->disabled)) return;
|
||||||
|
|
||||||
|
_e_mod_kbd_layout_send();
|
||||||
|
|
||||||
/* if we are not animating, just hide it */
|
/* if we are not animating, just hide it */
|
||||||
if (_e_illume_cfg->animation.vkbd.duration <= 0)
|
if (_e_illume_cfg->animation.vkbd.duration <= 0)
|
||||||
{
|
{
|
||||||
|
@ -513,7 +518,7 @@ _e_mod_kbd_cb_animate(void *data __UNUSED__)
|
||||||
else
|
else
|
||||||
_e_illume_kbd->visible = 1;
|
_e_illume_kbd->visible = 1;
|
||||||
|
|
||||||
/* layout send */
|
_e_mod_kbd_layout_send();
|
||||||
|
|
||||||
/* tell the focused border it changed so layout gets udpated */
|
/* tell the focused border it changed so layout gets udpated */
|
||||||
if (_focused_border)
|
if (_focused_border)
|
||||||
|
@ -559,6 +564,50 @@ _e_mod_kbd_border_adopt(E_Border *bd)
|
||||||
if (!_e_illume_kbd->visible)
|
if (!_e_illume_kbd->visible)
|
||||||
{
|
{
|
||||||
e_border_fx_offset(bd, 0, bd->h);
|
e_border_fx_offset(bd, 0, bd->h);
|
||||||
/* layout send */
|
_e_mod_kbd_layout_send();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_mod_kbd_layout_send(void)
|
||||||
|
{
|
||||||
|
Ecore_X_Virtual_Keyboard_State type;
|
||||||
|
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
|
||||||
|
if ((!_e_illume_kbd->visible) && (!_e_illume_kbd->disabled))
|
||||||
|
{
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
|
||||||
|
if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_DEFAULT)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_ALPHA)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_NUMERIC)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_PIN)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_PHONE_NUMBER)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_HEX)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_TERMINAL)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_PASSWORD)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_IP)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_IP;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_HOST)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_FILE)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_URL)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_URL;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_KEYPAD)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_J2ME)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
|
||||||
|
else if (_e_illume_kbd->layout == E_ILLUME_KEYBOARD_LAYOUT_NONE)
|
||||||
|
type = ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
|
||||||
|
}
|
||||||
|
if (_e_illume_kbd->border)
|
||||||
|
ecore_x_e_virtual_keyboard_state_send(_e_illume_kbd->border->client.win, type);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue