Skip to content

Commit

Permalink
Fix X11 DND support.
Browse files Browse the repository at this point in the history
src/Fl_x.cxx:
    - Check the list of source types and pick the first one that
      starts with "text/".


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3995 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
  • Loading branch information
michaelrsweet committed Feb 1, 2005
1 parent 1d871d5 commit e4ccb4a
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
2 changes: 2 additions & 0 deletions CHANGES
@@ -1,5 +1,7 @@
CHANGES IN FLTK 1.1.7

- The X11 DND code did not correctly select a text
format for incoming data (STR #711)
- Fixes to Fl_JPEG_Image error handler.
- Fl_Menu::popup() and ::pulldown() would crash an
application if a callback created widgets before they
Expand Down
26 changes: 23 additions & 3 deletions src/Fl_x.cxx
@@ -1,5 +1,5 @@
//
// "$Id: Fl_x.cxx,v 1.24.2.24.2.41 2004/12/03 03:14:16 easysw Exp $"
// "$Id$"
//
// X specific code for the Fast Light Tool Kit (FLTK).
//
Expand Down Expand Up @@ -634,6 +634,7 @@ int fl_handle(const XEvent& thisevent)
in_a_window = true;
fl_dnd_source_window = data[0];
// version number is data[1]>>24
// printf("XdndEnter, version %ld\n", data[1] >> 24);
if (data[1]&1) {
// get list of data types:
Atom actual; int format; unsigned long count, remaining;
Expand All @@ -657,7 +658,26 @@ int fl_handle(const XEvent& thisevent)
fl_dnd_source_types[2] = data[4];
fl_dnd_source_types[3] = 0;
}
fl_dnd_type = fl_dnd_source_types[0]; // should pick text or url

// Loop through the source types and pick the first text type...
int i;

for (i = 0; fl_dnd_source_types[i]; i ++)
{
// printf("fl_dnd_source_types[%d] = %ld (%s)\n", i,
// fl_dnd_source_types[i],
// XGetAtomName(fl_display, fl_dnd_source_types[i]));

if (!strncmp(XGetAtomName(fl_display, fl_dnd_source_types[i]),
"text/", 5))
break;
}

if (fl_dnd_source_types[i])
fl_dnd_type = fl_dnd_source_types[i];
else
fl_dnd_type = fl_dnd_source_types[0];

event = FL_DND_ENTER;
break;

Expand Down Expand Up @@ -1303,5 +1323,5 @@ void Fl_Window::make_current() {
#endif

//
// End of "$Id: Fl_x.cxx,v 1.24.2.24.2.41 2004/12/03 03:14:16 easysw Exp $".
// End of "$Id$".
//

0 comments on commit e4ccb4a

Please sign in to comment.