X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1ba0367603b07756b5524067eaa5c6962d059edd..7fd80c6f685550715713208680e7d095b03c1632:/src/common/mousemanager.cpp diff --git a/src/common/mousemanager.cpp b/src/common/mousemanager.cpp index b05922e3f7..b000c1b468 100644 --- a/src/common/mousemanager.cpp +++ b/src/common/mousemanager.cpp @@ -3,7 +3,6 @@ // Purpose: implementation of wxMouseEventsManager class // Author: Vadim Zeitlin // Created: 2009-04-21 -// RCS-ID: $Id$ // Copyright: (c) 2009 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -45,18 +44,27 @@ END_EVENT_TABLE() // wxMouseEventsManager implementation // ============================================================================ -wxMouseEventsManager::wxMouseEventsManager(wxWindow *win) - : m_win(win) +void wxMouseEventsManager::Init() { + m_win = NULL; m_state = State_Normal; m_item = wxNOT_FOUND; +} + +bool wxMouseEventsManager::Create(wxWindow *win) +{ + wxASSERT_MSG( !m_win, "Create() must not be called twice" ); + m_win = win; win->PushEventHandler(this); + + return true; } wxMouseEventsManager::~wxMouseEventsManager() { - m_win->RemoveEventHandler(this); + if ( m_win ) + m_win->RemoveEventHandler(this); } void wxMouseEventsManager::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event)) @@ -94,6 +102,7 @@ void wxMouseEventsManager::OnLeftDown(wxMouseEvent& event) } m_state = State_Pressed; + m_win->SetFocus(); m_win->CaptureMouse(); MouseClickBegin(m_item); }