[gnome-control-center] region: Use g_signal_connect_object for all signal handlers
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] region: Use g_signal_connect_object for all signal handlers
- Date: Mon, 5 Nov 2018 11:12:16 +0000 (UTC)
commit 4f6e897b58f098ec2edb2d79d58a8bd5814a7f9b
Author: Robert Ancell <robert ancell canonical com>
Date: Tue Oct 9 09:40:50 2018 +1300
region: Use g_signal_connect_object for all signal handlers
This ensures they wont be called when the handling object is destroyed.
Also connect all in "swapped" form for improved readability.
panels/region/cc-format-chooser.c | 24 +++++++--------
panels/region/cc-region-panel.c | 62 +++++++++++++++++++--------------------
2 files changed, 41 insertions(+), 45 deletions(-)
---
diff --git a/panels/region/cc-format-chooser.c b/panels/region/cc-format-chooser.c
index 6b10bec6a..56ba6e16d 100644
--- a/panels/region/cc-format-chooser.c
+++ b/panels/region/cc-format-chooser.c
@@ -417,9 +417,8 @@ show_more (CcFormatChooser *chooser)
}
static void
-row_activated (GtkListBox *box,
- GtkListBoxRow *row,
- CcFormatChooser *chooser)
+row_activated (CcFormatChooser *chooser,
+ GtkListBoxRow *row)
{
const gchar *new_locale_id;
@@ -444,13 +443,12 @@ row_activated (GtkListBox *box,
}
static void
-activate_default (GtkWindow *window,
- CcFormatChooser *chooser)
+activate_default (CcFormatChooser *chooser)
{
GtkWidget *focus;
const gchar *locale_id;
- focus = gtk_window_get_focus (window);
+ focus = gtk_window_get_focus (GTK_WINDOW (chooser));
if (!focus)
return;
@@ -458,7 +456,7 @@ activate_default (GtkWindow *window,
if (g_strcmp0 (locale_id, chooser->region) == 0)
return;
- g_signal_stop_emission_by_name (window, "activate-default");
+ g_signal_stop_emission_by_name (chooser, "activate-default");
gtk_widget_activate (focus);
}
@@ -517,16 +515,16 @@ cc_format_chooser_init (CcFormatChooser *chooser)
add_all_regions (chooser);
- g_signal_connect_swapped (chooser->region_filter_entry, "search-changed",
- G_CALLBACK (filter_changed), chooser);
+ g_signal_connect_object (chooser->region_filter_entry, "search-changed",
+ G_CALLBACK (filter_changed), chooser, G_CONNECT_SWAPPED);
- g_signal_connect (chooser->region_listbox, "row-activated",
- G_CALLBACK (row_activated), chooser);
+ g_signal_connect_object (chooser->region_listbox, "row-activated",
+ G_CALLBACK (row_activated), chooser, G_CONNECT_SWAPPED);
gtk_list_box_invalidate_filter (GTK_LIST_BOX (chooser->region_listbox));
- g_signal_connect (chooser, "activate-default",
- G_CALLBACK (activate_default), chooser);
+ g_signal_connect_object (chooser, "activate-default",
+ G_CALLBACK (activate_default), chooser, G_CONNECT_SWAPPED);
}
CcFormatChooser *
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 5c9cb50fd..c98bb3eb0 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -376,9 +376,9 @@ update_language (CcRegionPanel *self,
}
static void
-language_response (CcLanguageChooser *chooser,
+language_response (CcRegionPanel *self,
gint response_id,
- CcRegionPanel *self)
+ CcLanguageChooser *chooser)
{
const gchar *language;
@@ -420,9 +420,9 @@ update_region (CcRegionPanel *self,
}
static void
-format_response (CcFormatChooser *chooser,
+format_response (CcRegionPanel *self,
gint response_id,
- CcRegionPanel *self)
+ CcFormatChooser *chooser)
{
const gchar *region;
@@ -451,8 +451,8 @@ show_language_chooser (CcRegionPanel *self)
chooser = cc_language_chooser_new ();
gtk_window_set_transient_for (GTK_WINDOW (chooser), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET
(self))));
cc_language_chooser_set_language (chooser, get_effective_language (self));
- g_signal_connect (chooser, "response",
- G_CALLBACK (language_response), self);
+ g_signal_connect_object (chooser, "response",
+ G_CALLBACK (language_response), self, G_CONNECT_SWAPPED);
gtk_window_present (GTK_WINDOW (chooser));
}
@@ -483,8 +483,8 @@ show_region_chooser (CcRegionPanel *self)
chooser = cc_format_chooser_new ();
gtk_window_set_transient_for (GTK_WINDOW (chooser), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET
(self))));
cc_format_chooser_set_region (chooser, get_effective_region (self));
- g_signal_connect (chooser, "response",
- G_CALLBACK (format_response), self);
+ g_signal_connect_object (chooser, "response",
+ G_CALLBACK (format_response), self, G_CONNECT_SWAPPED);
gtk_window_present (GTK_WINDOW (chooser));
}
@@ -606,22 +606,22 @@ static void
setup_language_section (CcRegionPanel *self)
{
self->user = act_user_manager_get_user_by_id (self->user_manager, getuid ());
- g_signal_connect_swapped (self->user, "notify::language",
- G_CALLBACK (update_language_from_user), self);
- g_signal_connect_swapped (self->user, "notify::is-loaded",
- G_CALLBACK (update_language_from_user), self);
+ g_signal_connect_object (self->user, "notify::language",
+ G_CALLBACK (update_language_from_user), self, G_CONNECT_SWAPPED);
+ g_signal_connect_object (self->user, "notify::is-loaded",
+ G_CALLBACK (update_language_from_user), self, G_CONNECT_SWAPPED);
self->locale_settings = g_settings_new (GNOME_SYSTEM_LOCALE_DIR);
- g_signal_connect_swapped (self->locale_settings, "changed::" KEY_REGION,
- G_CALLBACK (update_region_from_setting), self);
+ g_signal_connect_object (self->locale_settings, "changed::" KEY_REGION,
+ G_CALLBACK (update_region_from_setting), self, G_CONNECT_SWAPPED);
gtk_list_box_set_selection_mode (self->language_list,
GTK_SELECTION_NONE);
gtk_list_box_set_header_func (self->language_list,
cc_list_box_update_header_func,
NULL, NULL);
- g_signal_connect_swapped (self->language_list, "row-activated",
- G_CALLBACK (activate_language_row), self);
+ g_signal_connect_object (self->language_list, "row-activated",
+ G_CALLBACK (activate_language_row), self, G_CONNECT_SWAPPED);
update_language_from_user (self);
update_region_from_setting (self);
@@ -812,9 +812,8 @@ get_row_by_source (CcRegionPanel *self, CcInputSource *source)
}
static void
-input_sources_changed (GSettings *settings,
- const gchar *key,
- CcRegionPanel *self)
+input_sources_changed (CcRegionPanel *self,
+ const gchar *key)
{
CcInputRow *selected;
g_autoptr(CcInputSource) source = NULL;
@@ -1257,8 +1256,8 @@ setup_input_section (CcRegionPanel *self)
g_signal_connect_object (self->input_list, "row-selected",
G_CALLBACK (update_buttons), self, G_CONNECT_SWAPPED);
- g_signal_connect (self->input_settings, "changed::" KEY_INPUT_SOURCES,
- G_CALLBACK (input_sources_changed), self);
+ g_signal_connect_object (self->input_settings, "changed::" KEY_INPUT_SOURCES,
+ G_CALLBACK (input_sources_changed), self, G_CONNECT_SWAPPED);
add_input_sources_from_settings (self);
update_buttons (self);
@@ -1282,14 +1281,13 @@ setup_input_section (CcRegionPanel *self)
}
static void
-on_localed_properties_changed (GDBusProxy *proxy,
+on_localed_properties_changed (CcRegionPanel *self,
GVariant *changed_properties,
- const gchar **invalidated_properties,
- CcRegionPanel *self)
+ const gchar **invalidated_properties)
{
g_autoptr(GVariant) v = NULL;
- v = g_dbus_proxy_get_cached_property (proxy, "Locale");
+ v = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (self->localed), "Locale");
if (v) {
g_autofree const gchar **strv = NULL;
gsize len;
@@ -1463,9 +1461,9 @@ localed_proxy_ready (GObject *source,
gtk_widget_set_sensitive (GTK_WIDGET (self->login_button), TRUE);
- g_signal_connect (self->localed, "g-properties-changed",
- G_CALLBACK (on_localed_properties_changed), self);
- on_localed_properties_changed (self->localed, NULL, NULL, self);
+ g_signal_connect_object (self->localed, "g-properties-changed",
+ G_CALLBACK (on_localed_properties_changed), self, G_CONNECT_SWAPPED);
+ on_localed_properties_changed (self, NULL, NULL);
}
static void
@@ -1542,15 +1540,15 @@ setup_login_button (CcRegionPanel *self)
gtk_widget_set_valign (GTK_WIDGET (self->login_button), GTK_ALIGN_CENTER);
gtk_widget_set_visible (GTK_WIDGET (self->login_button), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (self->login_button), FALSE);
- g_signal_connect_swapped (self->login_button, "notify::active",
- G_CALLBACK (login_changed), self);
+ g_signal_connect_object (self->login_button, "notify::active",
+ G_CALLBACK (login_changed), self, G_CONNECT_SWAPPED);
g_object_get (self->user_manager, "is-loaded", &loaded, NULL);
if (loaded)
set_login_button_visibility (self);
else
- g_signal_connect_swapped (self->user_manager, "notify::is-loaded",
- G_CALLBACK (set_login_button_visibility), self);
+ g_signal_connect_object (self->user_manager, "notify::is-loaded",
+ G_CALLBACK (set_login_button_visibility), self, G_CONNECT_SWAPPED);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]