summaryrefslogtreecommitdiff
path: root/vcl/unx/generic/window/salframe.cxx
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2017-11-07 15:09:42 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2017-11-10 10:45:49 +0100
commitbb6a8dce405bd0fcd551c217c05a503e559dbf4d (patch)
tree7f495da1e16bee8ce3a631bc1218dc7cb3e1f59a /vcl/unx/generic/window/salframe.cxx
parent992bc9dfe1687087918f5fe83d6166791533433b (diff)
tdf#48300 kde4+gen: bring forward the window with already opened doc
Send _NET_ACTIVE_WINDOW message to the mapped frame with the timestamp of current X11 server time (the real timestamp, not CurrentTime constant, otherwise e.g. KWin focus stealing prevention would kick in) Change-Id: I637e1c3548b874e7267f8fc71ffcca4b1a82a412 Reviewed-on: https://gerrit.libreoffice.org/44409 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'vcl/unx/generic/window/salframe.cxx')
-rw-r--r--vcl/unx/generic/window/salframe.cxx13
1 files changed, 11 insertions, 2 deletions
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index 4e62877f40e0..32a62bca51ed 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -1274,7 +1274,7 @@ void X11SalFrame::Show( bool bVisible, bool bNoActivate )
Time nUserTime = 0;
if( ! bNoActivate && !(nStyle_ & SalFrameStyleFlags::OWNERDRAWDECORATION) )
- nUserTime = pDisplay_->GetLastUserEventTime( true );
+ nUserTime = pDisplay_->GetX11ServerTime();
GetDisplay()->getWMAdaptor()->setUserTime( this, nUserTime );
if( ! bNoActivate && (nStyle_ & SalFrameStyleFlags::TOOLWINDOW) )
m_bSetFocusOnMap = true;
@@ -1435,8 +1435,17 @@ void X11SalFrame::ToTop( SalFrameToTop nFlags )
&& bMapped_ )
{
if( m_bXEmbed )
+ {
askForXEmbedFocus( 0 );
- else
+ return;
+ }
+
+ if ( nFlags & SalFrameToTop::GrabFocus )
+ {
+ Time nTimestamp = pDisplay_->GetX11ServerTime();
+ GetDisplay()->getWMAdaptor()->activateWindow( this, nTimestamp );
+ }
+ else if ( nFlags & SalFrameToTop::GrabFocusOnly )
XSetInputFocus( GetXDisplay(), aToTopWindow, RevertToParent, CurrentTime );
}
}