]> Pileus Git - ~andy/gtk/commitdiff
D&D fixes
authorElliot Lee <sopwith@src.gnome.org>
Mon, 16 Feb 1998 22:04:52 +0000 (22:04 +0000)
committerElliot Lee <sopwith@src.gnome.org>
Mon, 16 Feb 1998 22:04:52 +0000 (22:04 +0000)
gdk/gdk.c
gdk/gdkwindow.c
gdk/x11/gdkmain-x11.c
gdk/x11/gdkwindow-x11.c
glib/glibconfig.h.in
gtk/gtkmain.c
gtk/gtkwidget.c

index ca8f4485d132a2789f0be7484fadb419b7a0e285..b7ecdcf7adf764aaa97180cd157b74de60be423a 100644 (file)
--- a/gdk/gdk.c
+++ b/gdk/gdk.c
@@ -916,6 +916,10 @@ gdk_event_free (GdkEvent *event)
       g_free (event->dropdataavailable.data);
       break;
 
+    case GDK_DRAG_REQUEST:
+      g_free (event->dragrequest.data_type);
+      break;
+
     default:
       break;
     }
@@ -2069,16 +2073,16 @@ gdk_event_translate (GdkEvent *event,
                                        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;
@@ -2122,8 +2126,8 @@ gdk_event_translate (GdkEvent *event,
                      dnd_drag_target = None;
                    }
                }
-           } else
-             dnd_drag_curwin = None;
+           } /* else
+             dnd_drag_curwin = None; */
          return_val = FALSE;
        }
       else
@@ -2133,7 +2137,7 @@ gdk_event_translate (GdkEvent *event,
     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",
@@ -2211,7 +2215,7 @@ gdk_event_translate (GdkEvent *event,
     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",
@@ -2650,7 +2654,8 @@ gdk_event_translate (GdkEvent *event,
 #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...
@@ -2684,8 +2689,13 @@ gdk_event_translate (GdkEvent *event,
                          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)
index 8cab5510e49be83be70406133df6f5ac4f4c34c9..129fea3b7c24e361937153ca657c19ee354d1bdf 100644 (file)
@@ -1349,7 +1349,7 @@ gdk_window_dnd_drag_set (GdkWindow   *window,
     }
   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;
     }
@@ -1410,9 +1410,6 @@ gdk_window_dnd_data_set (GdkWindow       *window,
   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)
index ca8f4485d132a2789f0be7484fadb419b7a0e285..b7ecdcf7adf764aaa97180cd157b74de60be423a 100644 (file)
@@ -916,6 +916,10 @@ gdk_event_free (GdkEvent *event)
       g_free (event->dropdataavailable.data);
       break;
 
+    case GDK_DRAG_REQUEST:
+      g_free (event->dragrequest.data_type);
+      break;
+
     default:
       break;
     }
@@ -2069,16 +2073,16 @@ gdk_event_translate (GdkEvent *event,
                                        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;
@@ -2122,8 +2126,8 @@ gdk_event_translate (GdkEvent *event,
                      dnd_drag_target = None;
                    }
                }
-           } else
-             dnd_drag_curwin = None;
+           } /* else
+             dnd_drag_curwin = None; */
          return_val = FALSE;
        }
       else
@@ -2133,7 +2137,7 @@ gdk_event_translate (GdkEvent *event,
     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",
@@ -2211,7 +2215,7 @@ gdk_event_translate (GdkEvent *event,
     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",
@@ -2650,7 +2654,8 @@ gdk_event_translate (GdkEvent *event,
 #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...
@@ -2684,8 +2689,13 @@ gdk_event_translate (GdkEvent *event,
                          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)
index 8cab5510e49be83be70406133df6f5ac4f4c34c9..129fea3b7c24e361937153ca657c19ee354d1bdf 100644 (file)
@@ -1349,7 +1349,7 @@ gdk_window_dnd_drag_set (GdkWindow   *window,
     }
   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;
     }
@@ -1410,9 +1410,6 @@ gdk_window_dnd_data_set (GdkWindow       *window,
   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)
index 31fc81ca17dc799db3252b68df57843329e9a0e7..5fd8a65a0f4ebaa286177a3cf664c3decdb2e243 100644 (file)
@@ -16,6 +16,7 @@
 #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 */
 
index fd7c4e3cb40749c012101fe3e3cca6275cac7a55..1f1dd323b0b4d53e2143bd6d0376a539e06906c2 100644 (file)
@@ -376,7 +376,7 @@ gtk_main_iteration_do (gboolean blocking)
        {
          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
index 6f3f26541253f4b92caf4c04fe2e00993bf8080f..139c7e9072b6f68510547c704b5507cc41447412 100644 (file)
@@ -1703,7 +1703,6 @@ gtk_widget_event (GtkWidget *widget,
   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,