diff --git a/ChangeLog b/ChangeLog index c5b4c061a8..2e0f4f853d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-03-24 Michael Natterer + + * app/widgets/gimpdock.c (gimp_dock_separator_drag_drop): don't + try to reorder dockables in a dock containing exactly one dockable + (fixes bug #109042) + 2003-03-24 Michael Natterer * app/paint/paint-enums.[ch]: register GimpPaintApplicationMode diff --git a/app/widgets/gimpdock.c b/app/widgets/gimpdock.c index 578502ff53..fbea4f807b 100644 --- a/app/widgets/gimpdock.c +++ b/app/widgets/gimpdock.c @@ -565,6 +565,25 @@ gimp_dock_separator_drag_drop (GtkWidget *widget, else if (index == 2) index = -1; + /* if dropping to the same dock, take care that we don't try + * to reorder the *only* dockable in the dock + */ + if (src_dockable->dockbook->dock == dock) + { + gint n_books; + gint n_dockables; + + n_books = g_list_length (dock->dockbooks); + + children = + gtk_container_get_children (GTK_CONTAINER (src_dockable->dockbook)); + n_dockables = g_list_length (children); + g_list_free (children); + + if (n_books == 1 && n_dockables == 1) + return TRUE; /* successfully do nothing */ + } + g_object_ref (src_dockable); gimp_dockbook_remove (src_dockable->dockbook, src_dockable);