problem identified - Re: konqueror drag and drop problem in detailed list view with enlightenment virtual desktops

temp1_snover at iprimus.com.au temp1_snover at iprimus.com.au
Mon Jan 17 10:41:49 GMT 2005


Hi all,

ok well, ive worked out what the problem is, though i havent really made 
a start on solving it yet.

It turns out, that kwin and enlightenment both have absolutely no code 
to handle xdnd drag and drop. So it's not really the window manager as 
such that is the problem.

It is all handled at the widget level, so basically it is a problem with QTs,
xdnd (X drag and drop) implemementation, and which seems slightly 
specific to the widgets used in konqueror's detailed list view (as the 
problem does not occur in icon view), and the problem is this:

1) Enlightenment has 2 ways of expanding the number of dekstops. 
It has 1 or 2 dimensions of "virtual" desktops, and 1 dimension of 
"multiple" desktops. 

Virtual desktops are handled by effectively creating a giant X screen, 
big enough to fit all the desktops, and by only viewing a "window" of 
the giant X screen- showing just 1 desktop at a time. That means all
the windows on all desktops have different X and Y coordinates. 

"Multiple" desktops, are handled by enlightenment hiding and unhiding 
windows depending on which multiple desktop you are supposed to be 
on. Which means that the windows on different "multiple" desktops can 
easily have the same X and Y coords on the X screen. 

2) Windows having the same x and y coords seems to confuse some 
of QTs widgets. Perhaps they cant work out where the drag and drop is 
coming from or going to. Its odd. For example, it doesnt seem to bother 
kmail's drag and drop. But, Konqueror is not happy.

3) I really havent looked into the details much, as u can probably tell. 
It will take me a while to get around to it. One thing that puzzles me a bit
is how there can be problems with the xdnd protocol within a single 
konqueror window. Its not like i am dragging something clear out of 
konqueror, across my desktop, and onto another application. Konqueror/QTs
widgets should be smart enough to know that my drag and drop is from 
the detailed list view to the folder pane of the same konqueror application,
and so it should handle all the xdnd events internally within the application. 
So there should be no confusion about which application to send events 
to, nor should there be any confusion where they are coming from. It 
looks to me like the QT xdnd is a bit clumsy... or makes some 
assumptions it shouldnt.

Anyway.

When i only use virtual desktops, 2 wide and 9 deep, konqueror's drag 
and drop is perfect on every "desktop". Unfortunately, enlightenment gives
all 18 virtual desktops the same desktop background, which sucks. So I 
prefer to have a virtual desktop 2 wide and 1 deep, and have that 
multipliedby 9 "multiple" desktops. to give 2x9 destops, with 9 nice, 
different desktop backgrounds. But then all my windows, open all over my 
different desktops, all have the same x and y coordinates, which confuses
QTs xdnd drag n drop implementation. 
----------------------------------

Its probably quite easy to fix - if you know a bit more about xdnd than i do 
at this stage... I will get around to it eventually... but im hoping someone
else who knows what they are doing with xdnd will get there before me :)

As Lunos Lubak's suggested in his earlier post:
qt/src/kernel/qdnd_x11.cpp is certainly the place to start fixing this ... 

cheers,

John




More information about the kfm-devel mailing list