[brasero] Ensure harder that some signals get disconnected when switching sessions
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [brasero] Ensure harder that some signals get disconnected when switching sessions
- Date: Fri, 4 Sep 2009 18:16:49 +0000 (UTC)
commit 4a9f6a4d1583a649f9c778959adb55d3e8942a11
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Fri Sep 4 12:52:24 2009 +0200
Ensure harder that some signals get disconnected when switching sessions
src/brasero-audio-disc.c | 20 ++++++++++++--------
src/brasero-video-disc.c | 19 +++++++++++--------
2 files changed, 23 insertions(+), 16 deletions(-)
---
diff --git a/src/brasero-audio-disc.c b/src/brasero-audio-disc.c
index ea370f7..8907ce6 100644
--- a/src/brasero-audio-disc.c
+++ b/src/brasero-audio-disc.c
@@ -991,6 +991,7 @@ brasero_audio_disc_set_session_contents (BraseroDisc *disc,
BraseroBurnSession *session)
{
BraseroAudioDisc *audio;
+ GtkTreeModel *current_model;
BraseroVideoTreeModel *model;
audio = BRASERO_AUDIO_DISC (disc);
@@ -1001,16 +1002,19 @@ brasero_audio_disc_set_session_contents (BraseroDisc *disc,
if (audio->priv->add_playlist)
brasero_io_cancel_by_base (audio->priv->add_playlist);
- if (!session) {
- GtkTreeModel *model;
- BraseroSessionCfg *session;
+ /* disconnect some signals */
+ current_model = gtk_tree_view_get_model (GTK_TREE_VIEW (audio->priv->tree));
+ if (current_model) {
+ BraseroSessionCfg *current_session;
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (audio->priv->tree));
- session = brasero_video_tree_model_get_session (BRASERO_VIDEO_TREE_MODEL (model));
- g_signal_handlers_disconnect_by_func (session,
- brasero_audio_disc_session_changed,
- disc);
+ current_session = brasero_video_tree_model_get_session (BRASERO_VIDEO_TREE_MODEL (current_model));
+ if (current_session)
+ g_signal_handlers_disconnect_by_func (current_session,
+ brasero_audio_disc_session_changed,
+ disc);
+ }
+ if (!session) {
gtk_tree_view_set_model (GTK_TREE_VIEW (audio->priv->tree), NULL);
return BRASERO_DISC_OK;
}
diff --git a/src/brasero-video-disc.c b/src/brasero-video-disc.c
index 776b478..9676921 100644
--- a/src/brasero-video-disc.c
+++ b/src/brasero-video-disc.c
@@ -1324,6 +1324,7 @@ brasero_video_disc_set_session_contents (BraseroDisc *self,
BraseroBurnSession *session)
{
BraseroVideoTreeModel *model;
+ GtkTreeModel *current_model;
BraseroVideoDiscPrivate *priv;
priv = BRASERO_VIDEO_DISC_PRIVATE (self);
@@ -1331,16 +1332,18 @@ brasero_video_disc_set_session_contents (BraseroDisc *self,
if (priv->load_dir)
brasero_io_cancel_by_base (priv->load_dir);
- if (!session) {
- GtkTreeModel *model;
- BraseroSessionCfg *session;
+ current_model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->tree));
+ if (current_model) {
+ BraseroSessionCfg *current_session;
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->tree));
- session = brasero_video_tree_model_get_session (BRASERO_VIDEO_TREE_MODEL (model));
- g_signal_handlers_disconnect_by_func (session,
- brasero_video_disc_session_changed,
- self);
+ current_session = brasero_video_tree_model_get_session (BRASERO_VIDEO_TREE_MODEL (current_model));
+ if (current_session)
+ g_signal_handlers_disconnect_by_func (current_session,
+ brasero_video_disc_session_changed,
+ self);
+ }
+ if (!session) {
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree), NULL);
return BRASERO_DISC_OK;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]