Changeset 561 for trunk/src/gui/painting/qwindowsurface_x11.cpp
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/src/gui/painting/qwindowsurface_x11.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtGui module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 95 95 { 96 96 #ifndef QT_NO_XRENDER 97 Q_ASSERT(!d_ptr->device.isNull()); 98 97 99 if (d_ptr->translucentBackground) { 98 100 if (d_ptr->device.depth() != 32) 99 static_cast<QX11PixmapData *>(d_ptr->device.data_ptr() )->convertToARGB32();101 static_cast<QX11PixmapData *>(d_ptr->device.data_ptr().data())->convertToARGB32(); 100 102 ::Picture src = X11->getSolidFill(d_ptr->device.x11Info().screen(), Qt::transparent); 101 103 ::Picture dst = d_ptr->device.x11PictureHandle(); … … 129 131 // qDebug() << "XSetClipRectangles"; 130 132 // for (int i = 0; i < num; ++i) 131 // qDebug() << " " << i << rects[i].x << rects[i].x << rects[i].y << rects[i].width << rects[i].height; 132 XSetClipRectangles(X11->display, gc, 0, 0, rects, num, YXBanded); 133 // qDebug() << ' ' << i << rects[i].x << rects[i].x << rects[i].y << rects[i].width << rects[i].height; 134 if (num != 1) 135 XSetClipRectangles(X11->display, gc, 0, 0, rects, num, YXBanded); 133 136 XCopyArea(X11->display, d_ptr->device.handle(), widget->handle(), gc, 134 137 br.x() + offset.x(), br.y() + offset.y(), br.width(), br.height(), wbr.x(), wbr.y()); 138 if (num != 1) 139 XSetClipMask(X11->display, gc, XNone); 135 140 } 136 141 … … 140 145 141 146 const QSize size = rect.size(); 142 if (d_ptr->device.size() == size) 147 148 if (d_ptr->device.size() == size || size.width() <= 0 || size.height() <= 0) 143 149 return; 144 150 #ifndef QT_NO_XRENDER … … 154 160 155 161 QX11PixmapData *oldData = static_cast<QX11PixmapData *>(d_ptr->device.pixmapData()); 156 Q_ASSERT(oldData); 157 if ( !oldData->uninit&& hasStaticContents()) {162 163 if (oldData && !(oldData->flags & QX11PixmapData::Uninitialized) && hasStaticContents()) { 158 164 // Copy the content of the old pixmap into the new one. 159 165 QX11PixmapData *newData = new QX11PixmapData(QPixmapData::PixmapType); … … 176 182 qMin(boundingRect.height(), size.height()), dx, dy); 177 183 XFreeGC(X11->display, tmpGc); 178 newData-> uninit = false;184 newData->flags &= ~QX11PixmapData::Uninitialized; 179 185 180 186 d_ptr->device = QPixmap(newData); … … 184 190 } 185 191 186 if (gc) 192 if (gc) { 187 193 XFreeGC(X11->display, gc); 188 gc = XCreateGC(X11->display, d_ptr->device.handle(), 0, 0); 189 XSetGraphicsExposures(X11->display, gc, False); 194 gc = 0; 195 } 196 if (!d_ptr->device.isNull()) { 197 gc = XCreateGC(X11->display, d_ptr->device.handle(), 0, 0); 198 XSetGraphicsExposures(X11->display, gc, False); 199 } 190 200 } 191 201
Note:
See TracChangeset
for help on using the changeset viewer.