From 3af58289f5ca7d6cc013a88e4effc18c927bcd62 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 27 Nov 2012 19:09:41 +0000 Subject: [PATCH] support for simulating focus events since not all controls can be focused git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/osx/window.h | 1 + src/osx/window_osx.cpp | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index c97e979c8a..3cfa8817f2 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -286,6 +286,7 @@ public: virtual bool OSXHandleClicked( double timestampsec ); virtual bool OSXHandleKeyEvent( wxKeyEvent& event ); + virtual void OSXSimulateFocusEvents(); bool IsNativeWindowWrapper() const { return m_isNativeWindowWrapper; } diff --git a/src/osx/window_osx.cpp b/src/osx/window_osx.cpp index 6fe7e14929..fadfabf4bd 100644 --- a/src/osx/window_osx.cpp +++ b/src/osx/window_osx.cpp @@ -602,6 +602,25 @@ void wxWindowMac::SetFocus() GetPeer()->SetFocus() ; } +void wxWindowMac::OSXSimulateFocusEvents() +{ + wxWindow* former = FindFocus() ; + if ( former != NULL && former != this ) + { + { + wxFocusEvent event( wxEVT_KILL_FOCUS, former->GetId()); + event.SetEventObject(former); + former->HandleWindowEvent(event) ; + } + + { + wxFocusEvent event(wxEVT_SET_FOCUS, former->GetId()); + event.SetEventObject(former); + former->HandleWindowEvent(event); + } + } +} + void wxWindowMac::DoCaptureMouse() { wxApp::s_captureWindow = (wxWindow*) this ; -- 2.45.2