summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Rosenkraenzer <br@blankpage.ch>2010-04-08 14:20:44 (GMT)
committerTom Cooksey <thomas.cooksey@nokia.com>2010-04-08 14:34:53 (GMT)
commite1671f51dde620a403fdf9a6d71d9a89f8795b96 (patch)
tree7f4284a100c49ab66c828bfb0621fee8236d163f
parent670e4fd179027eb13d4fc1558cac6eabade4a4d0 (diff)
downloadQt-e1671f51dde620a403fdf9a6d71d9a89f8795b96.zip
Qt-e1671f51dde620a403fdf9a6d71d9a89f8795b96.tar.gz
Qt-e1671f51dde620a403fdf9a6d71d9a89f8795b96.tar.bz2
Tweak the display update IOCTL calls
It seems to be best practice to pass the "update flash" command only when the entire display needs to be updated, while the refresh call without updating flash is sufficient for updating smaller regions Merge-request: 417 Reviewed-by: Tom Cooksey <thomas.cooksey@nokia.com>
-rw-r--r--src/gui/embedded/qscreenlinuxfb_qws.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gui/embedded/qscreenlinuxfb_qws.cpp b/src/gui/embedded/qscreenlinuxfb_qws.cpp
index 2cdd16f..4c91416 100644
--- a/src/gui/embedded/qscreenlinuxfb_qws.cpp
+++ b/src/gui/embedded/qscreenlinuxfb_qws.cpp
@@ -1221,7 +1221,7 @@ int QLinuxFbScreen::sharedRamSize(void * end)
/*!
\reimp
*/
-void QLinuxFbScreen::setDirty(const QRect &)
+void QLinuxFbScreen::setDirty(const QRect &r)
{
if(d_ptr->is8Track) {
// e-Ink displays need a trigger to actually show what is
@@ -1231,7 +1231,10 @@ void QLinuxFbScreen::setDirty(const QRect &)
// memory.
// There doesn't seem to be a way to tell it to just update
// a subset of the screen.
- ioctl(d_ptr->fd, 0x46a2, 1);
+ if(r.left() == 0 && r.top() == 0 && r.width() == dw && r.height() == dh)
+ ioctl(d_ptr->fd, 0x46a2, 1);
+ else
+ ioctl(d_ptr->fd, 0x46a2, 0);
}
}