[Xfce4-commits] <parole:bluesabre/gtk3> Fix settings-dialog crashing on close

Sean Davis noreply at xfce.org
Sun Sep 8 19:26:01 CEST 2013


Updating branch refs/heads/bluesabre/gtk3
         to 0e4103763f45c0930d8d12664713f7ae3d72442c (commit)
       from 8c440ac6f3f1a9740ba2f2379fd18fa19844b1f8 (commit)

commit 0e4103763f45c0930d8d12664713f7ae3d72442c
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sun Sep 8 13:24:58 2013 -0400

    Fix settings-dialog crashing on close

 src/parole-conf-dialog.c |    5 +++--
 src/parole-player.c      |    9 ++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/parole-conf-dialog.c b/src/parole-conf-dialog.c
index ed0741b..27bf5df 100644
--- a/src/parole-conf-dialog.c
+++ b/src/parole-conf-dialog.c
@@ -136,8 +136,7 @@ G_DEFINE_TYPE (ParoleConfDialog, parole_conf_dialog, G_TYPE_OBJECT)
 static void 
 parole_conf_dialog_destroy (GtkWidget *widget, ParoleConfDialog *self)
 {
-    gtk_widget_destroy (widget);
-    g_object_unref (self);
+    gtk_widget_hide(widget);
 }
 
 /* Replace the playlist with newly opened files */
@@ -640,6 +639,8 @@ void parole_conf_dialog_open (ParoleConfDialog *self, GtkWidget *parent)
     switch_widget = GTK_WIDGET (gtk_builder_get_object (builder, "enable-subtitle"));
     g_signal_connect(G_OBJECT(switch_widget), "notify::active", G_CALLBACK(parole_conf_dialog_enable_subtitle_changed_cb), self);
     
+    g_signal_connect(G_OBJECT(dialog), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL);
+    
     gtk_builder_connect_signals (builder, self);
     
     g_object_unref (builder);
diff --git a/src/parole-player.c b/src/parole-player.c
index f1b274b..9fe2f20 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -318,6 +318,8 @@ struct ParolePlayerPrivate
     ParoleButton       *button;
 #endif
 
+    ParoleConfDialog   *settings_dialog;
+
     XfceSMClient       *sm_client;
     gchar              *client_id;
     
@@ -2188,11 +2190,7 @@ parole_player_media_menu_select_cb (GtkMenuItem *widget, ParolePlayer *player)
 
 void parole_player_open_preferences_cb  (GtkWidget *widget, ParolePlayer *player)
 {
-    ParoleConfDialog *dialog;
-    
-    dialog = parole_conf_dialog_new ();
-    
-    parole_conf_dialog_open (dialog, player->priv->window);
+    parole_conf_dialog_open (player->priv->settings_dialog, player->priv->window);
 }
 
 void
@@ -2914,6 +2912,7 @@ parole_player_init (ParolePlayer *player)
     builder = parole_builder_get_main_interface ();
     
     player->priv->conf = parole_conf_new ();
+    player->priv->settings_dialog = parole_conf_dialog_new();
     
     g_signal_connect_swapped (player->priv->conf, "notify::reset-saver",
             G_CALLBACK (parole_player_reset_saver_changed_cb), player);


More information about the Xfce4-commits mailing list