diff options
-rw-r--r-- | src/kernel/qpaintdevice.h | 4 | ||||
-rw-r--r-- | src/kernel/qpainter_x11.cpp | 15 |
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 ); } |