summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@gmail.com>2015-05-04 17:48:18 +0200
committerPaul Olav Tvete <paul.tvete@gmail.com>2015-05-04 17:55:02 +0200
commitc05a8757b095cb554ea3e50f202a0683ca7d5bf7 (patch)
tree0cc94f6907d57030e7db4e67e59781c269ce9906 /src/gui/painting
parent3110a6642cb9424069ad89666e3cca01d1d6b420 (diff)
Multi-screen fixes
Various fixes, including: * Resize backingstore properly if screen has changed * Trigger resize event on screen change if necessary * Fix yet another race condition in screen detection * Trying to fix screen mapping Not completely finished, but I think it's better to keep in sync, and not diverge too much.
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qbackingstore.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp
index cff99722f3..65a108f7ee 100644
--- a/src/gui/painting/qbackingstore.cpp
+++ b/src/gui/painting/qbackingstore.cpp
@@ -106,7 +106,7 @@ void QBackingStore::flush(const QRegion &region, QWindow *win, const QPoint &off
}
#endif
- d_ptr->platformBackingStore->flush(win, QHighDpi::toNativePixels(region, d_ptr->window), offset);
+ d_ptr->platformBackingStore->flush(win, QHighDpi::toNativeLocalRegion(region, d_ptr->window), offset);
}
/*!
@@ -182,7 +182,10 @@ QWindow* QBackingStore::window() const
void QBackingStore::beginPaint(const QRegion &region)
{
- d_ptr->platformBackingStore->beginPaint(QHighDpi::toNativePixels(region, d_ptr->window));
+ if (d_ptr->highDpiBackingstore &&
+ d_ptr->highDpiBackingstore->devicePixelRatio() != d_ptr->window->devicePixelRatio())
+ resize(size());
+ d_ptr->platformBackingStore->beginPaint(QHighDpi::toNativeLocalRegion(region, d_ptr->window));
}
/*!
@@ -226,7 +229,7 @@ bool QBackingStore::scroll(const QRegion &area, int dx, int dy)
Q_UNUSED(dx);
Q_UNUSED(dy);
- return d_ptr->platformBackingStore->scroll(QHighDpi::toNativePixels(area, d_ptr->window), QHighDpi::toNativePixels(dx, d_ptr->window), QHighDpi::toNativePixels(dy, d_ptr->window));
+ return d_ptr->platformBackingStore->scroll(QHighDpi::toNativeLocalRegion(area, d_ptr->window), QHighDpi::toNativePixels(dx, d_ptr->window), QHighDpi::toNativePixels(dy, d_ptr->window));
}
void QBackingStore::setStaticContents(const QRegion &region)