Show keyboard if --listen-focus is not passed to eekboard-system-client.

This commit is contained in:
Daiki Ueno
2011-02-23 13:16:12 +09:00
parent 3f7562809e
commit 994d0a9a7e

View File

@ -102,7 +102,8 @@ static SPIBoolean keystroke_listener_cb
(const AccessibleKeystroke *stroke,
void *user_data);
#endif /* HAVE_CSPI */
static void set_keyboard (EekboardSystemClient *client);
static void set_keyboard (EekboardSystemClient *client,
gboolean show);
static void
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);
set_keyboard (client);
#ifdef HAVE_CSPI
set_keyboard (client, client->focus_listener ? FALSE : TRUE);
#else
set_keyboard (client, TRUE);
#endif
return TRUE;
}
@ -423,7 +428,7 @@ on_xkl_config_changed (XklEngine *xklengine,
{
EekboardSystemClient *client = user_data;
set_keyboard (client);
set_keyboard (client, FALSE);
#ifdef HAVE_FAKEKEY
if (client->fakekey)
@ -432,7 +437,8 @@ on_xkl_config_changed (XklEngine *xklengine,
}
static void
set_keyboard (EekboardSystemClient *client)
set_keyboard (EekboardSystemClient *client,
gboolean show)
{
EekLayout *layout;
gchar *keyboard_name;
@ -449,6 +455,8 @@ set_keyboard (EekboardSystemClient *client)
eek_element_set_name (EEK_ELEMENT(client->keyboard), keyboard_name);
eekboard_context_set_keyboard (client->context, client->keyboard, NULL);
if (show)
eekboard_context_show_keyboard (client->context, NULL);
}
static void