diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2017-11-07 15:09:42 +0100 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2017-11-10 10:45:49 +0100 |
commit | bb6a8dce405bd0fcd551c217c05a503e559dbf4d (patch) | |
tree | 7f495da1e16bee8ce3a631bc1218dc7cb3e1f59a /vcl/unx/generic/window/salframe.cxx | |
parent | 992bc9dfe1687087918f5fe83d6166791533433b (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.cxx | 13 |
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 ); } } |