return wxGetWindowText(GetHWND());
}
-void wxWindowMSW::CaptureMouse()
+void wxWindowMSW::DoCaptureMouse()
{
HWND hWnd = GetHwnd();
if ( hWnd )
}
}
-void wxWindowMSW::ReleaseMouse()
+void wxWindowMSW::DoReleaseMouse()
{
if ( !::ReleaseCapture() )
{
// Check if we need to send a LEAVE event
if ( m_mouseInWindow )
{
- if ( !IsMouseInWindow() )
+ if ( !IsMouseInWindow() && !HasCapture())
{
// Generate a LEAVE event
m_mouseInWindow = FALSE;
::GetClientRect(GetHwnd(), &rectClient);
// if the size is already ok, stop here (rectClient.left = top = 0)
- if ( rectClient.right == width && rectClient.bottom == height )
+ if ( (rectClient.right == width || width == -1) &&
+ (rectClient.bottom == height || height == -1) )
{
break;
}