diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2012-11-26 14:54:34 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2012-11-26 15:01:25 +0100 |
commit | 8bf500c365e3cf24086a672f63b0b5d5b60ff4a9 (patch) | |
tree | 2994761cfbd9651757dd922d3e7321adef5f962a /vcl | |
parent | 8d87128c6bcbac26520a8fef7ae5a6256a824104 (diff) |
make presentation spanning all screens work (bnc#758138)
This reverts an API "improvement" from 6ee5dfa150d408179e20a5525ff7ec46649e0e58
that tried to use -1 as the current screen/display but failed. The check
for nDisplayScreen being in range broke all-screens (which is
represented as last_screen+1 value, which is broken in its own way, as e.g.
the screen count can change). The same way -1 as the default value is broken,
as everywhere else invalid invalid screen number means spanning all screens.
The extra overloads without a default value should take care of that.
Change-Id: Ie118038eacacebc007c25860732d5904ad0de2b9
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/vcl/wrkwin.hxx | 24 | ||||
-rw-r--r-- | vcl/source/window/wrkwin.cxx | 16 |
2 files changed, 23 insertions, 17 deletions
diff --git a/vcl/inc/vcl/wrkwin.hxx b/vcl/inc/vcl/wrkwin.hxx index e283400cd445..d151d1f12232 100644 --- a/vcl/inc/vcl/wrkwin.hxx +++ b/vcl/inc/vcl/wrkwin.hxx @@ -69,21 +69,23 @@ public: virtual sal_Bool Close(); - /** The default value of nDisplayScreen = -1 means "don't care" and - allows to backends to use any screen they like (most probably - the current one). - - NOTE: The default value cannot be 0, because 0 is a legitimate - Display Screen number. - */ - void ShowFullScreenMode( sal_Bool bFullScreenMode = sal_True, - sal_Int32 nDisplayScreen = -1 ); + void ShowFullScreenMode( sal_Bool bFullScreenMode, + sal_Int32 nDisplayScreen ); + /** + @overload Calls ShowFullScreenMode( bFullScreenMode, GetScreenNumber()). + */ + void ShowFullScreenMode( sal_Bool bFullScreenMode = sal_True ); void EndFullScreenMode() { ShowFullScreenMode( sal_False ); } sal_Bool IsFullScreenMode() const { return mbFullScreenMode; } + void StartPresentationMode( sal_Bool bPresentation, + sal_uInt16 nFlags, + sal_Int32 nDisplayScreen ); + /** + @overload Calls StartPresentationMode( bFullScreenMode, nFlags, GetScreenNumber()). + */ void StartPresentationMode( sal_Bool bPresentation = sal_True, - sal_uInt16 nFlags = 0, - sal_Int32 nDisplayScreen = 0 ); + sal_uInt16 nFlags = 0 ); void EndPresentationMode() { StartPresentationMode( sal_False ); } sal_Bool IsPresentationMode() const { return mbPresentationMode; } diff --git a/vcl/source/window/wrkwin.cxx b/vcl/source/window/wrkwin.cxx index 1256f258a89f..cc5bade1a18e 100644 --- a/vcl/source/window/wrkwin.cxx +++ b/vcl/source/window/wrkwin.cxx @@ -151,17 +151,16 @@ WorkWindow::~WorkWindow() // ----------------------------------------------------------------------- +void WorkWindow::ShowFullScreenMode( sal_Bool bFullScreenMode ) +{ + return ShowFullScreenMode( bFullScreenMode, GetScreenNumber()); +} + void WorkWindow::ShowFullScreenMode( sal_Bool bFullScreenMode, sal_Int32 nDisplayScreen ) { if ( !mbFullScreenMode == !bFullScreenMode ) return; - if( (nDisplayScreen < -1) - || (nDisplayScreen >= static_cast<sal_Int32>(Application::GetScreenCount()) ) ) - { - nDisplayScreen = GetScreenNumber(); - } - mbFullScreenMode = bFullScreenMode != 0; if ( !mbSysChild ) { @@ -184,6 +183,11 @@ void WorkWindow::ShowFullScreenMode( sal_Bool bFullScreenMode, sal_Int32 nDispla // ----------------------------------------------------------------------- +void WorkWindow::StartPresentationMode( sal_Bool bPresentation, sal_uInt16 nFlags ) +{ + return StartPresentationMode( bPresentation, nFlags, GetScreenNumber()); +} + void WorkWindow::StartPresentationMode( sal_Bool bPresentation, sal_uInt16 nFlags, sal_Int32 nDisplayScreen ) { if ( !bPresentation == !mbPresentationMode ) |