diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2011-09-20 18:10:39 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-09-21 12:07:19 +0200 |
commit | c9c33bd227f0199b368d92131a0ee566d2651061 (patch) | |
tree | 8e0bc6559f5cc6cdcc8b0912f76904aded83df37 /src/gui/kernel/qdnd_p.h | |
parent | 0d4918950e61f3cbfd01c9fae37c463352c69dd3 (diff) |
Fix support for drag pixmaps
Re-add the support for drag pixmaps to qdnd.
Use the new WindowTransparentForMouseEvents
flag for the window that shows the drag pixmap.
Change-Id: I4b594085c161475988b9be0ffdc02c75fcc37f66
Reviewed-on: http://codereview.qt-project.org/5261
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui/kernel/qdnd_p.h')
-rw-r--r-- | src/gui/kernel/qdnd_p.h | 42 |
1 files changed, 11 insertions, 31 deletions
diff --git a/src/gui/kernel/qdnd_p.h b/src/gui/kernel/qdnd_p.h index 2a81de5c7f..a94d439811 100644 --- a/src/gui/kernel/qdnd_p.h +++ b/src/gui/kernel/qdnd_p.h @@ -62,7 +62,7 @@ #include "QtGui/qwindow.h" #include "QtCore/qpoint.h" #include "private/qobject_p.h" - +#include "QtGui/qbackingstore.h" QT_BEGIN_NAMESPACE class QEventLoop; @@ -109,41 +109,21 @@ public: Qt::DropAction defaultDropAction; }; -class QShapedPixmapWindow : public QWindow { - QPixmap pixmap; +class QShapedPixmapWindow : public QWindow +{ public: - QShapedPixmapWindow() : - QWindow() - { - setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); - // ### Should we set the surface type to raster? - // ### FIXME -// setAttribute(Qt::WA_TransparentForMouseEvents); - } + QShapedPixmapWindow(); - void move(const QPoint &p) { - QRect g = geometry(); - g.setTopLeft(p); - setGeometry(g); - } - void setPixmap(QPixmap pm) + void exposeEvent(QExposeEvent *) { - pixmap = pm; - // ### -// if (!pixmap.mask().isNull()) { -// setMask(pixmap.mask()); -// } else { -// clearMask(); -// } - setGeometry(QRect(geometry().topLeft(), pm.size())); + render(); } - // ### Get it painted again! -// void paintEvent(QPaintEvent*) -// { -// QPainter p(this); -// p.drawPixmap(0,0,pixmap); -// } + void render(); + + QBackingStore *backingStore; + QPixmap pixmap; + QPoint hotSpot; }; |