(blind) fix for keyboard cues display under XP (bug 1298512)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-09-27 11:08:42 +00:00
parent cd5b511a70
commit 3ef092d63b
4 changed files with 10 additions and 7 deletions

View File

@@ -39,7 +39,9 @@
#endif #endif
// Needed by toplevel.cpp // Needed by toplevel.cpp
#ifndef UIS_INITIALIZE #ifndef UIS_SET
#define UIS_SET 1
#define UIS_CLEAR 2
#define UIS_INITIALIZE 3 #define UIS_INITIALIZE 3
#endif #endif

View File

@@ -488,7 +488,9 @@ protected:
bool DoEraseBackground(WXHDC hDC); bool DoEraseBackground(WXHDC hDC);
// generate WM_UPDATEUISTATE if it's needed for the OS we're running under // generate WM_UPDATEUISTATE if it's needed for the OS we're running under
void MSWUpdateUIState(); //
// the parameter should be one of UIS_XXX constants
void MSWUpdateUIState(int action);
private: private:
// common part of all ctors // common part of all ctors

View File

@@ -529,7 +529,7 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
// focus rectangles) work under Win2k+ // focus rectangles) work under Win2k+
if ( ret ) if ( ret )
{ {
MSWUpdateUIState(); MSWUpdateUIState(UIS_INITIALIZE);
} }
// Note: if we include PocketPC in this test, dialogs can fail to show up, // Note: if we include PocketPC in this test, dialogs can fail to show up,

View File

@@ -806,7 +806,7 @@ void wxWindowMSW::WarpPointer(int x, int y)
} }
} }
void wxWindowMSW::MSWUpdateUIState() void wxWindowMSW::MSWUpdateUIState(int action)
{ {
// WM_UPDATEUISTATE only appeared in Windows 2000 so it can do us no good // WM_UPDATEUISTATE only appeared in Windows 2000 so it can do us no good
// to use it on older systems -- and could possibly do some harm // to use it on older systems -- and could possibly do some harm
@@ -824,8 +824,7 @@ void wxWindowMSW::MSWUpdateUIState()
// include just one UISF_XXX or both, both are affected, no idea // include just one UISF_XXX or both, both are affected, no idea
// why // why
::SendMessage(GetHwnd(), WM_UPDATEUISTATE, ::SendMessage(GetHwnd(), WM_UPDATEUISTATE,
MAKEWPARAM(UIS_INITIALIZE, MAKEWPARAM(action, UISF_HIDEFOCUS | UISF_HIDEACCEL), 0);
UISF_HIDEFOCUS | UISF_HIDEACCEL), 0);
} }
} }
@@ -2084,7 +2083,7 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
// this by default, we need to manually send this message // this by default, we need to manually send this message
// so that controls could change their appearance // so that controls could change their appearance
// appropriately // appropriately
MSWUpdateUIState(); MSWUpdateUIState(UIS_CLEAR);
return true; return true;
} }