app: Introduce GIMP_DIALOG_VISIBILITY_HIDDEN

Introduce GIMP_DIALOG_VISIBILITY_HIDDEN because it is a bit
counter-intuitive to call gtk_widget_hide() on a dialog and then set
GIMP_DIALOG_VISIBILITY_VISIBLE on it. No change in program flow has
been (deliberately) introduced.
This commit is contained in:
Martin Nordholts
2010-03-09 07:48:25 +01:00
parent e6268b7353
commit 909acba11d
3 changed files with 12 additions and 4 deletions

View File

@ -1364,9 +1364,8 @@ gimp_dialog_factory_hide (GimpDialogFactory *factory)
if (gtk_widget_get_visible (widget))
{
visibility = GIMP_DIALOG_VISIBILITY_VISIBLE;
gtk_widget_hide (widget);
visibility = GIMP_DIALOG_VISIBILITY_HIDDEN;
GIMP_LOG (WM, "Hiding '%s' [%p]",
gtk_window_get_title (GTK_WINDOW (widget)),
@ -1402,7 +1401,7 @@ gimp_dialog_factory_show (GimpDialogFactory *factory)
GIMP_DIALOG_VISIBILITY_KEY));
if (! gtk_widget_get_visible (widget) &&
visibility == GIMP_DIALOG_VISIBILITY_VISIBLE)
visibility == GIMP_DIALOG_VISIBILITY_HIDDEN)
{
GIMP_LOG (WM, "Showing '%s' [%p]",
gtk_window_get_title (GTK_WINDOW (widget)),
@ -1412,6 +1411,9 @@ gimp_dialog_factory_show (GimpDialogFactory *factory)
* keyboard focus to move.
*/
gtk_widget_show (widget);
g_object_set_data (G_OBJECT (widget),
GIMP_DIALOG_VISIBILITY_KEY,
GINT_TO_POINTER (GIMP_DIALOG_VISIBILITY_VISIBLE));
if (gtk_widget_get_visible (widget))
gdk_window_raise (gtk_widget_get_window (widget));

View File

@ -30,7 +30,8 @@ typedef enum
{
GIMP_DIALOG_VISIBILITY_UNKNOWN = 0,
GIMP_DIALOG_VISIBILITY_INVISIBLE,
GIMP_DIALOG_VISIBILITY_VISIBLE
GIMP_DIALOG_VISIBILITY_VISIBLE,
GIMP_DIALOG_VISIBILITY_HIDDEN
} GimpDialogVisibilityState;

View File

@ -654,7 +654,12 @@ gimp_session_info_read_geometry (GimpSessionInfo *info)
info->p->open = FALSE;
break;
case GIMP_DIALOG_VISIBILITY_HIDDEN:
case GIMP_DIALOG_VISIBILITY_VISIBLE:
/* Even if a dialog is hidden (with Windows->Hide docks) it
* is still considered open. It will be restored the next
* time GIMP starts
*/
info->p->open = TRUE;
break;
}