← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~mzibricky/openlp/bug-906926 into lp:openlp

 

matysek has proposed merging lp:~mzibricky/openlp/bug-906926 into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #906926 in OpenLP: "Display screen doesn't "stay on top" in OS X"
  https://bugs.launchpad.net/openlp/+bug/906926

For more details, see:
https://code.launchpad.net/~mzibricky/openlp/bug-906926/+merge/86718

This fixes bug #906926.
-- 
https://code.launchpad.net/~mzibricky/openlp/bug-906926/+merge/86718
Your team OpenLP Core is requested to review the proposed merge of lp:~mzibricky/openlp/bug-906926 into lp:openlp.
=== modified file 'openlp/core/ui/maindisplay.py'
--- openlp/core/ui/maindisplay.py	2011-12-10 14:34:28 +0000
+++ openlp/core/ui/maindisplay.py	2011-12-22 15:00:31 +0000
@@ -29,6 +29,7 @@
 and play multimedia within OpenLP.
 """
 import logging
+import platform
 
 from PyQt4 import QtCore, QtGui, QtWebKit, QtOpenGL
 from PyQt4.phonon import Phonon
@@ -60,7 +61,12 @@
         self.controller = controller
         self.screen = {}
         self.plugins = PluginManager.get_instance().plugins
-        self.setViewport(QtOpenGL.QGLWidget())
+        # FIXME: On Mac OS X (tested on 10.7) the display screen is corrupt with
+        # OpenGL. Only white blank screen is shown on the 2nd monitor all the
+        # time. We need to investigate more how to use OpenGL properly on Mac OS
+        # X.
+        if platform.system() != 'Darwin':
+            self.setViewport(QtOpenGL.QGLWidget())
 
     def setup(self):
         """
@@ -120,9 +126,15 @@
             self.audioPlayer = None
         self.firstTime = True
         self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;')
-        self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool |
-            QtCore.Qt.WindowStaysOnTopHint |
-            QtCore.Qt.X11BypassWindowManagerHint)
+        windowFlags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | \
+                QtCore.Qt.WindowStaysOnTopHint | \
+                QtCore.Qt.X11BypassWindowManagerHint
+        # FIXME: QtCore.Qt.SplashScreen is workaround to make display screen
+        # stay always on top on Mac OS X. For details see bug 906926.
+        # It needs more investigation to fix it properly.
+        if platform.system() == 'Darwin':
+            windowFlags = windowFlags | QtCore.Qt.SplashScreen
+        self.setWindowFlags(windowFlags)
         self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
         if self.isLive:
             QtCore.QObject.connect(Receiver.get_receiver(),


Follow ups