Workaround for windows display not updating, webkit player does not work yet. Partial fix for bug 1531319.

Fixes: https://launchpad.net/bugs/1531319
This commit is contained in:
Tomas Groth 2016-01-20 23:25:40 +01:00
parent 6b23a2224f
commit 85c329fb26
2 changed files with 12 additions and 2 deletions

View File

@ -90,7 +90,7 @@ class Display(QtWidgets.QGraphicsView):
# 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 not is_macosx() and not is_win():
if not is_macosx():
self.setViewport(QtOpenGL.QGLWidget())
def setup(self):
@ -559,6 +559,13 @@ class MainDisplay(OpenLPMixin, Display, RegistryProperties):
if window_id == main_window_id:
self.main_window.raise_()
def shake_web_view(self):
"""
Resizes the web_view a bit to force an update. Workaround for bug #1531319, should not be needed with PyQt 5.6.
"""
self.web_view.setGeometry(0, 0, self.width(), self.height()-1)
self.web_view.setGeometry(0, 0, self.width(), self.height())
class AudioPlayer(OpenLPMixin, QtCore.QObject):
"""

View File

@ -31,7 +31,7 @@ from threading import Lock
from PyQt5 import QtCore, QtGui, QtWidgets
from openlp.core.common import Registry, RegistryProperties, Settings, SlideLimits, UiStrings, translate, \
RegistryMixin, OpenLPMixin
RegistryMixin, OpenLPMixin, is_win
from openlp.core.lib import OpenLPToolbar, ItemCapabilities, ServiceItem, ImageSource, ServiceItemAction, \
ScreenList, build_icon, build_html
from openlp.core.ui import HideMode, MainDisplay, Display, DisplayControllerType
@ -1101,6 +1101,9 @@ class SlideController(DisplayController, RegistryProperties):
self.display.image(to_display)
# reset the store used to display first image
self.service_item.bg_image_bytes = None
# Workaround for bug #1531319, should not be needed with PyQt 5.6.
if self.is_live and is_win():
self.display.shake_web_view()
self.selected_row = row
self.update_preview()
self.preview_widget.change_slide(row)