summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 );
}