summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorJim Raykowski <raykowj@gmail.com>2018-10-24 01:01:21 -0800
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2018-11-01 10:18:27 +0100
commitab58646b3eefcdee9e6ad786b8eed27390da4419 (patch)
tree8de33905bdc0b156e51990e61a5d40dd354b94a3 /vcl
parent9036336cdc67f1924bad2486a62b4c7b43375e04 (diff)
Fix undocked window loses focus
Use any method to undock a docked window and the window loses focus. This is a regression that began sometime after version 5.1.6.2 Change-Id: I91194db3cc23a24e805a90edaf1566f950ac129d Reviewed-on: https://gerrit.libreoffice.org/62270 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/dockwin.cxx12
1 files changed, 6 insertions, 6 deletions
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index ec203fc743bf..53a40c35c752 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -532,6 +532,8 @@ bool DockingWindow::EventNotify( NotifyEvent& rNEvt )
if (!bDockingSupportCrippled && pMEvt->IsMod1() && (pMEvt->GetClicks() == 2) )
{
SetFloatingMode( !IsFloatingMode() );
+ if ( IsFloatingMode() )
+ ToTop( ToTopFlags::GrabFocusOnly );
return true;
}
else if ( pMEvt->GetClicks() == 1 )
@@ -561,6 +563,8 @@ bool DockingWindow::EventNotify( NotifyEvent& rNEvt )
rKey.IsShift() && rKey.IsMod1() && !bDockingSupportCrippled )
{
SetFloatingMode( !IsFloatingMode() );
+ if ( IsFloatingMode() )
+ ToTop( ToTopFlags::GrabFocusOnly );
return true;
}
}
@@ -587,12 +591,11 @@ void DockingWindow::EndDocking( const tools::Rectangle& rRect, bool bFloatMode )
if ( !IsDockingCanceled() )
{
- bool bShow = false;
if ( bFloatMode != IsFloatingMode() )
{
- Show( false, ShowFlags::NoFocusChange );
SetFloatingMode( bFloatMode );
- bShow = true;
+ if ( IsFloatingMode() )
+ ToTop( ToTopFlags::GrabFocusOnly );
if ( bFloatMode && mpFloatWin )
mpFloatWin->SetPosSizePixel( rRect.TopLeft(), rRect.GetSize() );
}
@@ -602,9 +605,6 @@ void DockingWindow::EndDocking( const tools::Rectangle& rRect, bool bFloatMode )
aPos = GetParent()->ScreenToOutputPixel( aPos );
Window::SetPosSizePixel( aPos, rRect.GetSize() );
}
-
- if ( bShow )
- Show();
}
mbDocking = false;
mbDockCanceled = bOrigDockCanceled;