static void data_source_cancelled (void *data, struct wl_data_source *source) { GdkWaylandSelection *wayland_selection = data; GdkDragContext *context; GdkDisplay *display; g_debug (G_STRLOC ": %s source = %p", G_STRFUNC, source); display = gdk_display_get_default (); if (source == wayland_selection->dnd_source) { gdk_wayland_selection_unset_data_source (display, atoms[ATOM_DND]); context = gdk_wayland_drag_context_lookup_by_data_source (source); if (context) gdk_wayland_device_unset_grab (gdk_drag_context_get_device (context)); } else if (source == wayland_selection->clipboard_source) gdk_wayland_selection_unset_data_source (display, atoms[ATOM_CLIPBOARD]); }
static void data_source_cancelled (void *data, struct wl_data_source *source) { GdkWaylandSelection *wayland_selection = data; GdkDragContext *context; GdkDisplay *display; GdkAtom atom; g_debug (G_STRLOC ": %s source = %p", G_STRFUNC, source); display = gdk_display_get_default (); if (source == wayland_selection->dnd_source) atom = atoms[ATOM_DND]; else if (source == wayland_selection->clipboard_source) atom = atoms[ATOM_CLIPBOARD]; else return; gdk_wayland_selection_unset_data_source (display, atom); gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE); if (source == wayland_selection->dnd_source) { context = gdk_wayland_drag_context_lookup_by_data_source (source); if (context) gdk_wayland_device_unset_grab (gdk_drag_context_get_device (context)); } }
static void data_source_cancelled (void *data, struct wl_data_source *source) { GdkWaylandSelection *wayland_selection = data; GdkDragContext *context; GdkDisplay *display; GdkAtom atom; GDK_NOTE (EVENTS, g_message ("data source cancelled, source = %p", source)); display = gdk_display_get_default (); if (source == wayland_selection->dnd_source) atom = atoms[ATOM_DND]; else if (source == wayland_selection->clipboard_source) atom = atoms[ATOM_CLIPBOARD]; else return; context = gdk_wayland_drag_context_lookup_by_data_source (source); if (context) gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR); emit_selection_clear (display, atom); gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE); gdk_wayland_selection_unset_data_source (display, atom); }
void gdk_wayland_selection_clear_targets (GdkDisplay *display, GdkAtom selection) { GdkWaylandSelection *wayland_selection = gdk_wayland_display_get_selection (display); wayland_selection->requested_target = GDK_NONE; g_array_set_size (wayland_selection->source_targets, 0); gdk_wayland_selection_unset_data_source (display, selection); }
static void primary_source_cancelled (void *data, struct gtk_primary_selection_source *source) { GdkDisplay *display; GdkAtom atom; GDK_NOTE (EVENTS, g_message ("primary source cancelled, source = %p", source)); display = gdk_display_get_default (); atom = atoms[ATOM_PRIMARY]; emit_selection_clear (display, atom); gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE); gdk_wayland_selection_unset_data_source (display, atom); }
void gdk_wayland_selection_clear_targets (GdkDisplay *display, GdkAtom selection) { gdk_wayland_selection_unset_data_source (display, selection); }