From ecb7fd9ff76d13ebffbc79c67aee38efe562a482 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Mon, 10 Mar 2014 13:34:48 +0100 Subject: [XCB] Fix drag-and-drop segfault QXcbDrag inherits QBasicDrag which takes care of calling updateAction() when needed, we don't need to call it explicitly. Task-number: QTBUG-33057 Change-Id: I754408f74f56de36ace8ffa40a61bd7c64619899 Reviewed-by: Friedemann Kleint Reviewed-by: Shawn Rutledge --- src/plugins/platforms/xcb/qxcbdrag.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/plugins/platforms/xcb/qxcbdrag.cpp') diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp index 61dfe8ac17..e931b96b88 100644 --- a/src/plugins/platforms/xcb/qxcbdrag.cpp +++ b/src/plugins/platforms/xcb/qxcbdrag.cpp @@ -872,7 +872,6 @@ void QXcbDrag::handleLeave(QWindow *w, const xcb_client_message_event_t *event) } QWindowSystemInterface::handleDrag(w,0,QPoint(),Qt::IgnoreAction); - updateAction(Qt::IgnoreAction); xdnd_dragsource = 0; xdnd_types.clear(); -- cgit v1.2.3 From 530f9856519e58c7793095a5ac92d49b192d3b0b Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Wed, 12 Mar 2014 15:50:36 +0100 Subject: [XCB] Fix crash in QML drag-and-drop Use QPointer to make sure that we are not trying to destroy already deleted object. Task-number: QTBUG-35702 Change-Id: Ib746996787488e636f25e6ea5be0571607ee2ded Reviewed-by: Laszlo Agocs Reviewed-by: Friedemann Kleint --- src/plugins/platforms/xcb/qxcbdrag.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/plugins/platforms/xcb/qxcbdrag.cpp') diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp index e931b96b88..4f0f57c375 100644 --- a/src/plugins/platforms/xcb/qxcbdrag.cpp +++ b/src/plugins/platforms/xcb/qxcbdrag.cpp @@ -1044,7 +1044,8 @@ void QXcbDrag::timerEvent(QTimerEvent* e) - showing dialog box on drop event where user's response takes more time than XdndDropTransactionTimeout (QTBUG-14493) - dnd takes unusually long time to process data */ - t.drag->deleteLater(); + if (t.drag) + t.drag->deleteLater(); transactions.removeAt(i--); } else { stopTimer = false; -- cgit v1.2.3