void bus_panel_proxy_focus_in (BusPanelProxy *panel, BusInputContext *context) { g_assert (BUS_IS_PANEL_PROXY (panel)); g_assert (BUS_IS_INPUT_CONTEXT (context)); if (panel->focused_context == context) return; if (panel->focused_context != NULL) bus_panel_proxy_focus_out (panel, panel->focused_context); g_object_ref_sink (context); panel->focused_context = context; const gchar *path = ibus_service_get_path ((IBusService *)context); ibus_proxy_call ((IBusProxy *) panel, "FocusIn", IBUS_TYPE_OBJECT_PATH, &path, G_TYPE_INVALID); /* install signal handlers */ gint i; for (i = 0; i < G_N_ELEMENTS (__signals); i++) { g_signal_connect (context, __signals[i].name, __signals[i].callback, panel); } }
static void _context_destroy_cb (BusInputContext *context, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); g_assert (context == panel->focused_context); bus_panel_proxy_focus_out (panel, context); }
static void _context_destroy_cb (BusInputContext *context, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); BusPanelProxyPrivate *priv; priv = BUS_PANEL_PROXY_GET_PRIVATE (panel); g_assert (context == priv->focused_context); bus_panel_proxy_focus_out (panel, context); }
static void bus_panel_proxy_real_destroy (BusPanelProxy *panel) { if (ibus_proxy_get_connection ((IBusProxy *)panel) != NULL) { ibus_proxy_call ((IBusProxy *) panel, "Destroy", G_TYPE_INVALID); } if (panel->focused_context) { bus_panel_proxy_focus_out (panel, panel->focused_context); panel->focused_context = NULL; } IBUS_OBJECT_CLASS(bus_panel_proxy_parent_class)->destroy (IBUS_OBJECT (panel)); }
static void bus_panel_proxy_real_destroy (BusPanelProxy *panel) { BusPanelProxyPrivate *priv; priv = BUS_PANEL_PROXY_GET_PRIVATE (panel); if (ibus_proxy_get_connection ((IBusProxy *)panel) != NULL) { ibus_proxy_call ((IBusProxy *) panel, "Destroy", G_TYPE_INVALID); } if (priv->focused_context) { bus_panel_proxy_focus_out (panel, priv->focused_context); priv->focused_context = NULL; } IBUS_OBJECT_CLASS(parent_class)->destroy (IBUS_OBJECT (panel)); }