View | Details | Raw Unified | Return to bug 368456
Collapse All | Expand All

(-)src/gui/qdnd_x11.cpp.sav (-10 / +12 lines)
Lines 1698-1718 void QDragManager::drop() Link Here
1698
1698
1699
bool QX11Data::xdndHandleBadwindow()
1699
bool QX11Data::xdndHandleBadwindow()
1700
{
1700
{
1701
    QDragManager *manager = QDragManager::self();
1701
    if (qt_xdnd_current_target) { // avoid possibly on-demand creating the manager in X error handler
1702
    if (manager->object && qt_xdnd_current_target) {
1702
        QDragManager *manager = QDragManager::self();
1703
        qt_xdnd_current_target = 0;
1703
        if (manager->object) {
1704
        qt_xdnd_current_proxy_target = 0;
1704
            qt_xdnd_current_target = 0;
1705
        manager->object->deleteLater();
1705
            qt_xdnd_current_proxy_target = 0;
1706
        manager->object = 0;
1706
            manager->object->deleteLater();
1707
        delete xdnd_data.deco;
1707
            manager->object = 0;
1708
        xdnd_data.deco = 0;
1708
            xdnd_data.deco->deleteLater();
1709
        return true;
1709
            xdnd_data.deco = 0;
1710
            return true;
1711
        }
1710
    }
1712
    }
1711
    if (qt_xdnd_dragsource_xid) {
1713
    if (qt_xdnd_dragsource_xid) {
1712
        qt_xdnd_dragsource_xid = 0;
1714
        qt_xdnd_dragsource_xid = 0;
1713
        if (qt_xdnd_current_widget) {
1715
        if (qt_xdnd_current_widget) {
1714
            QDragLeaveEvent e;
1716
            QDragLeaveEvent e;
1715
            QApplication::sendEvent(qt_xdnd_current_widget, &e);
1717
            QApplication::postEvent(qt_xdnd_current_widget, &e);
1716
            qt_xdnd_current_widget = 0;
1718
            qt_xdnd_current_widget = 0;
1717
        }
1719
        }
1718
        return true;
1720
        return true;

Return to bug 368456