From c2a83bb51b890a08d07ca71867573019aa33e283 Mon Sep 17 00:00:00 2001 From: Monsta Date: Thu, 19 Mar 2015 13:47:25 +0300 Subject: first connect to settings, then read them. fixes the issue with GLib >= 2.43, https://git.gnome.org/browse/glib/commit/?id=8ff5668a458344da22d30491e3ce726d861b3619 Closes https://github.com/mate-desktop/mate-media/pull/58 --- gst-mixer-applet/applet.c | 12 ++++++------ gst-mixer/src/preferences.c | 4 ++-- gst-mixer/src/window.c | 9 ++++----- sound-theme/gvc-sound-theme-chooser.c | 18 +++++++++--------- sound-theme/gvc-sound-theme-editor.c | 19 +++++++++---------- 5 files changed, 30 insertions(+), 32 deletions(-) diff --git a/gst-mixer-applet/applet.c b/gst-mixer-applet/applet.c index 377ed8e..1dddef7 100644 --- a/gst-mixer-applet/applet.c +++ b/gst-mixer-applet/applet.c @@ -422,6 +422,12 @@ mate_volume_applet_setup (MateVolumeApplet *applet, GstMixerTrack *first_track; gboolean res; + /* gsettings */ + g_signal_connect (applet->settings, "changed::" MATE_VOLUME_APPLET_KEY_ACTIVE_ELEMENT, + G_CALLBACK (cb_gsettings), applet); + g_signal_connect (applet->settings, "changed::" MATE_VOLUME_APPLET_KEY_ACTIVE_TRACK, + G_CALLBACK (cb_gsettings), applet); + active_element_name = g_settings_get_string (applet->settings, MATE_VOLUME_APPLET_KEY_ACTIVE_ELEMENT); @@ -474,12 +480,6 @@ mate_volume_applet_setup (MateVolumeApplet *applet, mate_volume_applet_refresh (applet, TRUE, -1, -1); if (res) { mate_volume_applet_setup_timeout (applet); - - /* gsettings */ - g_signal_connect (applet->settings, "changed::" MATE_VOLUME_APPLET_KEY_ACTIVE_ELEMENT, - G_CALLBACK (cb_gsettings), applet); - g_signal_connect (applet->settings, "changed::" MATE_VOLUME_APPLET_KEY_ACTIVE_TRACK, - G_CALLBACK (cb_gsettings), applet); } gtk_widget_show (GTK_WIDGET (applet)); diff --git a/gst-mixer/src/preferences.c b/gst-mixer/src/preferences.c index 76fbcf9..99556cf 100644 --- a/gst-mixer/src/preferences.c +++ b/gst-mixer/src/preferences.c @@ -191,12 +191,12 @@ mate_volume_control_preferences_new (GstElement *element) prefs = g_object_new (MATE_VOLUME_CONTROL_TYPE_PREFERENCES, NULL); prefs->settings = g_settings_new (MATE_VOLUME_CONTROL_SCHEMA); - mate_volume_control_preferences_change (prefs, element); - /* gsettings */ g_signal_connect (prefs->settings, "changed::" MATE_VOLUME_CONTROL_KEY_SHOWN_ELEMENTS, G_CALLBACK (cb_gsettings), prefs); + mate_volume_control_preferences_change (prefs, element); + return GTK_WIDGET (prefs); } diff --git a/gst-mixer/src/window.c b/gst-mixer/src/window.c index 58188c6..b179afa 100644 --- a/gst-mixer/src/window.c +++ b/gst-mixer/src/window.c @@ -265,6 +265,10 @@ mate_volume_control_window_init (MateVolumeControlWindow *win) g_set_application_name (_("Volume Control")); gtk_window_set_title (GTK_WINDOW (win), _("Volume Control")); + /* gsettings */ + g_signal_connect (win->settings, "changed::" MATE_VOLUME_CONTROL_KEY_ACTIVE_ELEMENT, + G_CALLBACK (cb_gsettings_active_element), win); + /* To set the window according to previous geometry */ width = g_settings_get_int (win->settings, MATE_VOLUME_CONTROL_KEY_WINDOW_WIDTH); if (width < 250) @@ -358,11 +362,6 @@ mate_volume_control_window_new (GList *elements) gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), active_element_num); g_signal_connect (combo_box, "changed", G_CALLBACK (cb_change), win); - - /* gsettings */ - g_signal_connect (win->settings, "changed::" MATE_VOLUME_CONTROL_KEY_ACTIVE_ELEMENT, - G_CALLBACK (cb_gsettings_active_element), win); - win->use_default_mixer = (active_el_str == NULL); /* add the combo box to choose the device */ diff --git a/sound-theme/gvc-sound-theme-chooser.c b/sound-theme/gvc-sound-theme-chooser.c index 75beed6..77ae932 100644 --- a/sound-theme/gvc-sound-theme-chooser.c +++ b/sound-theme/gvc-sound-theme-chooser.c @@ -1083,6 +1083,15 @@ gvc_sound_theme_chooser_init (GvcSoundThemeChooser *chooser) chooser->priv->sound_settings = g_settings_new (KEY_SOUNDS_SCHEMA); chooser->priv->marco_settings = g_settings_new (KEY_MARCO_SCHEMA); + g_signal_connect (chooser->priv->sound_settings, + "changed", + G_CALLBACK (on_key_changed), + chooser); + g_signal_connect (chooser->priv->marco_settings, + "changed::" AUDIO_BELL_KEY, + G_CALLBACK (on_key_changed), + chooser); + str = g_strdup_printf ("%s", _("C_hoose an alert sound:")); chooser->priv->selection_box = box = gtk_frame_new (str); g_free (str); @@ -1125,15 +1134,6 @@ gvc_sound_theme_chooser_init (GvcSoundThemeChooser *chooser) G_CALLBACK (on_click_feedback_toggled), chooser); - g_signal_connect (chooser->priv->sound_settings, - "changed", - G_CALLBACK (on_key_changed), - chooser); - g_signal_connect (chooser->priv->marco_settings, - "changed::" AUDIO_BELL_KEY, - G_CALLBACK (on_key_changed), - chooser); - /* FIXME: should accept drag and drop themes. should also add an "Add Theme..." item to the theme combobox */ } diff --git a/sound-theme/gvc-sound-theme-editor.c b/sound-theme/gvc-sound-theme-editor.c index 3c8cebf..08e0b37 100644 --- a/sound-theme/gvc-sound-theme-editor.c +++ b/sound-theme/gvc-sound-theme-editor.c @@ -1282,10 +1282,18 @@ gvc_sound_theme_editor_init (GvcSoundThemeEditor *editor) editor->priv->combo_box = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (editor->priv->theme_box), editor->priv->combo_box, FALSE, FALSE, 0); - editor->priv->sound_settings = g_settings_new (KEY_SOUNDS_SCHEMA); editor->priv->marco_settings = g_settings_new (KEY_MARCO_SCHEMA); + g_signal_connect (editor->priv->sound_settings, + "changed", + G_CALLBACK (on_key_changed), + editor); + g_signal_connect (editor->priv->marco_settings, + "changed::" AUDIO_BELL_KEY, + G_CALLBACK (on_key_changed), + editor); + editor->priv->selection_box = box = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (editor), box, TRUE, TRUE, 0); @@ -1317,15 +1325,6 @@ gvc_sound_theme_editor_init (GvcSoundThemeEditor *editor) G_CALLBACK (on_click_feedback_toggled), editor); - g_signal_connect (editor->priv->sound_settings, - "changed", - G_CALLBACK (on_key_changed), - editor); - g_signal_connect (editor->priv->marco_settings, - "changed::" AUDIO_BELL_KEY, - G_CALLBACK (on_key_changed), - editor); - /* FIXME: should accept drag and drop themes. should also add an "Add Theme..." item to the theme combobox */ } -- cgit v1.2.1