• Benjamin Otte's avatar
    droptarget: Redo · a411959c
    Benjamin Otte authored
    This is a huge reorganization of GtkDropTarget. I did not know how to
    split this up, so it's unfortunately all one commit.
    
    Highlights:
    
    - Split GtkDropTarget into GtkDropTarget and GtkDropTargetAsync
      GtkDropTarget is the simple one that only works with GTypes and offers
      a synchronous interface.
      GtkDropTargetAsync retains the full old functionality and allows
      handling mime types.
    
    - Drop events are handled differently
      Instead of picking a single drop target and sending all DND events to
      it, every event is sent to every drop target. The first one to handle
      the event gets to call gdk_drop_status(), further handlers do not
      interact with the GdkDrop.
      Of course, for the ultimate GDK_DROP_STARTING event, only the first
      one to accept the drop gets to handle it.
      This allows stacking DND event controllers that aren't necessarily
      interested in handling the event or that might decide later to drop
      it.
    
    - Port all widgets to either of those
      Both have a somewhat changed API...
    a411959c