summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qdnd_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2011-09-20 18:10:39 +0200
committerQt by Nokia <qt-info@nokia.com>2011-09-21 12:07:19 +0200
commitc9c33bd227f0199b368d92131a0ee566d2651061 (patch)
tree8e0bc6559f5cc6cdcc8b0912f76904aded83df37 /src/gui/kernel/qdnd_p.h
parent0d4918950e61f3cbfd01c9fae37c463352c69dd3 (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.h42
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;
};