Bug 178139 - Dragging plasmoids from panel -> other panel ibehaves wrong, instigates crash
Summary: Dragging plasmoids from panel -> other panel ibehaves wrong, instigates crash
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: containment-panel (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-19 03:33 UTC by Jonathan Thomas
Modified: 2008-12-19 11:22 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Thomas 2008-12-19 03:33:30 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

Ok, here's a real doozy I found right after the question "I wonder what happens if you try dragging a plasmoid from one panel to another" popped into my head. :P 
I am using KDE 4.1.85, for the record.

To reproduce:

-Create an empty second panel.
-Open panel toolbox, drag digital clock from the first panel and hover over the second panel.

This is where things start to get weird. The digital clock *looks* like it's moving across the second panel, but the "move" cursor is moving along the first panel.

-Let go of the digital clock over the second panel. The clock will appear to go back to the first panel. But maybe it's not really on the first panel?

-Remove the second panel
-Open the toolbox of the first panel

Plasma will now crash with the following backtrace:

Application: Plasma Workspace (plasma), signal SIGSEGV
[Current thread is 0 (LWP 20015)]

Thread 3 (Thread 0xa9382b90 (LWP 20016)):
#0  0xb7f22424 in __kernel_vsyscall ()
#1  0xb575b075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb63569ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb65416f2 in QWaitCondition::wait (this=0x9d41448, mutex=0x9d41444, time=4294967295) at thread/qwaitcondition_unix.cpp:82
#4  0xb78bc532 in QHostInfoAgent::run (this=0x9d41438) at kernel/qhostinfo.cpp:241
#5  0xb65406ae in QThreadPrivate::start (arg=0x9d41438) at thread/qthread_unix.cpp:185
#6  0xb575750f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb63487ee in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread 0xa8b4eb90 (LWP 20017)):
#0  0xb7f22424 in __kernel_vsyscall ()
#1  0xb575b075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb63569ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb65416f2 in QWaitCondition::wait (this=0x97b5d10, mutex=0x97b5d0c, time=4294967295) at thread/qwaitcondition_unix.cpp:82
#4  0xa9628392 in RenderThread::run (this=0x97b5d04) at /build/buildd/kdebase-workspace-4.1.85/plasma/wallpapers/image/renderthread.cpp:91
#5  0xb65406ae in QThreadPrivate::start (arg=0x97b5d04) at thread/qthread_unix.cpp:185
#6  0xb575750f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb63487ee in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb4a5fb20 (LWP 20015)):
[KCrash Handler]
#6  0xb6ec152c in QGraphicsLayoutItem::geometry (this=0x98bc7c8) at graphicsview/qgraphicslayoutitem.cpp:620
#7  0xb7eb6ebc in PanelAppletOverlay::syncGeometry (this=0xa012ad0) at /build/buildd/kdebase-workspace-4.1.85/plasma/shells/desktop/panelappletoverlay.cpp:356
#8  0xb7eb7086 in PanelAppletOverlay (this=0xa012ad0, applet=0x984a148, parent=0x9dde718) at /build/buildd/kdebase-workspace-4.1.85/plasma/shells/desktop/panelappletoverlay.cpp:90
#9  0xb7eaf07a in PanelView::togglePanelController (this=0x9dde718) at /build/buildd/kdebase-workspace-4.1.85/plasma/shells/desktop/panelview.cpp:744
#10 0xb7eb3023 in PanelView::qt_metacall (this=0x9dde718, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfa226e8)
    at /build/buildd/kdebase-workspace-4.1.85/obj-i486-linux-gnu/plasma/shells/desktop/panelview.moc:94
#11 0xb6645a60 in QMetaObject::activate (sender=0x97acb48, from_signal_index=31, to_signal_index=31, argv=0x0) at kernel/qobject.cpp:3031
#12 0xb66467e2 in QMetaObject::activate (sender=0x97acb48, m=0xb7e70ac8, local_signal_index=3, argv=0x0) at kernel/qobject.cpp:3101
#13 0xb7d48627 in Plasma::Containment::toolBoxToggled () from /usr/lib/libplasma.so.3
#14 0xb7d549b7 in Plasma::Containment::qt_metacall () from /usr/lib/libplasma.so.3
#15 0xa9711dba in Panel::qt_metacall (this=0x97acb48, _c=QMetaObject::InvokeMetaMethod, _id=31, _a=0xbfa22808)
    at /build/buildd/kdebase-workspace-4.1.85/obj-i486-linux-gnu/plasma/containments/panel/panel.moc:70
#16 0xb6645a60 in QMetaObject::activate (sender=0x981de08, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3031
#17 0xb66467e2 in QMetaObject::activate (sender=0x981de08, m=0xb7e722d8, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3101
#18 0xb7d940f7 in ?? () from /usr/lib/libplasma.so.3
#19 0xb7d954cd in ?? () from /usr/lib/libplasma.so.3
#20 0xb6e820b0 in QGraphicsItem::sceneEvent (this=0x981de08, event=0xbfa22e94) at graphicsview/qgraphicsitem.cpp:4001
#21 0xb6ea054c in QGraphicsScenePrivate::sendEvent (this=0x97293b0, item=0x981de10, event=0xbfa22e94) at graphicsview/qgraphicsscene.cpp:1030
#22 0xb6ea1742 in QGraphicsScenePrivate::sendMouseEvent (this=0x97293b0, mouseEvent=0xbfa22e94) at graphicsview/qgraphicsscene.cpp:1101
#23 0xb6ea9431 in QGraphicsScene::mouseReleaseEvent (this=0x9700838, mouseEvent=0xbfa22e94) at graphicsview/qgraphicsscene.cpp:3597
#24 0xb6ea9787 in QGraphicsScene::event (this=0x9700838, event=0xbfa22e94) at graphicsview/qgraphicsscene.cpp:2966
#25 0xb69058ec in QApplicationPrivate::notify_helper (this=0x96a6350, receiver=0x9700838, e=0xbfa22e94) at kernel/qapplication.cpp:3803
#26 0xb690d72e in QApplication::notify (this=0x9688e20, receiver=0x9700838, e=0xbfa22e94) at kernel/qapplication.cpp:3393
#27 0xb7682d3d in KApplication::notify (this=0x9688e20, receiver=0x9700838, event=0xbfa22e94) at /build/buildd/kde4libs-4.1.85/kdeui/kernel/kapplication.cpp:307
#28 0xb6630e61 in QCoreApplication::notifyInternal (this=0x9688e20, receiver=0x9700838, event=0xbfa22e94) at kernel/qcoreapplication.cpp:587
#29 0xb6ebdc22 in QGraphicsView::mouseReleaseEvent (this=0x9dde718, event=0xbfa234a8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:209
#30 0xb695d962 in QWidget::event (this=0x9dde718, event=0xbfa234a8) at kernel/qwidget.cpp:7163
#31 0xb6c94fd3 in QFrame::event (this=0x9dde718, e=0xbfa234a8) at widgets/qframe.cpp:651
#32 0xb6d2b7df in QAbstractScrollArea::viewportEvent (this=0x9dde718, e=0x98bc7c8) at widgets/qabstractscrollarea.cpp:943
#33 0xb6eb8d0f in QGraphicsView::viewportEvent (this=0x9dde718, event=0xbfa234a8) at graphicsview/qgraphicsview.cpp:2337
#34 0xb6d2dd85 in QAbstractScrollAreaFilter::eventFilter (this=0x9de01f8, o=0x9ddedd8, e=0xbfa234a8) at widgets/qabstractscrollarea_p.h:96
#35 0xb663004a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x96a6350, receiver=0x9ddedd8, event=0xbfa234a8) at kernel/qcoreapplication.cpp:694
#36 0xb69058ca in QApplicationPrivate::notify_helper (this=0x96a6350, receiver=0x9ddedd8, e=0xbfa234a8) at kernel/qapplication.cpp:3799
#37 0xb690e0e1 in QApplication::notify (this=0x9688e20, receiver=0x9ddedd8, e=0xbfa234a8) at kernel/qapplication.cpp:3528
#38 0xb7682d3d in KApplication::notify (this=0x9688e20, receiver=0x9ddedd8, event=0xbfa234a8) at /build/buildd/kde4libs-4.1.85/kdeui/kernel/kapplication.cpp:307
#39 0xb6630e61 in QCoreApplication::notifyInternal (this=0x9688e20, receiver=0x9ddedd8, event=0xbfa234a8) at kernel/qcoreapplication.cpp:587
#40 0xb690d36e in QApplicationPrivate::sendMouseEvent (receiver=0x9ddedd8, event=0xbfa234a8, alienWidget=0x9ddedd8, nativeWidget=0x9dde718, buttonDown=0xb70cbed0, lastMouseReceiver=@0xb70cbed4)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212
#41 0xb6977656 in QETWidget::translateMouseEvent (this=0x9dde718, event=0xbfa23a8c) at kernel/qapplication_x11.cpp:4042
#42 0xb69769e5 in QApplication::x11ProcessEvent (this=0x9688e20, event=0xbfa23a8c) at kernel/qapplication_x11.cpp:3038
#43 0xb69a07aa in x11EventSourceDispatch (s=0x96a2df8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#44 0xb559c6f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#45 0xb559fda3 in ?? () from /usr/lib/libglib-2.0.so.0
#46 0xb559ff61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#47 0xb665b478 in QEventDispatcherGlib::processEvents (this=0x96ac338, flags={i = -1079886776}) at kernel/qeventdispatcher_glib.cpp:319
#48 0xb699fea5 in QGuiEventDispatcherGlib::processEvents (this=0x96ac338, flags={i = -1079886728}) at kernel/qguieventdispatcher_glib.cpp:198
#49 0xb662f52a in QEventLoop::processEvents (this=0xbfa23cf0, flags={i = -1079886664}) at kernel/qeventloop.cpp:143
#50 0xb662f6ea in QEventLoop::exec (this=0xbfa23cf0, flags={i = -1079886600}) at kernel/qeventloop.cpp:194
#51 0xb6631da5 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#52 0xb6905767 in QApplication::exec () at kernel/qapplication.cpp:3331
#53 0xb7ea5ce1 in kdemain (argc=1, argv=0xbfa23ec4) at /build/buildd/kdebase-workspace-4.1.85/plasma/shells/desktop/main.cpp:58
#54 0x08048712 in main (argc=) at /build/buildd/kdebase-workspace-4.1.85/obj-i486-linux-gnu/plasma/shells/desktop/plasma_qgv_dummy.cpp:3
Comment 1 Aaron J. Seigo 2008-12-19 05:05:04 UTC
Indeed, panel<->panel drags are broken.

I see this in the debug output on konsole:

QGraphicsLayout::addChildWidget: Clock "" in wrong parent; moved to correct parent

that's probably a good clue.
Comment 2 Marco Martin 2008-12-19 11:22:33 UTC
SVN commit 898860 by mart:

support dragging of applets from panel to panel
BUG:178139


 M  +10 -0     panelappletoverlay.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=898860