diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2018-03-23 15:04:18 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-04-12 17:18:26 +0200 |
commit | a7e8fa20d8c1a529ef3cd7f69d3afa2e06412800 (patch) | |
tree | 01c8ba39b0105ff72cad49904050b574697469a5 | |
parent | e7b399c94317170e4f6551648f9bbcc5448fd920 (diff) |
tdf#116563: floating windows must get input focus at some point
This partially reverts commit bb6a8dce405bd0f and means we need
a different solution for tdf#48300 on X11-based Linux frontends.
Send _NET_ACTIVE_WINDOW signal only if we want to activate window
that has been minimized (ToTopFlags::RestoreWhenMin) or covered by
other windows (ToTopFlags::ForegroundTask).
Change-Id: I529baf6cc1174728b54bae4c658cf95631da19d6
Reviewed-on: https://gerrit.libreoffice.org/51867
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
(cherry picked from commit 0db4e7f60c92313327ae5b1e4307ed4fedfaa6f5)
Reviewed-on: https://gerrit.libreoffice.org/52378
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/generic/window/salframe.cxx | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index f88e9b6219a8..1c929ba021bf 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -1437,18 +1437,14 @@ void X11SalFrame::ToTop( SalFrameToTop nFlags ) && bMapped_ ) { if( m_bXEmbed ) - { askForXEmbedFocus( 0 ); - return; - } - - if ( nFlags & SalFrameToTop::GrabFocus ) - { + else + XSetInputFocus( GetXDisplay(), aToTopWindow, RevertToParent, CurrentTime ); + } + else if( ( nFlags & SalFrameToTop::RestoreWhenMin ) || ( nFlags & SalFrameToTop::ForegroundTask ) ) + { Time nTimestamp = pDisplay_->GetX11ServerTime(); GetDisplay()->getWMAdaptor()->activateWindow( this, nTimestamp ); - } - else if ( nFlags & SalFrameToTop::GrabFocusOnly ) - XSetInputFocus( GetXDisplay(), aToTopWindow, RevertToParent, CurrentTime ); } } |