Move more window managing code to GimpImageWindow

Move the code that (de)iconifies the docks together with an empty
image window from GimpDisplayShell to GimpImageWindow.
This commit is contained in:
Michael Natterer 2009-09-23 15:05:00 +02:00
parent be93e6564a
commit 90ef404d98
2 changed files with 20 additions and 19 deletions

View File

@ -59,7 +59,6 @@
#include "gimpcanvas.h"
#include "gimpdisplay.h"
#include "gimpdisplay-foreach.h"
#include "gimpdisplayoptions.h"
#include "gimpdisplayshell.h"
#include "gimpdisplayshell-appearance.h"
@ -672,23 +671,6 @@ gimp_display_shell_window_state_event (GtkWidget *widget,
if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED)
{
gboolean iconified = (event->new_window_state &
GDK_WINDOW_STATE_ICONIFIED) != 0;
if (iconified)
{
if (gimp_displays_get_num_visible (gimp) == 0)
{
GIMP_LOG (WM, "No displays visible any longer");
gimp_dialog_factories_hide_with_display ();
}
}
else
{
gimp_dialog_factories_show_with_display ();
}
gimp_display_shell_progress_window_state_changed (shell);
}

View File

@ -25,9 +25,12 @@
#include "display-types.h"
#include "widgets/gimpactiongroup.h"
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpmenufactory.h"
#include "widgets/gimpuimanager.h"
#include "gimpdisplay.h"
#include "gimpdisplay-foreach.h"
#include "gimpdisplayshell.h"
#include "gimpimagewindow.h"
@ -183,7 +186,8 @@ static gboolean
gimp_image_window_window_state (GtkWidget *widget,
GdkEventWindowState *event)
{
GimpImageWindow *window = GIMP_IMAGE_WINDOW (widget);
GimpImageWindow *window = GIMP_IMAGE_WINDOW (widget);
GimpDisplay *display = gimp_image_window_get_active_display (window);
window->window_state = event->new_window_state;
@ -213,6 +217,21 @@ gimp_image_window_window_state (GtkWidget *widget,
gtk_window_get_title (GTK_WINDOW (widget)),
widget,
iconified ? "iconified" : "uniconified");
if (iconified)
{
if (gimp_displays_get_num_visible (display->gimp) == 0)
{
GIMP_LOG (WM, "No displays visible any longer");
gimp_dialog_factories_hide_with_display ();
}
}
else
{
gimp_dialog_factories_show_with_display ();
}
}
return FALSE;