Make the logic clearer. (gui_get_empty_display): New helper function.

2008-03-20  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gui/gui-vtable.c
	(gui_display_create): Make the logic clearer.
	(gui_get_empty_display): New helper function.

svn path=/trunk/; revision=25144
This commit is contained in:
Martin Nordholts
2008-03-20 20:05:45 +00:00
committed by Martin Nordholts
parent 2b43fd7535
commit c138ffde70
2 changed files with 30 additions and 21 deletions

View File

@ -1,3 +1,9 @@
2008-03-20 Martin Nordholts <martinn@svn.gnome.org>
* app/gui/gui-vtable.c
(gui_display_create): Make the logic clearer.
(gui_get_empty_display): New helper function.
2008-03-20 Sven Neumann <sven@gimp.org> 2008-03-20 Sven Neumann <sven@gimp.org>
* app/gui/gui.c (gui_restore_after_callback): create the empty * app/gui/gui.c (gui_restore_after_callback): create the empty

View File

@ -97,6 +97,7 @@ static void gui_display_delete (GimpObject *display);
static void gui_displays_reconnect (Gimp *gimp, static void gui_displays_reconnect (Gimp *gimp,
GimpImage *old_image, GimpImage *old_image,
GimpImage *new_image); GimpImage *new_image);
static gboolean gui_get_empty_display (Gimp *gimp);
static GimpProgress * gui_new_progress (Gimp *gimp, static GimpProgress * gui_new_progress (Gimp *gimp,
GimpObject *display); GimpObject *display);
static void gui_free_progress (Gimp *gimp, static void gui_free_progress (Gimp *gimp,
@ -285,28 +286,11 @@ gui_display_create (Gimp *gimp,
GimpContext *context = gimp_get_user_context (gimp); GimpContext *context = gimp_get_user_context (gimp);
GimpDisplay *display = NULL; GimpDisplay *display = NULL;
if (gimp_container_num_children (gimp->displays) == 1) if (gui_get_empty_display (gimp) != NULL)
{ {
display = (GimpDisplay *) display = gui_get_empty_display (gimp);
gimp_container_get_child_by_index (gimp->displays, 0);
if (display->image)
display = NULL;
}
if (display)
{
gimp_display_fill (display, image, unit, scale); gimp_display_fill (display, image, unit, scale);
if (gimp_context_get_display (context) == display)
{
gimp_context_set_image (context, image);
gimp_context_display_changed (context);
}
else
{
gimp_context_set_display (context, display);
}
} }
else else
{ {
@ -317,10 +301,10 @@ gui_display_create (Gimp *gimp,
display = gimp_display_new (gimp, image, unit, scale, display = gimp_display_new (gimp, image, unit, scale,
global_menu_factory, global_menu_factory,
image_managers->data); image_managers->data);
gimp_context_set_display (context, display);
} }
gimp_context_set_display (context, display);
gimp_ui_manager_update (GIMP_DISPLAY_SHELL (display->shell)->menubar_manager, gimp_ui_manager_update (GIMP_DISPLAY_SHELL (display->shell)->menubar_manager,
display); display);
@ -341,6 +325,25 @@ gui_displays_reconnect (Gimp *gimp,
gimp_displays_reconnect (gimp, old_image, new_image); gimp_displays_reconnect (gimp, old_image, new_image);
} }
static gboolean
gui_get_empty_display (Gimp *gimp)
{
GimpDisplay *display = NULL;
if (gimp_container_num_children (gimp->displays) == 1)
{
display = (GimpDisplay *) gimp_container_get_child_by_index (gimp->displays, 0);
if (display->image != NULL)
{
/* The display was not empty */
display = NULL;
}
}
return display;
}
static GimpProgress * static GimpProgress *
gui_new_progress (Gimp *gimp, gui_new_progress (Gimp *gimp,
GimpObject *display) GimpObject *display)