summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2012-11-26 14:54:34 +0100
committerLuboš Luňák <l.lunak@suse.cz>2012-11-26 15:01:25 +0100
commit8bf500c365e3cf24086a672f63b0b5d5b60ff4a9 (patch)
tree2994761cfbd9651757dd922d3e7321adef5f962a /vcl
parent8d87128c6bcbac26520a8fef7ae5a6256a824104 (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.hxx24
-rw-r--r--vcl/source/window/wrkwin.cxx16
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 )