[gnome-photos] view-container: Simplify signal handlers tracking
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] view-container: Simplify signal handlers tracking
- Date: Thu, 27 Jun 2013 13:50:21 +0000 (UTC)
commit 9a9f85dfeffcc8a49162a6d35036ebcc4752749b
Author: Emanuele Aina <emanuele aina collabora com>
Date: Tue Jun 25 14:16:37 2013 +0200
view-container: Simplify signal handlers tracking
Use g_signal_connect_object() to make sure that signals are disconnected
when the toolbar is destroyed and use g_signal_handlers_disconnect_by_func()
otherwise.
This allows us to get rid of all the signal id member fields.
https://bugzilla.gnome.org/show_bug.cgi?id=703054
src/photos-view-container.c | 49 +++++++++++++++----------------------------
1 files changed, 17 insertions(+), 32 deletions(-)
---
diff --git a/src/photos-view-container.c b/src/photos-view-container.c
index 8969346..47baadd 100644
--- a/src/photos-view-container.c
+++ b/src/photos-view-container.c
@@ -52,9 +52,6 @@ struct _PhotosViewContainerPrivate
PhotosTrackerController *trk_cntrlr;
PhotosWindowMode mode;
gboolean disposed;
- gulong adjustment_changed_id;
- gulong adjustment_value_id;
- gulong scrollbar_visible_id;
};
enum
@@ -109,20 +106,23 @@ photos_view_container_connect_view (PhotosViewContainer *self)
GtkWidget *vscrollbar;
vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->view));
- priv->adjustment_changed_id = g_signal_connect_swapped (vadjustment,
- "changed",
- G_CALLBACK (photos_view_container_view_changed),
- self);
- priv->adjustment_value_id = g_signal_connect_swapped (vadjustment,
- "value-changed",
- G_CALLBACK (photos_view_container_view_changed),
- self);
+ g_signal_connect_object (vadjustment,
+ "changed",
+ G_CALLBACK (photos_view_container_view_changed),
+ self,
+ G_CONNECT_SWAPPED);
+ g_signal_connect_object (vadjustment,
+ "value-changed",
+ G_CALLBACK (photos_view_container_view_changed),
+ self,
+ G_CONNECT_SWAPPED);
vscrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (priv->view));
- priv->scrollbar_visible_id = g_signal_connect_swapped (vscrollbar,
- "notify::visible",
- G_CALLBACK (photos_view_container_view_changed),
- self);
+ g_signal_connect_object (vscrollbar,
+ "notify::visible",
+ G_CALLBACK (photos_view_container_view_changed),
+ self,
+ G_CONNECT_SWAPPED);
photos_view_container_view_changed (self);
}
@@ -138,23 +138,8 @@ photos_view_container_disconnect_view (PhotosViewContainer *self)
vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->view));
vscrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (priv->view));
- if (priv->adjustment_changed_id != 0)
- {
- g_signal_handler_disconnect (vadjustment, priv->adjustment_changed_id);
- priv->adjustment_changed_id = 0;
- }
-
- if (priv->adjustment_value_id != 0)
- {
- g_signal_handler_disconnect (vadjustment, priv->adjustment_value_id);
- priv->adjustment_value_id = 0;
- }
-
- if (priv->scrollbar_visible_id != 0)
- {
- g_signal_handler_disconnect (vscrollbar, priv->scrollbar_visible_id);
- priv->scrollbar_visible_id = 0;
- }
+ g_signal_handlers_disconnect_by_func (vadjustment, photos_view_container_view_changed, self);
+ g_signal_handlers_disconnect_by_func (vscrollbar, photos_view_container_view_changed, self);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]