summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-05-23 20:48:57 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-05-23 21:05:44 +0100
commitd1182223dcd3aca6b0922f1b27bc1537bceca7ae (patch)
tree15e0aa76f0bde89cee647fe3622187c516621333 /vcl
parent015456844faa8bfc848e3ed933d694c3a2fd8fbf (diff)
like menus do, restore focus to prev control when floatingwindow popdowns
in the FloatWinPopupFlags::GrabFocus case Change-Id: Ibebf23c83133f74f00e5dbb2540f108a383462cc
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/floatwin.cxx7
1 files changed, 4 insertions, 3 deletions
diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx
index 024d726da3f6..82283c94337e 100644
--- a/vcl/source/window/floatwin.cxx
+++ b/vcl/source/window/floatwin.cxx
@@ -634,7 +634,7 @@ void FloatingWindow::ImplCallPopupModeEnd()
// call Handler asynchronously.
if ( mpImplData && !mnPostId )
- mnPostId = Application::PostUserEvent( LINK( this, FloatingWindow, ImplEndPopupModeHdl ), nullptr, true );
+ mnPostId = Application::PostUserEvent( LINK( this, FloatingWindow, ImplEndPopupModeHdl ), mxPrevFocusWin, true );
}
void FloatingWindow::PopupModeEnd()
@@ -711,10 +711,11 @@ void FloatingWindow::StartPopupMode( const Rectangle& rRect, FloatWinPopupFlags
ImplSVData* pSVData = ImplGetSVData();
mpNextFloat = pSVData->maWinData.mpFirstFloat;
pSVData->maWinData.mpFirstFloat = this;
- if( nFlags & FloatWinPopupFlags::GrabFocus )
+ if (nFlags & FloatWinPopupFlags::GrabFocus)
{
// force key input even without focus (useful for menus)
mbGrabFocus = true;
+ mxPrevFocusWin = Window::SaveFocus();
mpWindowImpl->mpFrameData->mbHasFocus = true;
GrabFocus();
}
@@ -840,7 +841,7 @@ void FloatingWindow::ImplEndPopupMode( FloatWinPopupEndFlags nFlags, const VclPt
void FloatingWindow::EndPopupMode( FloatWinPopupEndFlags nFlags )
{
- ImplEndPopupMode( nFlags );
+ ImplEndPopupMode(nFlags, mxPrevFocusWin);
}
void FloatingWindow::AddPopupModeWindow( vcl::Window* pWindow )