summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkviewpanel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkext/gtkviewpanel.c')
-rw-r--r--src/gtkext/gtkviewpanel.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/gtkext/gtkviewpanel.c b/src/gtkext/gtkviewpanel.c
index 3c9ef6b..a3bf747 100644
--- a/src/gtkext/gtkviewpanel.c
+++ b/src/gtkext/gtkviewpanel.c
@@ -125,14 +125,23 @@ static void gtk_view_panel_init(GtkViewPanel *panel)
static void gtk_view_panel_set_scroll_adjustments(GtkViewPanel *panel, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment)
{
+ /* TODO : déconnecter les anciens ? */
+
panel->hadjustment = hadjustment;
panel->vadjustment = vadjustment;
- g_signal_connect(hadjustment, "value_changed",
- G_CALLBACK(gtk_view_panel_adj_value_changed), panel);
+ /**
+ * On vérifie que le support n'est pas en train de nous libérer,
+ * avant de se connecter...
+ */
+
+ if (hadjustment != NULL)
+ g_signal_connect(hadjustment, "value_changed",
+ G_CALLBACK(gtk_view_panel_adj_value_changed), panel);
- g_signal_connect(vadjustment, "value_changed",
- G_CALLBACK(gtk_view_panel_adj_value_changed), panel);
+ if (vadjustment != NULL)
+ g_signal_connect(vadjustment, "value_changed",
+ G_CALLBACK(gtk_view_panel_adj_value_changed), panel);
}