Maintain group in EekboardKeyboard.

This commit is contained in:
Daiki Ueno
2011-02-18 19:13:25 +09:00
parent e3e3b60f1e
commit 4a0cda72a2

View File

@ -95,6 +95,17 @@ eekboard_keyboard_real_key_released (EekboardKeyboard *self,
} }
} }
static void
eekboard_keyboard_dispose (GObject *self)
{
EekboardKeyboardPrivate *priv = EEKBOARD_KEYBOARD_GET_PRIVATE (self);
if (priv->description) {
g_object_unref (priv->description);
priv->description = NULL;
}
}
static void static void
eekboard_keyboard_class_init (EekboardKeyboardClass *klass) eekboard_keyboard_class_init (EekboardKeyboardClass *klass)
{ {
@ -109,6 +120,8 @@ eekboard_keyboard_class_init (EekboardKeyboardClass *klass)
proxy_class->g_signal = eekboard_keyboard_real_g_signal; proxy_class->g_signal = eekboard_keyboard_real_g_signal;
gobject_class->dispose = eekboard_keyboard_dispose;
signals[KEY_PRESSED] = signals[KEY_PRESSED] =
g_signal_new ("key-pressed", g_signal_new ("key-pressed",
G_TYPE_FROM_CLASS(gobject_class), G_TYPE_FROM_CLASS(gobject_class),
@ -227,7 +240,11 @@ void
eekboard_keyboard_set_group (EekboardKeyboard *keyboard, eekboard_keyboard_set_group (EekboardKeyboard *keyboard,
gint group) gint group)
{ {
EekboardKeyboardPrivate *priv;
g_return_if_fail (EEKBOARD_IS_KEYBOARD(keyboard)); g_return_if_fail (EEKBOARD_IS_KEYBOARD(keyboard));
priv = EEKBOARD_KEYBOARD_GET_PRIVATE (keyboard);
g_dbus_proxy_call (G_DBUS_PROXY(keyboard), g_dbus_proxy_call (G_DBUS_PROXY(keyboard),
"SetGroup", "SetGroup",
g_variant_new ("(i)", group), g_variant_new ("(i)", group),
@ -236,6 +253,7 @@ eekboard_keyboard_set_group (EekboardKeyboard *keyboard,
NULL, NULL,
proxy_call_async_ready_cb, proxy_call_async_ready_cb,
NULL); NULL);
eek_keyboard_set_group (priv->description, group);
} }
void void