コード例 #1
0
ファイル: gdkselection-wayland.c プロジェクト: liu-xing/gtk
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]);
}
コード例 #2
0
ファイル: gdkselection-wayland.c プロジェクト: Therzok/gtk
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));
    }
}
コード例 #3
0
ファイル: gdkselection-wayland.c プロジェクト: endlessm/gtk
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);
}
コード例 #4
0
ファイル: gdkselection-wayland.c プロジェクト: Therzok/gtk
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);
}
コード例 #5
0
ファイル: gdkselection-wayland.c プロジェクト: endlessm/gtk
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);
}
コード例 #6
0
ファイル: gdkselection-wayland.c プロジェクト: 3v1n0/gtk
void
gdk_wayland_selection_clear_targets (GdkDisplay *display, GdkAtom selection)
{
  gdk_wayland_selection_unset_data_source (display, selection);
}