X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmswin%2Ffg_main_mswin.c;h=70984b2add1cf56f946bce06fdc73895790812a4;hb=4a451851ec51ea7c3b79534fa5faebadceedf4df;hp=d962153ab5562017312f696ff635fcdf4e2f51ca;hpb=98584d9b257ef9cd1e5db99033ed0764b7b62ac3;p=freeglut diff --git a/src/mswin/fg_main_mswin.c b/src/mswin/fg_main_mswin.c index d962153..70984b2 100644 --- a/src/mswin/fg_main_mswin.c +++ b/src/mswin/fg_main_mswin.c @@ -339,7 +339,7 @@ static LRESULT fghWindowProcKeyPress(SFG_Window *window, UINT uMsg, GLboolean ke return 1; } -static SFG_Window* fghWindowUnderCursor(SFG_Window *window) +SFG_Window* fghWindowUnderCursor(SFG_Window *window) { /* Check if the current window that the mouse is over is a child window * of the window the message was sent to. Some events only sent to main window, @@ -349,7 +349,7 @@ static SFG_Window* fghWindowUnderCursor(SFG_Window *window) */ if (window && window->Children.First) /* This window has childs */ { - SFG_WindowHandleType hwnd; + HWND hwnd; SFG_Window* child_window; /* Get mouse position at time of message */ @@ -551,8 +551,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR break; case WM_SETFOCUS: -/* printf("WM_SETFOCUS: %p\n", window ); */ - + /*printf("WM_SETFOCUS: %p\n", window );*/ lRet = DefWindowProc( hWnd, uMsg, wParam, lParam ); SetActiveWindow( window->Window.Handle ); @@ -561,13 +560,11 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR break; case WM_KILLFOCUS: - { -/* printf("WM_KILLFOCUS: %p\n", window ); */ - lRet = DefWindowProc( hWnd, uMsg, wParam, lParam ); + /*printf("WM_KILLFOCUS: %p\n", window ); */ + lRet = DefWindowProc( hWnd, uMsg, wParam, lParam ); - /* Check if there are any open menus that need to be closed */ - fgPlatformCheckMenuDeactivate(); - } + /* Check if there are any open menus that need to be closed */ + fgPlatformCheckMenuDeactivate(); break; #if 0 @@ -601,7 +598,9 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR */ if (FETCH_WCB( *window, Entry )) { + SFG_Window* saved_window = fgStructure.CurrentWindow; INVOKE_WCB( *window, Entry, ( GLUT_ENTERED ) ); + fgSetWindow(saved_window); tme.cbSize = sizeof(TRACKMOUSEEVENT); tme.dwFlags = TME_LEAVE;