g_free (event->dropdataavailable.data);
break;
+ case GDK_DRAG_REQUEST:
+ g_free (event->dragrequest.data_type);
+ break;
+
default:
break;
}
x, y, &x, &y, &twin);
}
}
-#ifdef DEBUG_DND
- g_print("Drag is now in window %#x, lastwin was %#x\n",
- curwin, lastwin);
+#if defined(DEBUG_DND) /* && defined(DEBUG_DND_MORE_DETAILS) */
+ g_print("Drag is now in window %#x, lastwin was %#x, ddc = %#x\n",
+ curwin, lastwin, dnd_drag_curwin);
#endif
if(curwin != dnd_drag_curwin && curwin != lastwin)
{
/* We have left one window and entered another
(do leave & enter bits) */
- if(dnd_drag_curwin != real_sw->xwindow && dnd_drag_curwin != None)
- gdk_dnd_drag_leave(dnd_drag_curwin);
+ if(dnd_drag_curwin != None)
+ gdk_dnd_drag_leave(dnd_drag_curwin);
dnd_drag_curwin = curwin;
gdk_dnd_drag_enter(dnd_drag_curwin);
dnd_drag_dropzone.x = dnd_drag_dropzone.y = 0;
dnd_drag_target = None;
}
}
- } else
- dnd_drag_curwin = None;
+ } /* else
+ dnd_drag_curwin = None; */
return_val = FALSE;
}
else
case EnterNotify:
/* Print debugging info.
*/
-#ifndef DEBUG_DND
+#if !(defined(DEBUG_DND) && defined(DEBUG_DND_MORE_DETAILS))
if (gdk_show_events)
#endif
g_print ("enter notify:\t\twindow: %ld detail: %d subwin: %ld\n",
case LeaveNotify:
/* Print debugging info.
*/
-#ifndef DEBUG_DND
+#if !(defined(DEBUG_DND) && defined(DEBUG_DND_MORE_DETAILS))
if (gdk_show_events)
#endif
g_print ("leave notify:\t\twindow: %ld detail: %d subwin: %ld\n",
#ifndef DEBUG_DND
if (gdk_show_events)
#endif
- g_print ("GDK_DROP_ENTER\n");
+ g_print ("GDK_DROP_ENTER [%d][%d]\n",
+ window_private->dnd_drop_enabled, event->dropenter.u.flags.sendreply);
return_val = FALSE;
/* Now figure out if we really want this drop...
False, NoEventMask, &replyev);
event->any.type = GDK_DROP_ENTER;
+ event->any.window = window;
event->dropenter.requestor = replyev.xclient.window;
event->dropenter.u.allflags = xevent->xclient.data.l[1];
+#ifdef DEBUG_DND
+ g_print("We sent a GDK_DROP_ENTER on to Gtk\n");
+#endif
+ return_val = TRUE;
}
}
else if (xevent->xclient.message_type == gdk_dnd.gdk_XdeLeave)
}
else
{
- free (window_private->dnd_drag_data_typesavail);
+ g_free (window_private->dnd_drag_data_typesavail);
window_private->dnd_drag_data_typesavail = NULL;
window_private->dnd_drag_data_numtypesavail = 0;
}
g_return_if_fail (data_numbytes > 0);
g_return_if_fail (event->type == GDK_DRAG_REQUEST);
- g_free (event->dragrequest.data_type);
- event->dragrequest.data_type = NULL;
-
window_private = (GdkWindowPrivate *) window;
g_return_if_fail (window_private->dnd_drag_accepted != 0);
if (window_private->destroyed)
g_free (event->dropdataavailable.data);
break;
+ case GDK_DRAG_REQUEST:
+ g_free (event->dragrequest.data_type);
+ break;
+
default:
break;
}
x, y, &x, &y, &twin);
}
}
-#ifdef DEBUG_DND
- g_print("Drag is now in window %#x, lastwin was %#x\n",
- curwin, lastwin);
+#if defined(DEBUG_DND) /* && defined(DEBUG_DND_MORE_DETAILS) */
+ g_print("Drag is now in window %#x, lastwin was %#x, ddc = %#x\n",
+ curwin, lastwin, dnd_drag_curwin);
#endif
if(curwin != dnd_drag_curwin && curwin != lastwin)
{
/* We have left one window and entered another
(do leave & enter bits) */
- if(dnd_drag_curwin != real_sw->xwindow && dnd_drag_curwin != None)
- gdk_dnd_drag_leave(dnd_drag_curwin);
+ if(dnd_drag_curwin != None)
+ gdk_dnd_drag_leave(dnd_drag_curwin);
dnd_drag_curwin = curwin;
gdk_dnd_drag_enter(dnd_drag_curwin);
dnd_drag_dropzone.x = dnd_drag_dropzone.y = 0;
dnd_drag_target = None;
}
}
- } else
- dnd_drag_curwin = None;
+ } /* else
+ dnd_drag_curwin = None; */
return_val = FALSE;
}
else
case EnterNotify:
/* Print debugging info.
*/
-#ifndef DEBUG_DND
+#if !(defined(DEBUG_DND) && defined(DEBUG_DND_MORE_DETAILS))
if (gdk_show_events)
#endif
g_print ("enter notify:\t\twindow: %ld detail: %d subwin: %ld\n",
case LeaveNotify:
/* Print debugging info.
*/
-#ifndef DEBUG_DND
+#if !(defined(DEBUG_DND) && defined(DEBUG_DND_MORE_DETAILS))
if (gdk_show_events)
#endif
g_print ("leave notify:\t\twindow: %ld detail: %d subwin: %ld\n",
#ifndef DEBUG_DND
if (gdk_show_events)
#endif
- g_print ("GDK_DROP_ENTER\n");
+ g_print ("GDK_DROP_ENTER [%d][%d]\n",
+ window_private->dnd_drop_enabled, event->dropenter.u.flags.sendreply);
return_val = FALSE;
/* Now figure out if we really want this drop...
False, NoEventMask, &replyev);
event->any.type = GDK_DROP_ENTER;
+ event->any.window = window;
event->dropenter.requestor = replyev.xclient.window;
event->dropenter.u.allflags = xevent->xclient.data.l[1];
+#ifdef DEBUG_DND
+ g_print("We sent a GDK_DROP_ENTER on to Gtk\n");
+#endif
+ return_val = TRUE;
}
}
else if (xevent->xclient.message_type == gdk_dnd.gdk_XdeLeave)
}
else
{
- free (window_private->dnd_drag_data_typesavail);
+ g_free (window_private->dnd_drag_data_typesavail);
window_private->dnd_drag_data_typesavail = NULL;
window_private->dnd_drag_data_numtypesavail = 0;
}
g_return_if_fail (data_numbytes > 0);
g_return_if_fail (event->type == GDK_DRAG_REQUEST);
- g_free (event->dragrequest.data_type);
- event->dragrequest.data_type = NULL;
-
window_private = (GdkWindowPrivate *) window;
g_return_if_fail (window_private->dnd_drag_accepted != 0);
if (window_private->destroyed)
#undef STDC_HEADERS
/* Other stuff */
+#undef HAVE_BROKEN_WCTYPE
#undef HAVE_DOPRNT
#undef HAVE_FLOAT_H
#undef HAVE_LIMITS_H
#undef HAVE_VSNPRINTF
#undef HAVE_VALUES_H
#undef HAVE_VPRINTF
+#undef HAVE_WCHAR_H
+#undef HAVE_WCTYPE_H
#undef NO_FD_SET
#undef NO_SYS_ERRLIST
#undef NO_SYS_SIGLIST
-#undef HAVE_WCHAR_H
-#undef HAVE_WCTYPE_H
-
-/* Define if iswalnum(), etc. should not be used */
-#undef HAVE_BROKEN_WCTYPE
-
/* #undef PACKAGE */
/* #undef VERSION */
{
grab_widget = event_widget;
}
-
+
/* Not all events get sent to the grabbing widget.
* The delete, destroy, expose, focus change and resize
* events still get sent to the event widget because
gint signal_num;
g_return_val_if_fail (widget != NULL, TRUE);
-
gtk_widget_ref (widget);
return_val = FALSE;
gtk_signal_emit (GTK_OBJECT (widget), widget_signals[EVENT], event,