diff options
author | Àlex Fiestas <afiestas@kde.org> | 2017-01-13 01:33:42 +0100 |
---|---|---|
committer | Àlex Fiestas <afiestas@kde.org> | 2017-05-29 10:40:53 +0000 |
commit | 9ec028071409410dba192ec1c1e228cf3aea224b (patch) | |
tree | a90486c740d37493129a6a1f1e16ee558be988aa /src/gui/image/qmovie.cpp | |
parent | a089de0d992072bb06aa35323a53ca6cb5d76557 (diff) |
Make sure QWindow screen is set before calling QPlatformWindow::create
QWindow uses device independent geometry while QXcb and QPlatform
classes do not.
When QXcbWindow::create is called we have no guarantee that the correct
screen has been set in QWindow so the code
attempts to check if "currentScreen" matches "actualscreen". To perform
that operation though we need to convert
the units from "Device independent" to "native pixels" that we do by
calling QPlatformWindow::windowGeometry which
calls QHighDpiScaling::toNativePixels which requires the correct screen
to be already set.
So basically we have a cyclic dependency, to get the correct screen we
require the correct screen to be already set.
To fix this we can:
1-Remove the dependency (Look for the actual screen using device
independent pixels)
This will imply adding code in QXcb to use
QPlatformScreen::deviceIndependentGeometry to lookup the screen up
2-Make sure the Screen is set before calling QXcbWindow::create
This patch implements the first approach that allows us to keep the
changes within the QXcb backend which seems to be the only one affected.
Task-number: QTBUG-53813
Change-Id: I6dc955d63e17c3b3421f3a1a9e0d841e508b2e5c
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/gui/image/qmovie.cpp')
0 files changed, 0 insertions, 0 deletions