[Gambas-user] Drag and drop inconsistent across toolkits
Benoît Minisini
gambas at ...1...
Sat Oct 18 20:14:06 CEST 2014
Le 17/10/2014 16:29, Tobias Boege a écrit :
> Hi,
>
> there is a project attached which tries to implement some drag and drop. The
> archive has gb.qt4 as graphical component but let me start with its behaviour
> under gb.gui:
>
> - drag from SourceLabel und SourceTextBox and drop on Destination work,
> - if I do three drag and drops: (i) from SourceLabel, (ii) from
> SourceTextBox, (iii) from SourceLabel again, I get an error "Undergoing
> drag". At step (ii) I see a warning in the console:
>
> (DragData:2084): GLib-GObject-WARNING **: gsignal.c:2580: instance '0x14170a0' has no handler with id '138'
>
> When I change the component to gb.qt4, I get the following:
>
> - drag from SourceTextBox does not work automatically anymore, I have to
> code it myself (losing the ability to select text in it),
> - no errors or warnings.
>
> The project is from another Gambas user and on his system (don't know what
> it is -- does it matter?), the project with gb.gui does:
>
> - drag from SourceTextBox works automatically, drag from SourceLabel
> doesn't work, even when coded (as in the attached project).
>
> Is there anything I can say to him about this?
>
I have started to fix drag and drop in gb.gtk and gb.gtk3.
Normally, your example should work as expected both with gb.gtk and gb.gtk3.
The fix may have a bad side effect with automatic mouse grabs on button
press in gb.gtk3. People will tell me.
As for gb.qt4, I don't understand why dnd is not automatic anymore with
TextBox. If you replace the TextBox by a TextArea, it works. I noticed
that behaviour in some other textboxes (QLineEdit Qt4 widget) in KDE
programs, but not all!
There is also a bug I couldn't reproduce at will with gb.qt4: If, in
your example, I repeatedly and alternatively drag from the Label and
from the TextBox, I can make the destination widget disappear and the
program crash.
Regards,
--
Benoît Minisini
More information about the User
mailing list