void bus_panel_proxy_focus_out (BusPanelProxy *panel, BusInputContext *context) { g_assert (BUS_IS_PANEL_PROXY (panel)); g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (panel->focused_context == context); /* uninstall signal handlers */ gint i; for (i = 0; i < G_N_ELEMENTS (__signals); i++) { g_signal_handlers_disconnect_by_func (context, __signals[i].callback, panel); } const gchar *path = ibus_service_get_path ((IBusService *)context); ibus_proxy_call ((IBusProxy *) panel, "FocusOut", IBUS_TYPE_OBJECT_PATH, &path, G_TYPE_INVALID); g_object_unref (panel->focused_context); panel->focused_context = NULL; }
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_register_properties_cb (BusInputContext *context, IBusPropList *prop_list, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); g_return_if_fail (panel->focused_context == context); bus_panel_proxy_register_properties (panel, prop_list); }
static void _context_update_property_cb (BusInputContext *context, IBusProperty *prop, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); g_return_if_fail (panel->focused_context == context); bus_panel_proxy_update_property (panel, prop); }
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 _context_update_lookup_table_cb (BusInputContext *context, IBusLookupTable *table, gboolean visible, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); g_return_if_fail (panel->focused_context == context); bus_panel_proxy_update_lookup_table (panel, table, visible); }
static void _context_update_auxiliary_text_cb (BusInputContext *context, IBusText *text, gboolean visible, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); g_return_if_fail (panel->focused_context == context); bus_panel_proxy_update_auxiliary_text (panel, text, visible); }
static void _context_set_cursor_location_cb (BusInputContext *context, gint x, gint y, gint w, gint h, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (BUS_IS_PANEL_PROXY (panel)); g_return_if_fail (panel->focused_context == context); bus_panel_proxy_set_cursor_location (panel, x, y, w, h); }
static void _context_update_preedit_text_cb (BusInputContext *context, IBusText *text, guint cursor_pos, gboolean visible, BusPanelProxy *panel) { g_assert (BUS_IS_INPUT_CONTEXT (context)); g_assert (text != NULL); g_assert (BUS_IS_PANEL_PROXY (panel)); g_return_if_fail (panel->focused_context == context); bus_panel_proxy_update_preedit_text (panel, text, cursor_pos, visible); }