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/inc | |
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/inc')
-rw-r--r-- | vcl/inc/unx/saldisp.hxx | 5 | ||||
-rw-r--r-- | vcl/inc/unx/wmadaptor.hxx | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/vcl/inc/unx/saldisp.hxx b/vcl/inc/unx/saldisp.hxx index 54799149e25c..546d6d7a6664 100644 --- a/vcl/inc/unx/saldisp.hxx +++ b/vcl/inc/unx/saldisp.hxx @@ -299,6 +299,7 @@ protected: void doDestruct(); void addXineramaScreenUnique( int i, long i_nX, long i_nY, long i_nWidth, long i_nHeight ); + Time GetEventTimeImpl( bool bAlwaysReget = false ) const; public: static bool BestOpenGLVisual(Display* pDisplay, int nScreen, XVisualInfo& rVI); static bool BestVisual(Display *pDisp, int nScreen, XVisualInfo &rVI); @@ -355,7 +356,9 @@ public: RenderEntryMap& GetRenderEntries( SalX11Screen nXScreen ) const { return getDataForScreen(nXScreen).m_aRenderData; } const Pair &GetResolution() const { return aResolution_; } sal_uLong GetMaxRequestSize() const { return nMaxRequestSize_; } - Time GetLastUserEventTime( bool bAlwaysReget = false ) const; + Time GetLastUserEventTime() const { return GetEventTimeImpl(); } + // this is an equivalent of gdk_x11_get_server_time() + Time GetX11ServerTime() const { return GetEventTimeImpl( true ); } bool XIfEventWithTimeout( XEvent*, XPointer, X_if_predicate ) const; SalXLib* GetXLib() const { return pXLib_; } diff --git a/vcl/inc/unx/wmadaptor.hxx b/vcl/inc/unx/wmadaptor.hxx index b601bd95bc42..506d6617b0e1 100644 --- a/vcl/inc/unx/wmadaptor.hxx +++ b/vcl/inc/unx/wmadaptor.hxx @@ -43,6 +43,7 @@ public: UTF8_STRING, // atoms for extended WM hints + NET_ACTIVE_WINDOW, NET_SUPPORTED, NET_SUPPORTING_WM_CHECK, NET_WM_NAME, @@ -286,6 +287,13 @@ public: * if reference frame is NULL the root window is used instead */ void changeReferenceFrame( X11SalFrame* pFrame, X11SalFrame const * pReferenceFrame ) const; + + /* + * Requests the change of active window by sending + * _NET_ACTIVE_WINDOW message to the frame. The frame + * has to be mapped + */ + void activateWindow( X11SalFrame *pFrame, Time nTimestamp ); }; } // namespace |