diff options
author | Benjamin Berg <bberg@redhat.com> | 2019-02-20 16:27:58 +0100 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2019-03-22 13:20:22 +0100 |
commit | d4592a923c84f164b04b797699e68265414fe1eb (patch) | |
tree | 5c59fdfb16423234ff252de5328ade5a1055c81d | |
parent | 10b3e8b8429513f0a75db18b975cfa8d0dac52b7 (diff) | |
download | gnome-settings-daemon-d4592a923c84f164b04b797699e68265414fe1eb.tar.gz |
keyboard: Use G_DECLARE_FINAL_TYPE for GsdKeyboardManager
-rw-r--r-- | plugins/keyboard/gsd-keyboard-manager.c | 111 | ||||
-rw-r--r-- | plugins/keyboard/gsd-keyboard-manager.h | 22 |
2 files changed, 54 insertions, 79 deletions
diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c index 31bfade7..21279b5c 100644 --- a/plugins/keyboard/gsd-keyboard-manager.c +++ b/plugins/keyboard/gsd-keyboard-manager.c @@ -47,8 +47,6 @@ #include "gsd-enums.h" #include "gsd-settings-migrate.h" -#define GSD_KEYBOARD_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_KEYBOARD_MANAGER, GsdKeyboardManagerPrivate)) - #define GSD_KEYBOARD_DIR "org.gnome.settings-daemon.peripherals.keyboard" #define KEY_CLICK "click" @@ -81,9 +79,11 @@ #define GNOME_A11Y_APPLICATIONS_INTERFACE_DIR "org.gnome.desktop.a11y.applications" #define KEY_OSK_ENABLED "screen-keyboard-enabled" -struct GsdKeyboardManagerPrivate +struct _GsdKeyboardManager { - guint start_idle_id; + GObject parent; + + guint start_idle_id; GSettings *settings; GSettings *input_sources_settings; GSettings *a11y_settings; @@ -159,7 +159,7 @@ check_xkb_extension (GsdKeyboardManager *manager) have_xkb = XkbQueryExtension (dpy, &opcode, - &manager->priv->xkb_event_base, + &manager->xkb_event_base, &error_base, &major, &minor); @@ -221,7 +221,7 @@ xkb_events_filter (GdkXEvent *xev_, XkbEvent *xkbev = (XkbEvent *) xev; GsdKeyboardManager *manager = (GsdKeyboardManager *) user_data; - if (xev->type != manager->priv->xkb_event_base || + if (xev->type != manager->xkb_event_base || xkbev->any.xkb_type != XkbStateNotify) return GDK_FILTER_CONTINUE; @@ -232,14 +232,14 @@ xkb_events_filter (GdkXEvent *xev_, numlock_state = (num_mask & locked_mods) ? GSD_NUM_LOCK_STATE_ON : GSD_NUM_LOCK_STATE_OFF; - if (numlock_state != manager->priv->old_state) { + if (numlock_state != manager->old_state) { g_debug ("New num-lock state '%s' != Old num-lock state '%s'", num_lock_state_to_string (numlock_state), - num_lock_state_to_string (manager->priv->old_state)); - g_settings_set_enum (manager->priv->settings, + num_lock_state_to_string (manager->old_state)); + g_settings_set_enum (manager->settings, KEY_NUMLOCK_STATE, numlock_state); - manager->priv->old_state = numlock_state; + manager->old_state = numlock_state; } } @@ -275,7 +275,7 @@ apply_bell (GsdKeyboardManager *manager) int click_volume; g_debug ("Applying the bell settings"); - settings = manager->priv->settings; + settings = manager->settings; click = g_settings_get_boolean (settings, KEY_CLICK); click_volume = g_settings_get_int (settings, KEY_CLICK_VOLUME); @@ -312,15 +312,15 @@ apply_numlock (GsdKeyboardManager *manager) gboolean rnumlock; g_debug ("Applying the num-lock settings"); - settings = manager->priv->settings; + settings = manager->settings; rnumlock = g_settings_get_boolean (settings, KEY_REMEMBER_NUMLOCK_STATE); - manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE); + manager->old_state = g_settings_get_enum (manager->settings, KEY_NUMLOCK_STATE); gdk_error_trap_push (); if (rnumlock) { g_debug ("Remember num-lock is set, so applying setting '%s'", - num_lock_state_to_string (manager->priv->old_state)); - numlock_set_xkb_state (manager->priv->old_state); + num_lock_state_to_string (manager->old_state)); + numlock_set_xkb_state (manager->old_state); } XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE); @@ -397,11 +397,11 @@ set_devicepresence_handler (GsdKeyboardManager *manager) device_manager = gdk_display_get_device_manager (gdk_display_get_default ()); - manager->priv->device_added_id = g_signal_connect (G_OBJECT (device_manager), "device-added", + manager->device_added_id = g_signal_connect (G_OBJECT (device_manager), "device-added", G_CALLBACK (device_added_cb), manager); - manager->priv->device_removed_id = g_signal_connect (G_OBJECT (device_manager), "device-removed", + manager->device_removed_id = g_signal_connect (G_OBJECT (device_manager), "device-removed", G_CALLBACK (device_removed_cb), manager); - manager->priv->device_manager = device_manager; + manager->device_manager = device_manager; } static gboolean @@ -426,7 +426,7 @@ need_osk (GsdKeyboardManager *manager) GList *devices, *l; GdkSeat *seat; - if (g_settings_get_boolean (manager->priv->a11y_settings, + if (g_settings_get_boolean (manager->a11y_settings, KEY_OSK_ENABLED)) return TRUE; @@ -471,7 +471,7 @@ update_gtk_im_module (GsdKeyboardManager *manager) * which is builtin gtk+ */ interface_settings = g_settings_new (GNOME_DESKTOP_INTERFACE_DIR); - sources = g_settings_get_value (manager->priv->input_sources_settings, + sources = g_settings_get_value (manager->input_sources_settings, KEY_INPUT_SOURCES); set_gtk_im_module (manager, interface_settings, sources); g_object_unref (interface_settings); @@ -481,14 +481,13 @@ update_gtk_im_module (GsdKeyboardManager *manager) static void get_sources_from_xkb_config (GsdKeyboardManager *manager) { - GsdKeyboardManagerPrivate *priv = manager->priv; GVariantBuilder builder; GVariant *v; gint i, n; gchar **layouts = NULL; gchar **variants = NULL; - v = g_dbus_proxy_get_cached_property (priv->localed, "X11Layout"); + v = g_dbus_proxy_get_cached_property (manager->localed, "X11Layout"); if (v) { const gchar *s = g_variant_get_string (v, NULL); if (*s) @@ -496,14 +495,14 @@ get_sources_from_xkb_config (GsdKeyboardManager *manager) g_variant_unref (v); } - init_builder_with_sources (&builder, priv->input_sources_settings); + init_builder_with_sources (&builder, manager->input_sources_settings); if (!layouts) { g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, DEFAULT_LAYOUT); goto out; } - v = g_dbus_proxy_get_cached_property (priv->localed, "X11Variant"); + v = g_dbus_proxy_get_cached_property (manager->localed, "X11Variant"); if (v) { const gchar *s = g_variant_get_string (v, NULL); if (*s) @@ -529,7 +528,7 @@ get_sources_from_xkb_config (GsdKeyboardManager *manager) } out: - g_settings_set_value (priv->input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); + g_settings_set_value (manager->input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); g_strfreev (layouts); g_strfreev (variants); @@ -538,11 +537,10 @@ out: static void get_options_from_xkb_config (GsdKeyboardManager *manager) { - GsdKeyboardManagerPrivate *priv = manager->priv; GVariant *v; gchar **options = NULL; - v = g_dbus_proxy_get_cached_property (priv->localed, "X11Options"); + v = g_dbus_proxy_get_cached_property (manager->localed, "X11Options"); if (v) { const gchar *s = g_variant_get_string (v, NULL); if (*s) @@ -553,7 +551,7 @@ get_options_from_xkb_config (GsdKeyboardManager *manager) if (!options) return; - g_settings_set_strv (priv->input_sources_settings, KEY_KEYBOARD_OPTIONS, (const gchar * const*) options); + g_settings_set_strv (manager->input_sources_settings, KEY_KEYBOARD_OPTIONS, (const gchar * const*) options); g_strfreev (options); } @@ -676,7 +674,7 @@ maybe_create_initial_settings (GsdKeyboardManager *manager) GVariant *sources; gchar **options; - settings = manager->priv->input_sources_settings; + settings = manager->input_sources_settings; if (g_getenv ("RUNNING_UNDER_GDM")) return; @@ -714,7 +712,7 @@ localed_proxy_ready (GObject *source, g_error_free (error); } - manager->priv->localed = proxy; + manager->localed = proxy; maybe_create_initial_settings (manager); } @@ -725,24 +723,24 @@ start_keyboard_idle_cb (GsdKeyboardManager *manager) g_debug ("Starting keyboard manager"); - manager->priv->settings = g_settings_new (GSD_KEYBOARD_DIR); + manager->settings = g_settings_new (GSD_KEYBOARD_DIR); xkb_init (manager); set_devicepresence_handler (manager); - manager->priv->input_sources_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); - g_signal_connect_swapped (manager->priv->input_sources_settings, + manager->input_sources_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); + g_signal_connect_swapped (manager->input_sources_settings, "changed::" KEY_INPUT_SOURCES, G_CALLBACK (update_gtk_im_module), manager); - manager->priv->a11y_settings = g_settings_new (GNOME_A11Y_APPLICATIONS_INTERFACE_DIR); - g_signal_connect_swapped (manager->priv->a11y_settings, + manager->a11y_settings = g_settings_new (GNOME_A11Y_APPLICATIONS_INTERFACE_DIR); + g_signal_connect_swapped (manager->a11y_settings, "changed::" KEY_OSK_ENABLED, G_CALLBACK (update_gtk_im_module), manager); update_gtk_im_module (manager); - manager->priv->cancellable = g_cancellable_new (); + manager->cancellable = g_cancellable_new (); g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, @@ -750,7 +748,7 @@ start_keyboard_idle_cb (GsdKeyboardManager *manager) "org.freedesktop.locale1", "/org/freedesktop/locale1", "org.freedesktop.locale1", - manager->priv->cancellable, + manager->cancellable, localed_proxy_ready, manager); @@ -759,7 +757,7 @@ start_keyboard_idle_cb (GsdKeyboardManager *manager) g_debug ("Started the keyboard plugin, applying all settings"); apply_all_settings (manager); - g_signal_connect (G_OBJECT (manager->priv->settings), "changed", + g_signal_connect (G_OBJECT (manager->settings), "changed", G_CALLBACK (settings_changed), manager); } @@ -767,7 +765,7 @@ start_keyboard_idle_cb (GsdKeyboardManager *manager) gnome_settings_profile_end (NULL); - manager->priv->start_idle_id = 0; + manager->start_idle_id = 0; return FALSE; } @@ -783,8 +781,8 @@ gsd_keyboard_manager_start (GsdKeyboardManager *manager, return TRUE; } - manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_keyboard_idle_cb, manager); - g_source_set_name_by_id (manager->priv->start_idle_id, "[gnome-settings-daemon] start_keyboard_idle_cb"); + manager->start_idle_id = g_idle_add ((GSourceFunc) start_keyboard_idle_cb, manager); + g_source_set_name_by_id (manager->start_idle_id, "[gnome-settings-daemon] start_keyboard_idle_cb"); gnome_settings_profile_end (NULL); @@ -794,22 +792,20 @@ gsd_keyboard_manager_start (GsdKeyboardManager *manager, void gsd_keyboard_manager_stop (GsdKeyboardManager *manager) { - GsdKeyboardManagerPrivate *p = manager->priv; - g_debug ("Stopping keyboard manager"); - g_cancellable_cancel (p->cancellable); - g_clear_object (&p->cancellable); + g_cancellable_cancel (manager->cancellable); + g_clear_object (&manager->cancellable); - g_clear_object (&p->settings); - g_clear_object (&p->input_sources_settings); - g_clear_object (&p->a11y_settings); - g_clear_object (&p->localed); + g_clear_object (&manager->settings); + g_clear_object (&manager->input_sources_settings); + g_clear_object (&manager->a11y_settings); + g_clear_object (&manager->localed); - if (p->device_manager != NULL) { - g_signal_handler_disconnect (p->device_manager, p->device_added_id); - g_signal_handler_disconnect (p->device_manager, p->device_removed_id); - p->device_manager = NULL; + if (manager->device_manager != NULL) { + g_signal_handler_disconnect (manager->device_manager, manager->device_added_id); + g_signal_handler_disconnect (manager->device_manager, manager->device_removed_id); + manager->device_manager = NULL; } remove_xkb_filter (manager); @@ -821,14 +817,11 @@ gsd_keyboard_manager_class_init (GsdKeyboardManagerClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gsd_keyboard_manager_finalize; - - g_type_class_add_private (klass, sizeof (GsdKeyboardManagerPrivate)); } static void gsd_keyboard_manager_init (GsdKeyboardManager *manager) { - manager->priv = GSD_KEYBOARD_MANAGER_GET_PRIVATE (manager); } static void @@ -841,12 +834,12 @@ gsd_keyboard_manager_finalize (GObject *object) keyboard_manager = GSD_KEYBOARD_MANAGER (object); - g_return_if_fail (keyboard_manager->priv != NULL); + g_return_if_fail (keyboard_manager != NULL); gsd_keyboard_manager_stop (keyboard_manager); - if (keyboard_manager->priv->start_idle_id != 0) - g_source_remove (keyboard_manager->priv->start_idle_id); + if (keyboard_manager->start_idle_id != 0) + g_source_remove (keyboard_manager->start_idle_id); G_OBJECT_CLASS (gsd_keyboard_manager_parent_class)->finalize (object); } diff --git a/plugins/keyboard/gsd-keyboard-manager.h b/plugins/keyboard/gsd-keyboard-manager.h index 8efb5007..e498f311 100644 --- a/plugins/keyboard/gsd-keyboard-manager.h +++ b/plugins/keyboard/gsd-keyboard-manager.h @@ -25,26 +25,8 @@ G_BEGIN_DECLS #define GSD_TYPE_KEYBOARD_MANAGER (gsd_keyboard_manager_get_type ()) -#define GSD_KEYBOARD_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_KEYBOARD_MANAGER, GsdKeyboardManager)) -#define GSD_KEYBOARD_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_KEYBOARD_MANAGER, GsdKeyboardManagerClass)) -#define GSD_IS_KEYBOARD_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_KEYBOARD_MANAGER)) -#define GSD_IS_KEYBOARD_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_KEYBOARD_MANAGER)) -#define GSD_KEYBOARD_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_KEYBOARD_MANAGER, GsdKeyboardManagerClass)) - -typedef struct GsdKeyboardManagerPrivate GsdKeyboardManagerPrivate; - -typedef struct -{ - GObject parent; - GsdKeyboardManagerPrivate *priv; -} GsdKeyboardManager; - -typedef struct -{ - GObjectClass parent_class; -} GsdKeyboardManagerClass; - -GType gsd_keyboard_manager_get_type (void); + +G_DECLARE_FINAL_TYPE (GsdKeyboardManager, gsd_keyboard_manager, GSD, KEYBOARD_MANAGER, GObject) GsdKeyboardManager * gsd_keyboard_manager_new (void); gboolean gsd_keyboard_manager_start (GsdKeyboardManager *manager, |