[ooo-build-commit] .: Branch 'ooo-build-3-2' - patches/dev300
Thorsten Behrens
thorsten at kemper.freedesktop.org
Wed Feb 10 14:00:57 PST 2010
patches/dev300/apply | 1
patches/dev300/vcl-xinerama-clone-fix.diff | 47 +++++++++++++++++++++++++++++
2 files changed, 48 insertions(+)
New commits:
commit 0280fcc31445f7a443717caeb61b1dbe91ae2608
Author: Thorsten Behrens <tbehrens at novell.com>
Date: Wed Feb 10 22:53:59 2010 +0100
Fix mis-detection of cloned displays in slideshow
* patches/dev300/apply: added below patch
* patches/dev300/vcl-xinerama-clone-fix.diff: check for monitor rects
being at the same virtual offset also in
GtkSalDisplay::monitorsChanged(), to avoid mis-detection of clone
display as multi-screen setup during slideshow. Fixes n#578730.
diff --git a/patches/dev300/apply b/patches/dev300/apply
index 090576c..055fe44 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3550,3 +3550,4 @@ connectivity-build-fix.diff, i#107957, fridrich
# Allow oowintool to detect java sdk 1.6.x
oowintool-java6.diff, fridrich
connectivity-build-fix-mac.diff, thorsten
+vcl-xinerama-clone-fix.diff, n#578730, thorsten
diff --git a/patches/dev300/vcl-xinerama-clone-fix.diff b/patches/dev300/vcl-xinerama-clone-fix.diff
new file mode 100644
index 0000000..0f85e90
--- /dev/null
+++ b/patches/dev300/vcl-xinerama-clone-fix.diff
@@ -0,0 +1,47 @@
+Fix clone screen issues with gtk plugin on xinerama displays
+
+From: Thorsten Behrens <thb at openoffice.org>
+
+
+---
+
+ vcl/unx/gtk/app/gtkdata.cxx | 25 +++++++++++++++++++++++--
+ 1 files changed, 23 insertions(+), 2 deletions(-)
+
+
+diff --git vcl/unx/gtk/app/gtkdata.cxx vcl/unx/gtk/app/gtkdata.cxx
+index 047938a..2ebd8b6 100644
+--- vcl/unx/gtk/app/gtkdata.cxx
++++ vcl/unx/gtk/app/gtkdata.cxx
+@@ -224,8 +224,29 @@ void GtkSalDisplay::monitorsChanged( GdkScreen* pScreen )
+ {
+ GdkRectangle dest;
+ gdk_screen_get_monitor_geometry(pScreen, i, &dest);
+- m_aXineramaScreens.push_back( Rectangle( Point(dest.x,
+- dest.y ), Size( dest.width, dest.height ) ) );
++
++ // see if any frame buffers are at the same coordinates
++ // this can happen with weird configuration e.g. on
++ // XFree86 and Clone displays
++ bool bDuplicate = false;
++ for( int n = 0; n < i; n++ )
++ {
++ if( m_aXineramaScreens[n].Left() == dest.x &&
++ m_aXineramaScreens[n].Top() == dest.y )
++ {
++ bDuplicate = true;
++ if( m_aXineramaScreens[n].GetWidth() < dest.width ||
++ m_aXineramaScreens[n].GetHeight() < dest.height )
++ {
++ m_aXineramaScreens[n].SetSize( Size( dest.width,
++ dest.height ) );
++ }
++ break;
++ }
++ }
++ if( ! bDuplicate )
++ m_aXineramaScreens.push_back( Rectangle( Point(dest.x,
++ dest.y ), Size( dest.width, dest.height ) ) );
+ }
+ m_bXinerama = m_aXineramaScreens.size() > 1;
+ if( ! m_aFrames.empty() )
More information about the ooo-build-commit
mailing list