[QScintilla] Dragging Text

Phil Thompson phil at riverbankcomputing.com
Sun Dec 23 14:25:14 GMT 2007


On Friday 21 December 2007, Baz Walter wrote:
> I have found some problems with dragging and dropping text within an
> editor window. The default behaviour should be to move the dragged text
> (unless the ctrl key is also pressed), but with the current snapshot
> (2007-12-05) the text is always copied. (This is on X11 with Qt 4.3.1).
>
> Part of the problem is caused by some recent changes in Scintilla and
> can be fixed very easily. All that is needed is to add a line to the top
> of ScintillaQt::StartDrag like this:
>
> void ScintillaQt::StartDrag()
> {
>      inDragDrop = ddDragging;
>
> ...
>
> This works for Qt3, but not for Qt4. There seems to be an additional
> problem with Qt4, which is also present in the current stable release.
> I've tracked this down to the use of QDrag.start() in
> ScintillaQt::StartDrag. According to the current Qt4 docs, this function
> is obsolete and it recommends the use of QDrag.exec() instead. However,
> when I tried patching the relevant code like this:
>
>      // Qt::DropAction action = drag->start(actions);
>      Qt::DropAction action = drag->exec(actions);
>
> there were problems getting the text to display correctly. The dragged
> text seems to disappear when being dropped, although it /is/ being moved
> correctly, because it can be revealed by using undo/redo.
>
> Any idea how to get this working correctly?

Should be fixed in tonight's snapshot.

Thanks,
Phil


More information about the QScintilla mailing list