D29006: Allow to copy or move selection to the other split view

Méven Car noreply at phabricator.kde.org
Wed Apr 29 08:04:24 BST 2020


meven added a comment.


  In D29006#659406 <https://phabricator.kde.org/D29006#659406>, @dfaure wrote:
  
  > dolphin is stuck in a blocking DBus call to plasmashell.
  >  Let's see what plasmashell is doing:
  >
  >   #6  0x00007f948f23d6bc in QXcbEventQueue::waitForNewEvents(unsigned long) (this=0x23343b0, time=398) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbeventqueue.cpp:360
  >   #7  0x00007f948f1f69cb in QXcbClipboard::waitForClipboardEvent(unsigned int, int, bool) (this=0x7f9488006060, window=41943136, type=31, checkManager=false) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:808
  >   #8  0x00007f948f1f6e3c in QXcbClipboard::getSelection(unsigned int, unsigned int, unsigned int, unsigned int) (this=0x7f9488006060, selection=398, target=400, property=405, time=318475618) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:895
  >   #9  0x00007f948f1f6d58 in QXcbClipboard::getDataInFormat(unsigned int, unsigned int) (this=0x7f9488006060, modeAtom=398, fmtAtom=400) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:880
  >   #10 0x00007f948f1f80e6 in QXcbClipboardMime::formats_sys() const (this=0x4364f20) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:100
  >   #11 0x00007f9493ae2eae in QInternalMimeData::formats() const (this=0x4364f20) at /d/qt/5/kde/qtbase/src/gui/kernel/qinternalmimedata.cpp:98
  >   #12 0x00007f946803838a in Klipper::checkClipData(bool) (this=0x58e7f10, selectionMode=<optimized out>) at /d/kde/src/5/kde/workspace/plasma-workspace/klipper/klipper.cpp:717
  >   #13 0x00007f949330e68b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (this=0x58f7940, r=0x58e7f10, a=0x7ffdeaefd170) at ../../include/QtCore/../../../../qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
  >   #14 0x00007f949334c0cf in doActivate<false>(QObject*, int, void**) (sender=0x2a90da0, signal_index=3, argv=0x7ffdeaefd170) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:3870
  >   #15 0x00007f9493345f29 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=0x2a90da0, m=0x7f94941793e0 <QClipboard::staticMetaObject>, local_signal_index=0, argv=0x7ffdeaefd170) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:3930
  >   #16 0x00007f9493f235ae in QClipboard::changed(QClipboard::Mode) (this=0x2a90da0, _t1=QClipboard::Clipboard) at .moc/moc_qclipboard.cpp:168
  >   #17 0x00007f9493ad57ff in QClipboard::emitChanged(QClipboard::Mode) (this=0x2a90da0, mode=QClipboard::Clipboard) at /d/qt/5/kde/qtbase/src/gui/kernel/qclipboard.cpp:608
  >   #18 0x00007f9493ab24f7 in QPlatformClipboard::emitChanged(QClipboard::Mode) (this=0x7f9488006060, mode=QClipboard::Clipboard) at /d/qt/5/kde/qtbase/src/gui/kernel/qplatformclipboard.cpp:125
  >   #19 0x00007f948f1f623f in QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_event_t*) (this=0x7f9488006060, event=0x7f9488076be0) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:675
  >   #20 0x00007f948f1fe773 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=0x233b680, event=0x7f9488076be0) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:705
  >   #21 0x00007f948f1ff7fd in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x233b680, flags=...) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1029
  >   #22 0x00007f948f23f3a3 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=0x23edff0) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:103
  >   #23 0x00007f9491acaff8 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
  >  
  >
  >
  > It's, err, blocking asking dolphin about the clipboard contents (for klipper)....
  >  Nice deadlock.
  >
  > Usually the user does "Copy" first (which triggers klipper) and "Paste" later (which registers the paste job to plasma).
  >  But here a single action does both copy and paste, so we have both things happening at the same time...
  >
  > One solution would be to fix KDynamicJobTracker to be async, but its API requires that registerJob creates the JobView, all subsequent calls need that....
  
  
  Sounds like a KF6 task. Isn't it ?

REPOSITORY
  R318 Dolphin

REVISION DETAIL
  https://phabricator.kde.org/D29006

To: aprcela, #dolphin, elvisangelaccio, ngraham, meven
Cc: dfaure, meven, kfm-devel, azyx, nikolaik, pberestov, iasensio, aprcela, fprice, fbampaloukas, alexde, Codezela, feverfew, spoorun, navarromorales, firef, ngraham, andrebarros, emmanuelp, rdieter, mikesomov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20200429/d239986b/attachment.htm>


More information about the kfm-devel mailing list