summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkdockitem.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2009-09-13 23:11:24 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2009-09-13 23:11:24 (GMT)
commit1c4da24a1d4b96d58fee08e2be21198b22e7eef6 (patch)
treea0723bd1948395413fa5a7a37a9405567e32c015 /src/gtkext/gtkdockitem.c
parent18134387d5cb025703af8e1d07e0152784e31efc (diff)
Improved the editor window refreshing when several binaries are loaded.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@114 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkdockitem.c')
-rw-r--r--src/gtkext/gtkdockitem.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/gtkext/gtkdockitem.c b/src/gtkext/gtkdockitem.c
index fcef31d..89d606c 100644
--- a/src/gtkext/gtkdockitem.c
+++ b/src/gtkext/gtkdockitem.c
@@ -24,13 +24,15 @@
#include "gtkdockitem.h"
+#include "iodamarshal.h"
+
+
/* Détermine le type d'un panneau dockable. */
G_DEFINE_TYPE(GtkDockItem, gtk_dock_item, GTK_TYPE_OBJECT)
-
/******************************************************************************
* *
* Paramètres : class = classe GTK à initialiser. *
@@ -45,7 +47,13 @@ G_DEFINE_TYPE(GtkDockItem, gtk_dock_item, GTK_TYPE_OBJECT)
static void gtk_dock_item_class_init(GtkDockItemClass *class)
{
-
+ g_signal_new("content-changed",
+ GTK_TYPE_DOCK_ITEM,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(GtkDockItemClass, content_changed),
+ NULL, NULL,
+ g_cclosure_user_marshal_VOID__OBJECT_OBJECT,
+ G_TYPE_NONE, 2, GTK_TYPE_WIDGET, GTK_TYPE_WIDGET);
}
@@ -204,12 +212,19 @@ const gchar *gtk_dock_item_get_desc(GtkDockItem *ditem)
void gtk_dock_item_set_panel(GtkDockItem *ditem, GtkWidget *panel)
{
- if (ditem->panel != NULL)
- gtk_widget_unref(ditem->panel);
+ GtkWidget *old; /* Ancien panneau remplacé */
+
+ old = ditem->panel;
ditem->panel = panel;
gtk_widget_ref(panel);
+ if (old != NULL)
+ {
+ g_signal_emit_by_name(ditem, "content-changed", old, panel);
+ gtk_widget_unref(old);
+ }
+
}