summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-11-18 23:46:56 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-11-18 23:46:56 -0600
commitb5d6591054de1d4f66280207023c43e9e191146c (patch)
treee9dd28d035aecbeac076c260c2a1fab9e6ba6b97
parent13a971ccd957eb195fbc8237b0b16c28d9f56583 (diff)
downloadqt3-b5d6591054de1d4f66280207023c43e9e191146c.tar.gz
qt3-b5d6591054de1d4f66280207023c43e9e191146c.zip
Add flush command to external painter command set
-rw-r--r--src/kernel/qpaintdevice.h4
-rw-r--r--src/kernel/qpainter_x11.cpp15
2 files changed, 17 insertions, 2 deletions
diff --git a/src/kernel/qpaintdevice.h b/src/kernel/qpaintdevice.h
index 75d7de1..1bec1b8 100644
--- a/src/kernel/qpaintdevice.h
+++ b/src/kernel/qpaintdevice.h
@@ -204,7 +204,9 @@ public:
PdcSaveWMatrix = 56,
PdcRestoreWMatrix = 57,
PdcSetClip = 60, // ival
- PdcSetClipRegion = 61, // rgn
+ PdcSetClipRegion = 61, // rgn,cmode
+ PdcFlush = 62, // <void>
+ PdcFlushRegion = 63, // rgn,cmode
PdcReservedStart = 0, // codes 0-199 are reserved
PdcReservedStop = 199 // for Qt
diff --git a/src/kernel/qpainter_x11.cpp b/src/kernel/qpainter_x11.cpp
index c1e4e07..2aea6bc 100644
--- a/src/kernel/qpainter_x11.cpp
+++ b/src/kernel/qpainter_x11.cpp
@@ -1264,8 +1264,16 @@ bool QPainter::end() // end painting
\sa flush() CoordinateMode
*/
-void QPainter::flush(const QRegion &, CoordinateMode)
+void QPainter::flush(const QRegion &rgn, CoordinateMode m)
{
+ if ( testf(ExtDev) ) {
+ QPDevCmdParam param[2];
+ param[0].rgn = &rgn;
+ param[1].ival = m;
+ pdev->cmd( QPaintDevice::PdcFlushRegion, this, param );
+ return;
+ }
+
flush();
}
@@ -1278,6 +1286,11 @@ void QPainter::flush(const QRegion &, CoordinateMode)
void QPainter::flush()
{
+ if ( testf(ExtDev) ) {
+ pdev->cmd( QPaintDevice::PdcFlush, this, 0 );
+ return;
+ }
+
if ( isActive() && dpy )
XFlush( dpy );
}