summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Manuel Duclos Vergara <carlos.duclos@nokia.com>2010-03-02 09:24:41 (GMT)
committerCarlos Manuel Duclos Vergara <carlos.duclos@nokia.com>2010-03-02 09:24:41 (GMT)
commit2d0e06a495b5c5a723997eef9618fdd7a7bc98b1 (patch)
treed090b23ae66ae00abb84ecebab8f6304516639cc
parenta433a46e4aa726185272d66069e6d9b7c8ab9cf8 (diff)
downloadQt-2d0e06a495b5c5a723997eef9618fdd7a7bc98b1.zip
Qt-2d0e06a495b5c5a723997eef9618fdd7a7bc98b1.tar.gz
Qt-2d0e06a495b5c5a723997eef9618fdd7a7bc98b1.tar.bz2
Carbon : Setting palette brush to a pixmap does not work.
The problem occurs because we were drawing the pixmap and then clearing the buffer. This patch basically moves the clearing of the buffer to the start of the process instead of having it in the middle. Task-number: QTBUG-7800 Reviewed-by: Morten Sorvig
-rw-r--r--src/gui/kernel/qwidget_mac.mm12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index f78596e..c7acf69 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -1268,6 +1268,11 @@ OSStatus QWidgetPrivate::qt_widget_event(EventHandlerCallRef er, EventRef event,
if (widget->isVisible() && widget->updatesEnabled()) { //process the actual paint event.
if(widget->testAttribute(Qt::WA_WState_InPaintEvent))
qWarning("QWidget::repaint: Recursive repaint detected");
+ if (widget->isWindow() && !widget->d_func()->isOpaque
+ && !widget->testAttribute(Qt::WA_MacBrushedMetal)) {
+ QRect qrgnRect = qrgn.boundingRect();
+ CGContextClearRect(cg, CGRectMake(qrgnRect.x(), qrgnRect.y(), qrgnRect.width(), qrgnRect.height()));
+ }
QPoint redirectionOffset(0, 0);
QWidget *tl = widget->window();
@@ -1318,13 +1323,6 @@ OSStatus QWidgetPrivate::qt_widget_event(EventHandlerCallRef er, EventRef event,
widget->d_func()->restoreRedirected();
}
- if (widget->isWindow() && !widget->d_func()->isOpaque
- && !widget->testAttribute(Qt::WA_MacBrushedMetal)) {
- QRect qrgnRect = qrgn.boundingRect();
- CGContextClearRect(cg, CGRectMake(qrgnRect.x(), qrgnRect.y(), qrgnRect.width(), qrgnRect.height()));
- }
-
-
if(!HIObjectIsOfClass((HIObjectRef)hiview, kObjectQWidget))
CallNextEventHandler(er, event);