[bijiben] noteView: also disconnect when note is trashed
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] noteView: also disconnect when note is trashed
- Date: Sat, 1 Mar 2014 22:08:09 +0000 (UTC)
commit 85512bd86d5444333bdd470fc67d2d902fa04efd
Author: Pierre-Yves Luyten <py luyten fr>
Date: Sat Mar 1 23:02:48 2014 +0100
noteView: also disconnect when note is trashed
Now there are two signals, we need to listen to both
src/bjb-note-view.c | 47 ++++++++++++++++++++++-------------------------
1 files changed, 22 insertions(+), 25 deletions(-)
---
diff --git a/src/bjb-note-view.c b/src/bjb-note-view.c
index 443f9c0..0d6963d 100644
--- a/src/bjb-note-view.c
+++ b/src/bjb-note-view.c
@@ -59,37 +59,33 @@ struct _BjbNoteViewPrivate {
ClutterActor *last_update;
ClutterColor *last_date_bckgrd_clr;
-
- /* Signals */
- gulong destroy ;
- gulong trashed ;
- gulong color;
};
-static void
-bjb_note_view_disconnect (BjbNoteViewPrivate *priv)
-{
- if (priv->destroy != 0)
- g_signal_handler_disconnect (priv->window, priv->destroy);
- if (priv->trashed != 0)
- g_signal_handler_disconnect (priv->note, priv->trashed);
+static void on_window_closed(GtkWidget *window,gpointer note);
+static gboolean on_note_trashed (BijiNoteObj *note, BjbNoteView *view);
+static void copy_note_color_to_last_updated_background (BjbNoteView *self);
- if (priv->color != 0)
- g_signal_handler_disconnect (priv->note, priv->color);
- priv->destroy = 0,
- priv->trashed = 0;
- priv->color =0;
+static void
+bjb_note_view_disconnect (BjbNoteView *self)
+{
+ BjbNoteViewPrivate *priv;
+
+ priv = self->priv;
+ g_signal_handlers_disconnect_by_func (priv->window, on_window_closed, priv->note);
+ g_signal_handlers_disconnect_by_func (priv->note, on_note_trashed, self);
+ g_signal_handlers_disconnect_by_func (priv->note, copy_note_color_to_last_updated_background, self);
}
+
static void
bjb_note_view_finalize(GObject *object)
{
BjbNoteView *self = BJB_NOTE_VIEW (object) ;
BjbNoteViewPrivate *priv = self->priv;
- bjb_note_view_disconnect (priv);
+ bjb_note_view_disconnect (self);
g_clear_object (&priv->view);
clutter_color_free (priv->last_date_bckgrd_clr);
@@ -173,7 +169,7 @@ just_switch_to_main_view(BjbNoteView *self)
GtkWindow *window;
/* Avoid stupid crash */
- bjb_note_view_disconnect (self->priv);
+ bjb_note_view_disconnect (self);
window = GTK_WINDOW(self->priv->window);
bjb_window_base_switch_to (BJB_WINDOW_BASE (window),
@@ -268,12 +264,13 @@ bjb_note_view_constructed (GObject *obj)
priv->view = biji_note_obj_open (priv->note);
- priv->trashed = g_signal_connect(priv->note,"deleted",
- G_CALLBACK(on_note_trashed),self);
+ g_signal_connect(priv->note,"deleted",
+ G_CALLBACK(on_note_trashed),self);
+ g_signal_connect(priv->note,"trashed",
+ G_CALLBACK(on_note_trashed),self);
- priv->destroy = g_signal_connect(priv->window,"destroy",
- G_CALLBACK(on_window_closed),
- priv->note);
+ g_signal_connect(priv->window,"destroy",
+ G_CALLBACK(on_window_closed), priv->note);
/* Start packing ui */
gtk_container_add (GTK_CONTAINER (priv->parent), GTK_WIDGET (self));
@@ -356,7 +353,7 @@ bjb_note_view_constructed (GObject *obj)
clutter_actor_add_constraint (priv->last_update, constraint);
copy_note_color_to_last_updated_background (self);
- priv->color = g_signal_connect_swapped (priv->note, "color-changed",
+ g_signal_connect_swapped (priv->note, "color-changed",
G_CALLBACK (copy_note_color_to_last_updated_background), self);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]