From 7557578d8d1f6f0e091a7df25c8d1ab573ad8867 Mon Sep 17 00:00:00 2001 From: Diederick Niehorster Date: Sun, 17 Mar 2013 14:01:46 +0000 Subject: [PATCH] - another strdup - windows only opened in iconic state if its a non-gamemode, non-menu toplevel window - depending on whether window is iconic or not glutSetWindowTitle or glutSetIconTitle call should have immediate effect on windows git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1562 7f0cb862-5218-0410-a997-914c9d46530a --- src/mswin/fg_window_mswin.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/mswin/fg_window_mswin.c b/src/mswin/fg_window_mswin.c index 4365b8c..c0efc9b 100644 --- a/src/mswin/fg_window_mswin.c +++ b/src/mswin/fg_window_mswin.c @@ -701,10 +701,7 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, fgError( "Failed to create a window (%s)!", title ); /* Store title */ - { - window->State.pWState.WindowTitle = malloc (strlen(title) + 1); - strcpy(window->State.pWState.WindowTitle, title); - } + window->State.pWState.WindowTitle = strdup(title); #if !defined(_WIN32_WCE) /* Need to set requested style again, apparently Windows doesn't listen when requesting windows without title bar or borders */ @@ -732,8 +729,11 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, #if defined(_WIN32_WCE) ShowWindow( window->Window.Handle, SW_SHOW ); #else - ShowWindow( window->Window.Handle, - fgState.ForceIconic ? SW_SHOWMINIMIZED : SW_SHOWNORMAL ); + { + BOOL iconic = fgState.ForceIconic && !window->IsMenu && !gameMode && !isSubWindow; + ShowWindow( window->Window.Handle, + iconic ? SW_SHOWMINIMIZED : SW_SHOWNORMAL ); + } #endif /* defined(_WIN32_WCE) */ ShowCursor( TRUE ); @@ -917,7 +917,8 @@ void fgPlatformGlutSetWindowTitle( const char* title ) free(wstr); } #else - SetWindowText( fgStructure.CurrentWindow->Window.Handle, title ); + if (!IsIconic(fgStructure.CurrentWindow->Window.Handle)) + SetWindowText( fgStructure.CurrentWindow->Window.Handle, title ); #endif /* Make copy of string to refer to later */ @@ -931,6 +932,11 @@ void fgPlatformGlutSetWindowTitle( const char* title ) */ void fgPlatformGlutSetIconTitle( const char* title ) { +#ifndef _WIN32_WCE + if (IsIconic(fgStructure.CurrentWindow->Window.Handle)) + SetWindowText( fgStructure.CurrentWindow->Window.Handle, title ); +#endif + /* Make copy of string to refer to later */ if (fgStructure.CurrentWindow->State.pWState.IconTitle) free(fgStructure.CurrentWindow->State.pWState.IconTitle); -- 1.7.10.4