59
59
static void bus_ibus_impl_set_preload_engines
60
60
(BusIBusImpl *ibus,
62
static void _factory_destroy_cb (BusFactoryProxy *factory,
62
static void bus_ibus_impl_set_use_sys_layout
65
static void _factory_destroy_cb (BusFactoryProxy *factory,
65
68
static IBusServiceClass *parent_class = NULL;
247
bus_ibus_impl_set_use_sys_layout (BusIBusImpl *ibus,
250
if (value != NULL && G_VALUE_TYPE (value) == G_TYPE_BOOLEAN) {
251
ibus->use_sys_layout = g_value_get_boolean (value);
244
256
_engine_desc_cmp (IBusEngineDesc *desc1,
245
257
IBusEngineDesc *desc2)
320
332
{ "general/hotkey", "next_engine", bus_ibus_impl_set_next_engine },
321
333
{ "general/hotkey", "prev_engine", bus_ibus_impl_set_prev_engine },
322
334
{ "general", "preload_engines", bus_ibus_impl_set_preload_engines },
335
{ "general", "use_system_keyboard_layout", bus_ibus_impl_set_use_sys_layout },
323
336
{ NULL, NULL, NULL },
362
375
{ "general/hotkey", "next_engine", bus_ibus_impl_set_next_engine },
363
376
{ "general/hotkey", "prev_engine", bus_ibus_impl_set_prev_engine },
364
377
{ "general", "preload_engines", bus_ibus_impl_set_preload_engines },
378
{ "general", "use_system_keyboard_layout", bus_ibus_impl_set_use_sys_layout },
365
379
{ NULL, NULL, NULL },
550
567
ibus->hotkey_profile = NULL;
570
if (ibus->keymap != NULL) {
571
g_object_unref (ibus->keymap);
553
575
bus_server_quit (BUS_DEFAULT_SERVER);
554
576
ibus_object_destroy ((IBusObject *) BUS_DEFAULT_SERVER);
555
577
IBUS_OBJECT_CLASS(parent_class)->destroy (IBUS_OBJECT (ibus));
569
591
" <arg name=\"data\" direction=\"out\" type=\"s\"/>\n"
571
593
" </interface>\n"
572
" <interface name=\"org.freedesktop.DBus\">\n"
573
" <method name=\"RequestName\">\n"
574
" <arg direction=\"in\" type=\"s\"/>\n"
575
" <arg direction=\"in\" type=\"u\"/>\n"
576
" <arg direction=\"out\" type=\"u\"/>\n"
578
" <signal name=\"NameOwnerChanged\">\n"
579
" <arg type=\"s\"/>\n"
580
" <arg type=\"s\"/>\n"
581
" <arg type=\"s\"/>\n"
594
" <interface name=\"org.freedesktop.IBus\">\n"
595
" <method name=\"GetAddress\">\n"
596
" <arg name=\"address\" direction=\"out\" type=\"s\"/>\n"
598
" <method name=\"CreateInputContext\">\n"
599
" <arg name=\"name\" direction=\"in\" type=\"s\"/>\n"
600
" <arg name=\"context\" direction=\"out\" type=\"o\"/>\n"
602
" <method name=\"RegisterComponent\">\n"
603
" <arg name=\"components\" direction=\"in\" type=\"v\"/>\n"
605
" <method name=\"ListEngines\">\n"
606
" <arg name=\"engines\" direction=\"out\" type=\"av\"/>\n"
608
" <method name=\"ListActiveEngines\">\n"
609
" <arg name=\"engines\" direction=\"out\" type=\"av\"/>\n"
611
" <method name=\"Exit\">\n"
612
" <arg name=\"restart\" direction=\"in\" type=\"b\"/>\n"
614
" <method name=\"Ping\">\n"
615
" <arg name=\"data\" direction=\"in\" type=\"v\"/>\n"
616
" <arg name=\"data\" direction=\"out\" type=\"v\"/>\n"
583
618
" </interface>\n"
1129
static IBusMessage *
1130
_ibus_ping (BusIBusImpl *ibus,
1131
IBusMessage *message,
1132
BusConnection *connection)
1135
IBusMessageIter src, dst;
1137
reply = ibus_message_new_method_return (message);
1139
ibus_message_iter_init (message, &src);
1140
ibus_message_iter_init_append (reply, &dst);
1142
ibus_message_iter_copy_data (&dst, &src);
1094
1147
static gboolean
1095
1148
bus_ibus_impl_ibus_message (BusIBusImpl *ibus,
1096
1149
BusConnection *connection,
1110
1163
} handlers[] = {
1111
1164
/* Introspectable interface */
1112
1165
{ DBUS_INTERFACE_INTROSPECTABLE,
1113
"Introspect", _ibus_introspect },
1166
"Introspect", _ibus_introspect },
1114
1167
/* IBus interface */
1115
1168
{ IBUS_INTERFACE_IBUS, "GetAddress", _ibus_get_address },
1116
1169
{ IBUS_INTERFACE_IBUS, "CreateInputContext", _ibus_create_input_context },
1118
1171
{ IBUS_INTERFACE_IBUS, "ListEngines", _ibus_list_engines },
1119
1172
{ IBUS_INTERFACE_IBUS, "ListActiveEngines", _ibus_list_active_engines },
1120
1173
{ IBUS_INTERFACE_IBUS, "Exit", _ibus_exit },
1174
{ IBUS_INTERFACE_IBUS, "Ping", _ibus_ping },
1121
1175
{ NULL, NULL, NULL }
1124
1178
ibus_message_set_sender (message, bus_connection_get_unique_name (connection));
1125
1179
ibus_message_set_destination (message, DBUS_SERVICE_DBUS);
1127
for (i = 0; handlers[i].interface != NULL; i++) {
1128
if (ibus_message_is_method_call (message,
1129
handlers[i].interface,
1130
handlers[i].name)) {
1132
reply_message = handlers[i].handler (ibus, message, connection);
1133
if (reply_message) {
1135
ibus_message_set_sender (reply_message, DBUS_SERVICE_DBUS);
1136
ibus_message_set_destination (reply_message, bus_connection_get_unique_name (connection));
1137
ibus_message_set_no_reply (reply_message, TRUE);
1139
ibus_connection_send ((IBusConnection *) connection, reply_message);
1140
ibus_message_unref (reply_message);
1181
if (ibus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_CALL) {
1182
g_debug ("Member = %s", ibus_message_get_member (message));
1183
for (i = 0; handlers[i].interface != NULL; i++) {
1184
if (ibus_message_is_method_call (message,
1185
handlers[i].interface,
1186
handlers[i].name)) {
1188
reply_message = handlers[i].handler (ibus, message, connection);
1189
if (reply_message) {
1191
ibus_message_set_sender (reply_message, DBUS_SERVICE_DBUS);
1192
ibus_message_set_destination (reply_message, bus_connection_get_unique_name (connection));
1193
ibus_message_set_no_reply (reply_message, TRUE);
1195
ibus_connection_send ((IBusConnection *) connection, reply_message);
1196
ibus_message_unref (reply_message);
1199
g_signal_stop_emission_by_name (ibus, "ibus-message");
1143
g_signal_stop_emission_by_name (ibus, "ibus-message");