// headers
// ---------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "window.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
}
}
-void wxWindowMSW::MSWUpdateUIState()
+void wxWindowMSW::MSWUpdateUIState(int action)
{
// 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
// include just one UISF_XXX or both, both are affected, no idea
// why
::SendMessage(GetHwnd(), WM_UPDATEUISTATE,
- MAKEWPARAM(UIS_INITIALIZE,
- UISF_HIDEFOCUS | UISF_HIDEACCEL), 0);
+ MAKEWPARAM(action, UISF_HIDEFOCUS | UISF_HIDEACCEL), 0);
}
}
// this by default, we need to manually send this message
// so that controls could change their appearance
// appropriately
- MSWUpdateUIState();
+ MSWUpdateUIState(UIS_CLEAR);
return true;
}
(void)GetEventHandler()->ProcessEvent(event);
}
}
+#ifdef HAVE_TRACKMOUSEEVENT
+ else
+ {
+ // Check if we need to send a LEAVE event
+ // Windows doesn't send WM_MOUSELEAVE if the mouse has been captured so
+ // send it here if we are using native mouse leave tracking
+ if ( HasCapture() && !IsMouseInWindow() )
+ {
+ GenerateMouseLeave();
+ }
+ }
+#endif // HAVE_TRACKMOUSEEVENT
#if wxUSE_MOUSEEVENT_HACK
// Window gets a click down message followed by a mouse move message even