rendered paste body****************** 273,280 **** class QShapedPixmapWidget : public QWidget { public:- QShapedPixmapWidget(int screen = -1) :- QWidget(QApplication::desktop()->screen(screen), Qt::Tool | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint) { setAttribute(Qt::WA_X11NetWmWindowTypeDND);--- 273,280 ---- class QShapedPixmapWidget : public QWidget { public:+ QShapedPixmapWidget(QWidget* w) :+ QWidget(w, Qt::Tool | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint) { setAttribute(Qt::WA_X11NetWmWindowTypeDND);****************** 1448,1454 **** if ((qt_xdnd_current_screen == -1 && screen != X11->defaultScreen) || (screen != qt_xdnd_current_screen)) { // recreate the pixmap on the new screen... delete xdnd_data.deco;- xdnd_data.deco = new QShapedPixmapWidget(screen); if (!QWidget::mouseGrabber()) { updatePixmap(); xdnd_data.deco->grabMouse();--- 1448,1456 ---- if ((qt_xdnd_current_screen == -1 && screen != X11->defaultScreen) || (screen != qt_xdnd_current_screen)) { // recreate the pixmap on the new screen... delete xdnd_data.deco;+ QWidget* parent = object->source()->window()->x11Info().screen() == screen+ ? object->source()->window() : QApplication::desktop()->screen(screen);+ xdnd_data.deco = new QShapedPixmapWidget(parent); if (!QWidget::mouseGrabber()) { updatePixmap(); xdnd_data.deco->grabMouse();****************** 1909,1915 **** object = o; object->d_func()->target = 0;- xdnd_data.deco = new QShapedPixmapWidget(); willDrop = false;--- 1911,1917 ---- object = o; object->d_func()->target = 0;+ xdnd_data.deco = new QShapedPixmapWidget(object->source()->window()); willDrop = false;