From: <fa...@us...> - 2009-11-05 13:46:00
|
Revision: 836 http://freeglut.svn.sourceforge.net/freeglut/?rev=836&view=rev Author: fayjf Date: 2009-11-05 13:45:52 +0000 (Thu, 05 Nov 2009) Log Message: ----------- Implementing "glutEntryFunc" for Windows properly. I also moved the menu highlight code so that needs checking. Modified Paths: -------------- trunk/freeglut/freeglut/src/freeglut_main.c Modified: trunk/freeglut/freeglut/src/freeglut_main.c =================================================================== --- trunk/freeglut/freeglut/src/freeglut_main.c 2009-11-04 00:38:55 UTC (rev 835) +++ trunk/freeglut/freeglut/src/freeglut_main.c 2009-11-05 13:45:52 UTC (rev 836) @@ -1682,12 +1682,25 @@ } break; -#if 0 + case WM_SETFOCUS: /* printf("WM_SETFOCUS: %p\n", window ); */ lRet = DefWindowProc( hWnd, uMsg, wParam, lParam ); + INVOKE_WCB( *window, Entry, ( GLUT_ENTERED ) ); break; + case WM_KILLFOCUS: +/* printf("WM_KILLFOCUS: %p\n", window ); */ + lRet = DefWindowProc( hWnd, uMsg, wParam, lParam ); + INVOKE_WCB( *window, Entry, ( GLUT_LEFT ) ); + + if( window->IsMenu && + window->ActiveMenu && window->ActiveMenu->IsActive ) + fgUpdateMenuHighlight( window->ActiveMenu ); + + break; + +#if 0 case WM_ACTIVATE: if (LOWORD(wParam) != WA_INACTIVE) { @@ -1733,20 +1746,6 @@ */ return 0; - /* XXX For a future patch: we need a mouse entry event. Unfortunately Windows - * XXX doesn't give us one, so we will probably need a "MouseInWindow" flag in - * XXX the SFG_Window structure. Set it to true to begin with and then have the - * XXX WM_MOUSELEAVE code set it to false. Then when we get a WM_MOUSEMOVE event, - * XXX if the flag is false we invoke the Entry callback and set the flag to true. - */ - case 0x02a3: /* This is the message we get when the mouse is leaving the window */ - if( window->IsMenu && - window->ActiveMenu && window->ActiveMenu->IsActive ) - fgUpdateMenuHighlight( window->ActiveMenu ); - - INVOKE_WCB( *window, Entry, ( GLUT_LEFT ) ); - break ; - case WM_MOUSEMOVE: { #if defined(_WIN32_WCE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |