Drag and Drop

From Trinity Desktop Project Wiki
Jump to navigation Jump to search

Today, Drag-And-Drop (DND) is considered a requirement for commercial-quality applications. On most operating systems, support for DND is built-in, so everybody uses it and all programs can communicate with each other.

On X, however, there was no standard, so various groups have developed their own protocols, with the result that programs written for one protocol cannot talk to programs written for a different protocol. Clearly this does not satisfy the fundamental requirement that DND allow the user to drag data from any program to any other program.


Shortly before the release of KDE 1.x, a common effort was started to create a sophisticated standard drag-and-drop protocol. The result of this effort is the XDND Standard. In Version 2, KDE started supporting it as native drag and drop protocol throughout the entire desktop.

Information how to program drag-and-drop in TDE applications can be found in the TQt documentation.

Some historical remarks

Originally the KDE developers expected XDND to be finished before the release of KDE 1.0, so they were forced to create the temporary KDE-specific KDND protocol due to the lack of a reasonable standard could be replaced much ealier. But things sometimes take time in the software business.


Motif, the former so-called "standard toolkit" on X11, also defined a drag-and-drop protocol. Some information about this effort and why it was not widely accepted can be found on this archived page.

The only widely-used application that used to support it in the days of KDE 2.x was Netscape's Communicator. To make it possible to drag URLs from Netscape onto KDE applications, KDE also supported Motif-drops in version 2.

Initial Author; Matthias Ettrich