vcl/headless/svpframe.cxx | 2 +- vcl/inc/headless/svpframe.hxx | 2 +- vcl/inc/osx/salframe.h | 2 +- vcl/inc/salframe.hxx | 17 ++++++++++++----- vcl/inc/unx/gtk/gtkframe.hxx | 2 +- vcl/inc/unx/salframe.h | 2 +- vcl/inc/win/salframe.h | 2 +- vcl/osx/salframe.cxx | 6 +++--- vcl/osx/salframeview.mm | 2 +- vcl/source/window/mouse.cxx | 2 +- vcl/source/window/stacking.cxx | 10 +++++----- vcl/unx/generic/window/salframe.cxx | 12 ++++++------ vcl/unx/gtk/gtksalframe.cxx | 6 +++--- vcl/unx/gtk3/gtk3gtkframe.cxx | 6 +++--- vcl/win/window/salframe.cxx | 14 +++++++------- 15 files changed, 47 insertions(+), 40 deletions(-)
New commits: commit 10cc455580b2349e99ac48732cc451f7e2126953 Author: Noel Grandin <n...@peralex.com> Date: Tue May 10 12:54:24 2016 +0200 convert SAL_FRAME_TOTOP to scoped enum Change-Id: Id996e1e6fc29f6323bd4e82785386de26d075cae Reviewed-on: https://gerrit.libreoffice.org/24834 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noelgran...@gmail.com> diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx index f8b29f6..7a6add2 100644 --- a/vcl/headless/svpframe.cxx +++ b/vcl/headless/svpframe.cxx @@ -364,7 +364,7 @@ void SvpSalFrame::SetAlwaysOnTop( bool ) { } -void SvpSalFrame::ToTop( sal_uInt16 ) +void SvpSalFrame::ToTop( SalFrameToTop ) { GetFocus(); } diff --git a/vcl/inc/headless/svpframe.hxx b/vcl/inc/headless/svpframe.hxx index 4b0be15..bcf504e 100644 --- a/vcl/inc/headless/svpframe.hxx +++ b/vcl/inc/headless/svpframe.hxx @@ -90,7 +90,7 @@ public: virtual void ShowFullScreen( bool bFullScreen, sal_Int32 nDisplay ) override; virtual void StartPresentation( bool bStart ) override; virtual void SetAlwaysOnTop( bool bOnTop ) override; - virtual void ToTop( sal_uInt16 nFlags ) override; + virtual void ToTop( SalFrameToTop nFlags ) override; virtual void SetPointer( PointerStyle ePointerStyle ) override; virtual void CaptureMouse( bool bMouse ) override; virtual void SetPointerPos( long nX, long nY ) override; diff --git a/vcl/inc/osx/salframe.h b/vcl/inc/osx/salframe.h index f6520d4..d2593d9 100644 --- a/vcl/inc/osx/salframe.h +++ b/vcl/inc/osx/salframe.h @@ -125,7 +125,7 @@ public: virtual void ShowFullScreen( bool bFullScreen, sal_Int32 nDisplay ) override; virtual void StartPresentation( bool bStart ) override; virtual void SetAlwaysOnTop( bool bOnTop ) override; - virtual void ToTop( sal_uInt16 nFlags ) override; + virtual void ToTop( SalFrameToTop nFlags ) override; virtual void SetPointer( PointerStyle ePointerStyle ) override; virtual void CaptureMouse( bool bMouse ) override; virtual void SetPointerPos( long nX, long nY ) override; diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx index 8bf79f35..16a8f85 100644 --- a/vcl/inc/salframe.hxx +++ b/vcl/inc/salframe.hxx @@ -26,6 +26,7 @@ #include <vcl/help.hxx> #include <vcl/window.hxx> +#include <o3tl/typed_flags_set.hxx> // complete vcl::Window for SalFrame::CallCallback under -fsanitize=function @@ -39,10 +40,16 @@ struct SalInputContext; struct SystemEnvData; // SalFrame types -#define SAL_FRAME_TOTOP_RESTOREWHENMIN ((sal_uInt16)0x0001) -#define SAL_FRAME_TOTOP_FOREGROUNDTASK ((sal_uInt16)0x0002) -#define SAL_FRAME_TOTOP_GRABFOCUS ((sal_uInt16)0x0004) -#define SAL_FRAME_TOTOP_GRABFOCUS_ONLY ((sal_uInt16)0x0008) +enum class SalFrameToTop { + NONE = 0x00, + RestoreWhenMin = 0x01, + ForegroundTask = 0x02, + GrabFocus = 0x04, + GrabFocusOnly = 0x08 +}; +namespace o3tl { + template<> struct typed_flags<SalFrameToTop> : is_typed_flags<SalFrameToTop, 0x0f> {}; +}; // SalFrame styles enum class SalFrameStyleFlags @@ -160,7 +167,7 @@ public: virtual void SetAlwaysOnTop( bool bOnTop ) = 0; // Window to top and grab focus - virtual void ToTop( sal_uInt16 nFlags ) = 0; + virtual void ToTop( SalFrameToTop nFlags ) = 0; // this function can call with the same // pointer style diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx index 6e08818..38b6c1b 100644 --- a/vcl/inc/unx/gtk/gtkframe.hxx +++ b/vcl/inc/unx/gtk/gtkframe.hxx @@ -461,7 +461,7 @@ public: virtual void SetAlwaysOnTop( bool bOnTop ) override; // Window to top and grab focus - virtual void ToTop( sal_uInt16 nFlags ) override; + virtual void ToTop( SalFrameToTop nFlags ) override; // this function can call with the same // pointer style diff --git a/vcl/inc/unx/salframe.h b/vcl/inc/unx/salframe.h index 036e7f2..f5773c0 100644 --- a/vcl/inc/unx/salframe.h +++ b/vcl/inc/unx/salframe.h @@ -228,7 +228,7 @@ public: virtual void ShowFullScreen( bool bFullScreen, sal_Int32 nMonitor ) override; virtual void StartPresentation( bool bStart ) override; virtual void SetAlwaysOnTop( bool bOnTop ) override; - virtual void ToTop( sal_uInt16 nFlags ) override; + virtual void ToTop( SalFrameToTop nFlags ) override; virtual void SetPointer( PointerStyle ePointerStyle ) override; virtual void CaptureMouse( bool bMouse ) override; virtual void SetPointerPos( long nX, long nY ) override; diff --git a/vcl/inc/win/salframe.h b/vcl/inc/win/salframe.h index 5b8edcb..2d19ccf 100644 --- a/vcl/inc/win/salframe.h +++ b/vcl/inc/win/salframe.h @@ -106,7 +106,7 @@ public: virtual void ShowFullScreen( bool bFullScreen, sal_Int32 nDisplay ) override; virtual void StartPresentation( bool bStart ) override; virtual void SetAlwaysOnTop( bool bOnTop ) override; - virtual void ToTop( sal_uInt16 nFlags ) override; + virtual void ToTop( SalFrameToTop nFlags ) override; virtual void SetPointer( PointerStyle ePointerStyle ) override; virtual void CaptureMouse( bool bMouse ) override; virtual void SetPointerPos( long nX, long nY ) override; diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx index ff25e34..dae0aef 100644 --- a/vcl/osx/salframe.cxx +++ b/vcl/osx/salframe.cxx @@ -797,7 +797,7 @@ void AquaSalFrame::SetAlwaysOnTop( bool ) { } -void AquaSalFrame::ToTop(sal_uInt16 nFlags) +void AquaSalFrame::ToTop(SalFrameToTop nFlags) { if ( !mpNSWindow ) return; @@ -805,12 +805,12 @@ void AquaSalFrame::ToTop(sal_uInt16 nFlags) // #i113170# may not be the main thread if called from UNO API SalData::ensureThreadAutoreleasePool(); - if( ! (nFlags & SAL_FRAME_TOTOP_RESTOREWHENMIN) ) + if( ! (nFlags & SalFrameToTop::RestoreWhenMin) ) { if( ! [mpNSWindow isVisible] || [mpNSWindow isMiniaturized] ) return; } - if( nFlags & SAL_FRAME_TOTOP_GRABFOCUS ) + if( nFlags & SalFrameToTop::GrabFocus ) [mpNSWindow makeKeyAndOrderFront: NSApp]; else [mpNSWindow orderFront: NSApp]; diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm index 0da1737..219c681 100644 --- a/vcl/osx/salframeview.mm +++ b/vcl/osx/salframeview.mm @@ -394,7 +394,7 @@ static AquaSalFrame* getMouseContainerFrame() SolarMutexGuard aGuard; if( mpFrame && AquaSalFrame::isAlive( mpFrame ) ) - mpFrame->ToTop( SAL_FRAME_TOTOP_RESTOREWHENMIN | SAL_FRAME_TOTOP_GRABFOCUS ); + mpFrame->ToTop( SalFrameToTop::RestoreWhenMin | SalFrameToTop::GrabFocus ); } -(css::uno::Reference < css::accessibility::XAccessibleContext >)accessibleContext diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx index 4782c15..516b6ed 100644 --- a/vcl/source/window/mouse.cxx +++ b/vcl/source/window/mouse.cxx @@ -305,7 +305,7 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) { // here we already switch focus as ToTop() // should not give focus to another window - mpWindowImpl->mpFrame->ToTop( SAL_FRAME_TOTOP_GRABFOCUS | SAL_FRAME_TOTOP_GRABFOCUS_ONLY ); + mpWindowImpl->mpFrame->ToTop( SalFrameToTop::GrabFocus | SalFrameToTop::GrabFocusOnly ); return; } } diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx index 8418919..cb51c6d 100644 --- a/vcl/source/window/stacking.cxx +++ b/vcl/source/window/stacking.cxx @@ -252,13 +252,13 @@ void Window::ImplToTop( ToTopFlags nFlags ) // do not bring floating windows on the client to top if( !ImplGetClientWindow() || !(ImplGetClientWindow()->GetStyle() & WB_SYSTEMFLOATWIN) ) { - sal_uInt16 nSysFlags = 0; + SalFrameToTop nSysFlags = SalFrameToTop::NONE; if ( nFlags & ToTopFlags::RestoreWhenMin ) - nSysFlags |= SAL_FRAME_TOTOP_RESTOREWHENMIN; + nSysFlags |= SalFrameToTop::RestoreWhenMin; if ( nFlags & ToTopFlags::ForegroundTask ) - nSysFlags |= SAL_FRAME_TOTOP_FOREGROUNDTASK; + nSysFlags |= SalFrameToTop::ForegroundTask; if ( nFlags & ToTopFlags::GrabFocusOnly ) - nSysFlags |= SAL_FRAME_TOTOP_GRABFOCUS_ONLY; + nSysFlags |= SalFrameToTop::GrabFocusOnly; mpWindowImpl->mpFrame->ToTop( nSysFlags ); } } @@ -985,7 +985,7 @@ void Window::SetParent( vcl::Window* pNewParent ) mpWindowImpl->mpFrameData->mpFocusWin = Application::GetFocusWindow(); if ( !mpWindowImpl->mpFrameData->mbHasFocus ) { - mpWindowImpl->mpFrame->ToTop( 0 ); + mpWindowImpl->mpFrame->ToTop( SalFrameToTop::NONE ); } } diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index 947ca79..0b10f17 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -1359,9 +1359,9 @@ void X11SalFrame::Show( bool bVisible, bool bNoActivate ) } } -void X11SalFrame::ToTop( sal_uInt16 nFlags ) +void X11SalFrame::ToTop( SalFrameToTop nFlags ) { - if( ( nFlags & SAL_FRAME_TOTOP_RESTOREWHENMIN ) + if( ( nFlags & SalFrameToTop::RestoreWhenMin ) && ! ( nStyle_ & SalFrameStyleFlags::FLOAT ) && nShowState_ != SHOWSTATE_HIDDEN && nShowState_ != SHOWSTATE_UNKNOWN @@ -1374,16 +1374,16 @@ void X11SalFrame::ToTop( sal_uInt16 nFlags ) } ::Window aToTopWindow = IsSysChildWindow() ? GetWindow() : GetShellWindow(); - if( ! (nFlags & SAL_FRAME_TOTOP_GRABFOCUS_ONLY) ) + if( ! (nFlags & SalFrameToTop::GrabFocusOnly) ) { XRaiseWindow( GetXDisplay(), aToTopWindow ); if( ! GetDisplay()->getWMAdaptor()->isTransientBehaviourAsExpected() ) for( std::list< X11SalFrame* >::const_iterator it = maChildren.begin(); it != maChildren.end(); ++it ) - (*it)->ToTop( nFlags & ~SAL_FRAME_TOTOP_GRABFOCUS ); + (*it)->ToTop( nFlags & ~SalFrameToTop::GrabFocus ); } - if( ( ( nFlags & SAL_FRAME_TOTOP_GRABFOCUS ) || ( nFlags & SAL_FRAME_TOTOP_GRABFOCUS_ONLY ) ) + if( ( ( nFlags & SalFrameToTop::GrabFocus ) || ( nFlags & SalFrameToTop::GrabFocusOnly ) ) && bMapped_ ) { if( m_bXEmbed ) @@ -3565,7 +3565,7 @@ long X11SalFrame::HandleSizeEvent( XConfigureEvent *pEvent ) IMPL_LINK_NOARG_TYPED(X11SalFrame, HandleAlwaysOnTopRaise, Timer *, void) { if( bMapped_ ) - ToTop( 0 ); + ToTop( SalFrameToTop::NONE ); } long X11SalFrame::HandleReparentEvent( XReparentEvent *pEvent ) diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx index daf064d..7e118f0 100644 --- a/vcl/unx/gtk/gtksalframe.cxx +++ b/vcl/unx/gtk/gtksalframe.cxx @@ -2164,7 +2164,7 @@ void GtkSalFrame::SetAlwaysOnTop( bool bOnTop ) gtk_window_set_keep_above( GTK_WINDOW( m_pWindow ), bOnTop ); } -void GtkSalFrame::ToTop( sal_uInt16 nFlags ) +void GtkSalFrame::ToTop( SalFrameToTop nFlags ) { if( m_pWindow ) { @@ -2172,7 +2172,7 @@ void GtkSalFrame::ToTop( sal_uInt16 nFlags ) gtk_widget_grab_focus( m_pWindow ); else if( IS_WIDGET_MAPPED( m_pWindow ) ) { - if( ! (nFlags & SAL_FRAME_TOTOP_GRABFOCUS_ONLY) ) + if( ! (nFlags & SalFrameToTop::GrabFocusOnly) ) gtk_window_present( GTK_WINDOW(m_pWindow) ); else { @@ -2197,7 +2197,7 @@ void GtkSalFrame::ToTop( sal_uInt16 nFlags ) } else { - if( nFlags & SAL_FRAME_TOTOP_RESTOREWHENMIN ) + if( nFlags & SalFrameToTop::RestoreWhenMin ) gtk_window_present( GTK_WINDOW(m_pWindow) ); } } diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index b6352c6..ada90e7 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -1999,7 +1999,7 @@ void GtkSalFrame::SetAlwaysOnTop( bool bOnTop ) gtk_window_set_keep_above( GTK_WINDOW( m_pWindow ), bOnTop ); } -void GtkSalFrame::ToTop( sal_uInt16 nFlags ) +void GtkSalFrame::ToTop( SalFrameToTop nFlags ) { if( m_pWindow ) { @@ -2007,7 +2007,7 @@ void GtkSalFrame::ToTop( sal_uInt16 nFlags ) gtk_widget_grab_focus( m_pWindow ); else if( IS_WIDGET_MAPPED( m_pWindow ) ) { - if( ! (nFlags & SAL_FRAME_TOTOP_GRABFOCUS_ONLY) ) + if( ! (nFlags & SalFrameToTop::GrabFocusOnly) ) gtk_window_present( GTK_WINDOW(m_pWindow) ); else { @@ -2017,7 +2017,7 @@ void GtkSalFrame::ToTop( sal_uInt16 nFlags ) } else { - if( nFlags & SAL_FRAME_TOTOP_RESTOREWHENMIN ) + if( nFlags & SalFrameToTop::RestoreWhenMin ) gtk_window_present( GTK_WINDOW(m_pWindow) ); } } diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index 5ac0cbd..fd5d207 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -1960,13 +1960,13 @@ void WinSalFrame::SetAlwaysOnTop( bool bOnTop ) SetWindowPos( mhWnd, hWnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE ); } -static void ImplSalToTop( HWND hWnd, sal_uInt16 nFlags ) +static void ImplSalToTop( HWND hWnd, SalFrameToTop nFlags ) { WinSalFrame* pToTopFrame = GetWindowPtr( hWnd ); if( pToTopFrame && (pToTopFrame->mnStyle & SalFrameStyleFlags::SYSTEMCHILD) ) BringWindowToTop( hWnd ); - if ( nFlags & SAL_FRAME_TOTOP_FOREGROUNDTASK ) + if ( nFlags & SalFrameToTop::ForegroundTask ) { // This magic code is necessary to connect the input focus of the // current window thread and the thread which owns the window that @@ -1979,7 +1979,7 @@ static void ImplSalToTop( HWND hWnd, sal_uInt16 nFlags ) AttachThreadInput(myThreadID,currThreadID,FALSE); } - if ( nFlags & SAL_FRAME_TOTOP_RESTOREWHENMIN ) + if ( nFlags & SalFrameToTop::RestoreWhenMin ) { HWND hIconicWnd = hWnd; while ( hIconicWnd ) @@ -2013,15 +2013,15 @@ static void ImplSalToTop( HWND hWnd, sal_uInt16 nFlags ) } } -void WinSalFrame::ToTop( sal_uInt16 nFlags ) +void WinSalFrame::ToTop( SalFrameToTop nFlags ) { - nFlags &= ~SAL_FRAME_TOTOP_GRABFOCUS; // this flag is not needed on win32 + nFlags &= ~SalFrameToTop::GrabFocus; // this flag is not needed on win32 // Post this Message to the window, because this only works // in the thread of the window, which has create this window. // We post this message to avoid deadlocks if ( GetSalData()->mnAppThreadId != GetCurrentThreadId() ) { - BOOL const ret = PostMessageW( mhWnd, SAL_MSG_TOTOP, nFlags, 0 ); + BOOL const ret = PostMessageW( mhWnd, SAL_MSG_TOTOP, (WPARAM)nFlags, 0 ); SAL_WARN_IF(0 == ret, "vcl", "ERROR: PostMessage() failed!"); } else @@ -5782,7 +5782,7 @@ LRESULT CALLBACK SalFrameWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lP rDef = FALSE; break; case SAL_MSG_TOTOP: - ImplSalToTop( hWnd, (sal_uInt16)wParam ); + ImplSalToTop( hWnd, (SalFrameToTop)wParam ); rDef = FALSE; break; case SAL_MSG_SHOW: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits