Show keyboard if --listen-focus is not passed to eekboard-system-client.
This commit is contained in:
@ -102,7 +102,8 @@ static SPIBoolean keystroke_listener_cb
|
|||||||
(const AccessibleKeystroke *stroke,
|
(const AccessibleKeystroke *stroke,
|
||||||
void *user_data);
|
void *user_data);
|
||||||
#endif /* HAVE_CSPI */
|
#endif /* HAVE_CSPI */
|
||||||
static void set_keyboard (EekboardSystemClient *client);
|
static void set_keyboard (EekboardSystemClient *client,
|
||||||
|
gboolean show);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
eekboard_system_client_set_property (GObject *object,
|
eekboard_system_client_set_property (GObject *object,
|
||||||
@ -262,7 +263,11 @@ eekboard_system_client_enable_xkl (EekboardSystemClient *client)
|
|||||||
|
|
||||||
xkl_engine_start_listen (client->xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
|
xkl_engine_start_listen (client->xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
|
||||||
|
|
||||||
set_keyboard (client);
|
#ifdef HAVE_CSPI
|
||||||
|
set_keyboard (client, client->focus_listener ? FALSE : TRUE);
|
||||||
|
#else
|
||||||
|
set_keyboard (client, TRUE);
|
||||||
|
#endif
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -423,7 +428,7 @@ on_xkl_config_changed (XklEngine *xklengine,
|
|||||||
{
|
{
|
||||||
EekboardSystemClient *client = user_data;
|
EekboardSystemClient *client = user_data;
|
||||||
|
|
||||||
set_keyboard (client);
|
set_keyboard (client, FALSE);
|
||||||
|
|
||||||
#ifdef HAVE_FAKEKEY
|
#ifdef HAVE_FAKEKEY
|
||||||
if (client->fakekey)
|
if (client->fakekey)
|
||||||
@ -432,7 +437,8 @@ on_xkl_config_changed (XklEngine *xklengine,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_keyboard (EekboardSystemClient *client)
|
set_keyboard (EekboardSystemClient *client,
|
||||||
|
gboolean show)
|
||||||
{
|
{
|
||||||
EekLayout *layout;
|
EekLayout *layout;
|
||||||
gchar *keyboard_name;
|
gchar *keyboard_name;
|
||||||
@ -449,6 +455,8 @@ set_keyboard (EekboardSystemClient *client)
|
|||||||
eek_element_set_name (EEK_ELEMENT(client->keyboard), keyboard_name);
|
eek_element_set_name (EEK_ELEMENT(client->keyboard), keyboard_name);
|
||||||
|
|
||||||
eekboard_context_set_keyboard (client->context, client->keyboard, NULL);
|
eekboard_context_set_keyboard (client->context, client->keyboard, NULL);
|
||||||
|
if (show)
|
||||||
|
eekboard_context_show_keyboard (client->context, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user