mirror of https://github.com/GNOME/gimp.git
gui: Use "minimize" window hint on Windows
Resolves the second half of #300. This adds conditional code to the gtk_window_present () call in gui.c to prevent it from running if the user requested it stay minimized in the shortcut or commandline call on Windows. It also keeps the splashscreen minimized in that case.
This commit is contained in:
parent
d1297b8c2b
commit
bd7423915c
|
@ -1170,9 +1170,6 @@ gimp_image_window_set_aux_info (GimpSessionManaged *session_managed,
|
|||
else if (StartupInfo.wShowWindow == SW_SHOWMINIMIZED ||
|
||||
StartupInfo.wShowWindow == SW_SHOWMINNOACTIVE ||
|
||||
StartupInfo.wShowWindow == SW_MINIMIZE)
|
||||
/* XXX Iconification does not seem to work. I see the
|
||||
* window being iconified and immediately re-raised.
|
||||
* I leave this piece of code for later improvement. */
|
||||
gtk_window_iconify (GTK_WINDOW (session_managed));
|
||||
else
|
||||
/* Another show property not relevant to min/max.
|
||||
|
|
|
@ -86,6 +86,12 @@
|
|||
#include "splash.h"
|
||||
#include "themes.h"
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef GDK_WINDOWING_QUARTZ
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
|
@ -539,6 +545,11 @@ gui_restore_after_callback (Gimp *gimp,
|
|||
GimpGuiConfig *gui_config = GIMP_GUI_CONFIG (gimp->config);
|
||||
GimpUIManager *image_ui_manager;
|
||||
GimpDisplay *display;
|
||||
#ifdef G_OS_WIN32
|
||||
STARTUPINFO StartupInfo;
|
||||
|
||||
GetStartupInfo (&StartupInfo);
|
||||
#endif
|
||||
|
||||
if (gimp->be_verbose)
|
||||
g_print ("INIT: %s\n", G_STRFUNC);
|
||||
|
@ -611,6 +622,14 @@ gui_restore_after_callback (Gimp *gimp,
|
|||
|
||||
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
/* Prevents window from reappearing on start-up if the user
|
||||
* requested it to be minimized via window hints
|
||||
*/
|
||||
if (StartupInfo.wShowWindow != SW_SHOWMINIMIZED &&
|
||||
StartupInfo.wShowWindow != SW_SHOWMINNOACTIVE &&
|
||||
StartupInfo.wShowWindow != SW_MINIMIZE)
|
||||
#endif
|
||||
/* move keyboard focus to the display */
|
||||
gtk_window_present (GTK_WINDOW (toplevel));
|
||||
}
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
#include <gdk/gdkwayland.h>
|
||||
#endif
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
#include "libgimpmath/gimpmath.h"
|
||||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
@ -121,6 +127,11 @@ splash_create (Gimp *gimp,
|
|||
GdkRectangle workarea;
|
||||
gint max_width;
|
||||
gint max_height;
|
||||
#ifdef G_OS_WIN32
|
||||
STARTUPINFO StartupInfo;
|
||||
|
||||
GetStartupInfo (&StartupInfo);
|
||||
#endif
|
||||
|
||||
g_return_if_fail (splash == NULL);
|
||||
g_return_if_fail (GDK_IS_MONITOR (monitor));
|
||||
|
@ -251,6 +262,13 @@ splash_create (Gimp *gimp,
|
|||
|
||||
gtk_widget_show (splash->window);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
if (StartupInfo.wShowWindow == SW_SHOWMINIMIZED ||
|
||||
StartupInfo.wShowWindow == SW_SHOWMINNOACTIVE ||
|
||||
StartupInfo.wShowWindow == SW_MINIMIZE)
|
||||
gtk_window_iconify (GTK_WINDOW (splash->window));
|
||||
#endif
|
||||
|
||||
if (FALSE)
|
||||
splash->timer = g_timer_new ();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue