Skip to content

Commit b5da80d

Browse files
committed
csd-xsettings-manager.c: Always use the ibus im module unless
overridden in interface settings.
1 parent d9cf5c5 commit b5da80d

File tree

1 file changed

+9
-76
lines changed

1 file changed

+9
-76
lines changed

plugins/xsettings/csd-xsettings-manager.c

Lines changed: 9 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@
5959
#define SOUND_SETTINGS_SCHEMA "org.cinnamon.desktop.sound"
6060
#define PRIVACY_SETTINGS_SCHEMA "org.cinnamon.desktop.privacy"
6161
#define KEYBOARD_A11Y_SCHEMA "org.cinnamon.desktop.a11y.keyboard"
62-
#define A11Y_APPLICATIONS_SCHEMA "org.gnome.desktop.a11y.applications"
63-
#define INPUT_SOURCES_SCHEMA "org.gnome.desktop.input-sources"
6462

6563
#define XSETTINGS_PLUGIN_SCHEMA "org.cinnamon.settings-daemon.plugins.xsettings"
6664
#define XSETTINGS_OVERRIDE_KEY "overrides"
@@ -77,12 +75,7 @@
7775
#define FONT_HINTING_KEY "hinting"
7876
#define FONT_RGBA_ORDER_KEY "rgba-order"
7977

80-
#define INPUT_SOURCES_KEY "sources"
81-
#define OSK_ENABLED_KEY "screen-keyboard-enabled"
8278
#define GTK_IM_MODULE_KEY "gtk-im-module"
83-
84-
#define INPUT_SOURCE_TYPE_IBUS "ibus"
85-
#define GTK_IM_MODULE_SIMPLE "gtk-im-context-simple"
8679
#define GTK_IM_MODULE_IBUS "ibus"
8780

8881
/* As we cannot rely on the X server giving us good DPI information, and
@@ -262,8 +255,6 @@ struct CinnamonSettingsXSettingsManagerPrivate
262255
fontconfig_monitor_handle_t *fontconfig_handle;
263256

264257
GSettings *interface_settings;
265-
GSettings *input_sources_settings;
266-
GSettings *a11y_settings;
267258
GdkSeat *user_seat;
268259

269260
CsdXSettingsGtk *gtk;
@@ -1173,51 +1164,6 @@ on_cinnamon_name_appeared_handler (GDBusConnection *connection,
11731164
animations_enabled_changed (manager);
11741165
}
11751166

1176-
static gboolean
1177-
need_ibus (CinnamonSettingsXSettingsManager *manager)
1178-
{
1179-
GVariant *sources;
1180-
GVariantIter iter;
1181-
const gchar *type;
1182-
gboolean needs_ibus = FALSE;
1183-
1184-
sources = g_settings_get_value (manager->priv->input_sources_settings,
1185-
INPUT_SOURCES_KEY);
1186-
1187-
g_variant_iter_init (&iter, sources);
1188-
while (g_variant_iter_next (&iter, "(&s&s)", &type, NULL)) {
1189-
if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) {
1190-
needs_ibus = TRUE;
1191-
break;
1192-
}
1193-
}
1194-
1195-
g_variant_unref (sources);
1196-
1197-
return needs_ibus;
1198-
}
1199-
1200-
static gboolean
1201-
need_osk (CinnamonSettingsXSettingsManager *manager)
1202-
{
1203-
gboolean has_touchscreen = FALSE;
1204-
GList *devices;
1205-
GdkSeat *seat;
1206-
1207-
if (g_settings_get_boolean (manager->priv->a11y_settings,
1208-
OSK_ENABLED_KEY))
1209-
return TRUE;
1210-
1211-
seat = gdk_display_get_default_seat (gdk_display_get_default ());
1212-
devices = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_TOUCH);
1213-
1214-
has_touchscreen = devices != NULL;
1215-
1216-
g_list_free (devices);
1217-
1218-
return has_touchscreen;
1219-
}
1220-
12211167
static void
12221168
update_gtk_im_module (CinnamonSettingsXSettingsManager *manager)
12231169
{
@@ -1229,10 +1175,8 @@ update_gtk_im_module (CinnamonSettingsXSettingsManager *manager)
12291175
GTK_IM_MODULE_KEY);
12301176
if (setting && *setting)
12311177
module = setting;
1232-
else if (need_ibus (manager) || need_osk (manager))
1233-
module = GTK_IM_MODULE_IBUS;
12341178
else
1235-
module = GTK_IM_MODULE_SIMPLE;
1179+
module = GTK_IM_MODULE_IBUS;
12361180

12371181
for (i = 0; manager->priv->managers [i]; i++) {
12381182
xsettings_manager_set_string (manager->priv->managers[i], "Gtk/IMModule", module);
@@ -1306,15 +1250,6 @@ cinnamon_xsettings_manager_start (CinnamonSettingsXSettingsManager *manager,
13061250
"changed::" GTK_IM_MODULE_KEY,
13071251
G_CALLBACK (update_gtk_im_module), manager);
13081252

1309-
manager->priv->input_sources_settings = g_settings_new (INPUT_SOURCES_SCHEMA);
1310-
g_signal_connect_swapped (manager->priv->input_sources_settings,
1311-
"changed::" INPUT_SOURCES_KEY,
1312-
G_CALLBACK (update_gtk_im_module), manager);
1313-
1314-
manager->priv->a11y_settings = g_settings_new (A11Y_APPLICATIONS_SCHEMA);
1315-
g_signal_connect_swapped (manager->priv->a11y_settings,
1316-
"changed::" OSK_ENABLED_KEY,
1317-
G_CALLBACK (update_gtk_im_module), manager);
13181253
update_gtk_im_module (manager);
13191254

13201255
manager->priv->monitors_changed_id =
@@ -1492,6 +1427,14 @@ cinnamon_xsettings_manager_stop (CinnamonSettingsXSettingsManager *manager)
14921427
g_object_unref (p->gtk);
14931428
p->gtk = NULL;
14941429
}
1430+
1431+
if (manager->priv->user_seat != NULL) {
1432+
g_signal_handler_disconnect (manager->priv->user_seat, manager->priv->device_added_id);
1433+
g_signal_handler_disconnect (manager->priv->user_seat, manager->priv->device_removed_id);
1434+
manager->priv->user_seat = NULL;
1435+
}
1436+
1437+
g_clear_object (&manager->priv->interface_settings);
14951438
}
14961439

14971440
static GObject *
@@ -1531,16 +1474,6 @@ cinnamon_xsettings_manager_init (CinnamonSettingsXSettingsManager *manager)
15311474
if (!manager->priv->dbus_connection) {
15321475
g_error ("Failed to get session bus: %s", error->message);
15331476
}
1534-
1535-
if (manager->priv->user_seat != NULL) {
1536-
g_signal_handler_disconnect (manager->priv->user_seat, manager->priv->device_added_id);
1537-
g_signal_handler_disconnect (manager->priv->user_seat, manager->priv->device_removed_id);
1538-
manager->priv->user_seat = NULL;
1539-
}
1540-
1541-
g_clear_object (&manager->priv->a11y_settings);
1542-
g_clear_object (&manager->priv->input_sources_settings);
1543-
g_clear_object (&manager->priv->interface_settings);
15441477
}
15451478

15461479
static void

0 commit comments

Comments
 (0)