From f7beec10251fa2400150b79497dc984a989e3795 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 23 Sep 2014 17:43:30 +0000 Subject: [PATCH] we must store the to be focused window before we kill focus on a window git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/x11/window.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/x11/window.cpp b/src/x11/window.cpp index 65761b347d..30969fbc86 100644 --- a/src/x11/window.cpp +++ b/src/x11/window.cpp @@ -68,6 +68,9 @@ static wxWindowX11* g_captureWindow = NULL; static GC g_eraseGC; +// the window that is about to be focused after curretnly focused +// one looses focus: +static wxWindow* gs_toBeFocusedWindow = NULL; // ---------------------------------------------------------------------------- // macros @@ -397,7 +400,11 @@ void wxWindowX11::SetFocus() return; // nothing to do, focused already if ( focusedWindow ) + { + gs_toBeFocusedWindow = (wxWindow*)this; focusedWindow->KillFocus(); + gs_toBeFocusedWindow = NULL; + } #if 0 if (GetName() == "scrollBar") @@ -445,6 +452,7 @@ void wxWindowX11::KillFocus() wxFocusEvent event(wxEVT_KILL_FOCUS, GetId()); event.SetEventObject(this); + event.SetWindow(gs_toBeFocusedWindow); HandleWindowEvent(event); }