mirror of https://github.com/GNOME/gimp.git
app: Move title invalidation from GimpMenuDock to GimpDock base class
Move title invalidation from GimpMenuDock to GimpDock base class so that title invalidation works properly also for the GimpToolbox.
This commit is contained in:
parent
ea666d178b
commit
33dbcf210e
|
@ -77,6 +77,7 @@ static void gimp_dock_real_book_added (GimpDock *dock,
|
|||
GimpDockbook *dockbook);
|
||||
static void gimp_dock_real_book_removed (GimpDock *dock,
|
||||
GimpDockbook *dockbook);
|
||||
static void gimp_dock_invalidate_title (GimpDock *dock);
|
||||
static gboolean gimp_dock_dropped_cb (GtkWidget *source,
|
||||
gint insert_index,
|
||||
gpointer data);
|
||||
|
@ -292,6 +293,14 @@ gimp_dock_real_book_removed (GimpDock *dock,
|
|||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_dock_invalidate_title (GimpDock *dock)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_DOCK (dock));
|
||||
|
||||
g_signal_emit (dock, dock_signals[TITLE_INVALIDATED], 0);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gimp_dock_dropped_cb (GtkWidget *source,
|
||||
gint insert_index,
|
||||
|
@ -369,14 +378,6 @@ gimp_dock_get_title (GimpDock *dock)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dock_invalidate_title (GimpDock *dock)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_DOCK (dock));
|
||||
|
||||
g_signal_emit (dock, dock_signals[TITLE_INVALIDATED], 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_dock_set_host_geometry_hints:
|
||||
* @dock: The dock
|
||||
|
@ -617,12 +618,24 @@ gimp_dock_add_book (GimpDock *dock,
|
|||
|
||||
gimp_dockbook_set_dock (dockbook, dock);
|
||||
|
||||
g_signal_connect_object (dockbook, "dockable-added",
|
||||
G_CALLBACK (gimp_dock_invalidate_title),
|
||||
dock, G_CONNECT_SWAPPED);
|
||||
g_signal_connect_object (dockbook, "dockable-removed",
|
||||
G_CALLBACK (gimp_dock_invalidate_title),
|
||||
dock, G_CONNECT_SWAPPED);
|
||||
g_signal_connect_object (dockbook, "dockable-reordered",
|
||||
G_CALLBACK (gimp_dock_invalidate_title),
|
||||
dock, G_CONNECT_SWAPPED);
|
||||
|
||||
dock->p->dockbooks = g_list_insert (dock->p->dockbooks, dockbook, index);
|
||||
gimp_paned_box_add_widget (GIMP_PANED_BOX (dock->p->paned_vbox),
|
||||
GTK_WIDGET (dockbook),
|
||||
index);
|
||||
gtk_widget_show (GTK_WIDGET (dockbook));
|
||||
|
||||
gimp_dock_invalidate_title (dock);
|
||||
|
||||
g_signal_emit (dock, dock_signals[BOOK_ADDED], 0, dockbook);
|
||||
}
|
||||
|
||||
|
@ -636,6 +649,10 @@ gimp_dock_remove_book (GimpDock *dock,
|
|||
|
||||
gimp_dockbook_set_dock (dockbook, NULL);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (dockbook,
|
||||
gimp_dock_invalidate_title,
|
||||
dock);
|
||||
|
||||
/* Ref the dockbook so we can emit the "book-removed" signal and
|
||||
* pass it as a parameter before it's destroyed
|
||||
*/
|
||||
|
@ -645,6 +662,8 @@ gimp_dock_remove_book (GimpDock *dock,
|
|||
gimp_paned_box_remove_widget (GIMP_PANED_BOX (dock->p->paned_vbox),
|
||||
GTK_WIDGET (dockbook));
|
||||
|
||||
gimp_dock_invalidate_title (dock);
|
||||
|
||||
g_signal_emit (dock, dock_signals[BOOK_REMOVED], 0, dockbook);
|
||||
|
||||
g_object_unref (dockbook);
|
||||
|
|
|
@ -67,7 +67,6 @@ struct _GimpDockClass
|
|||
GType gimp_dock_get_type (void) G_GNUC_CONST;
|
||||
|
||||
gchar * gimp_dock_get_title (GimpDock *dock);
|
||||
void gimp_dock_invalidate_title (GimpDock *dock);
|
||||
void gimp_dock_set_host_geometry_hints (GimpDock *dock,
|
||||
GtkWindow *window);
|
||||
void gimp_dock_invalidate_geometry (GimpDock *dock);
|
||||
|
|
|
@ -54,16 +54,6 @@ struct _GimpMenuDockPrivate
|
|||
static void gimp_menu_dock_style_set (GtkWidget *widget,
|
||||
GtkStyle *prev_style);
|
||||
|
||||
static void gimp_menu_dock_book_added (GimpDock *dock,
|
||||
GimpDockbook *dockbook);
|
||||
static void gimp_menu_dock_book_removed (GimpDock *dock,
|
||||
GimpDockbook *dockbook);
|
||||
|
||||
static void gimp_menu_dock_dockbook_changed (GimpDockbook *dockbook,
|
||||
GimpDockable *dockable,
|
||||
GimpMenuDock *dock);
|
||||
|
||||
|
||||
|
||||
G_DEFINE_TYPE (GimpMenuDock, gimp_menu_dock, GIMP_TYPE_DOCK)
|
||||
|
||||
|
@ -74,12 +64,8 @@ static void
|
|||
gimp_menu_dock_class_init (GimpMenuDockClass *klass)
|
||||
{
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||
GimpDockClass *dock_class = GIMP_DOCK_CLASS (klass);
|
||||
|
||||
widget_class->style_set = gimp_menu_dock_style_set;
|
||||
|
||||
dock_class->book_added = gimp_menu_dock_book_added;
|
||||
dock_class->book_removed = gimp_menu_dock_book_removed;
|
||||
widget_class->style_set = gimp_menu_dock_style_set;
|
||||
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
g_param_spec_int ("minimal-width",
|
||||
|
@ -112,49 +98,8 @@ gimp_menu_dock_style_set (GtkWidget *widget,
|
|||
gtk_widget_set_size_request (widget, minimal_width, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_menu_dock_book_added (GimpDock *dock,
|
||||
GimpDockbook *dockbook)
|
||||
{
|
||||
g_signal_connect (dockbook, "dockable-added",
|
||||
G_CALLBACK (gimp_menu_dock_dockbook_changed),
|
||||
dock);
|
||||
g_signal_connect (dockbook, "dockable-removed",
|
||||
G_CALLBACK (gimp_menu_dock_dockbook_changed),
|
||||
dock);
|
||||
g_signal_connect (dockbook, "dockable-reordered",
|
||||
G_CALLBACK (gimp_menu_dock_dockbook_changed),
|
||||
dock);
|
||||
|
||||
gimp_dock_invalidate_title (GIMP_DOCK (dock));
|
||||
|
||||
GIMP_DOCK_CLASS (parent_class)->book_added (dock, dockbook);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_menu_dock_book_removed (GimpDock *dock,
|
||||
GimpDockbook *dockbook)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (dockbook,
|
||||
gimp_menu_dock_dockbook_changed,
|
||||
dock);
|
||||
|
||||
gimp_dock_invalidate_title (GIMP_DOCK (dock));
|
||||
|
||||
GIMP_DOCK_CLASS (parent_class)->book_removed (dock, dockbook);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
gimp_menu_dock_new (void)
|
||||
{
|
||||
return g_object_new (GIMP_TYPE_MENU_DOCK, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_menu_dock_dockbook_changed (GimpDockbook *dockbook,
|
||||
GimpDockable *dockable,
|
||||
GimpMenuDock *dock)
|
||||
{
|
||||
gimp_dock_invalidate_title (GIMP_DOCK (dock));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue