static gboolean statusbar_flash_temporary_msg(gpointer data _U_) { gboolean retval = TRUE; if (flash_time > 0) { flash_highlight = !flash_highlight; } else { flash_highlight = FALSE; retval = FALSE; } /* * As of 2.18.3 gtk_drag_highlight just draws a border around the widget * so we can abuse it here. */ if (flash_highlight) { gtk_drag_highlight(info_bar); } else { gtk_drag_unhighlight(info_bar); } flash_time -= TEMPORARY_FLASH_INTERVAL; return retval; }
static void do_highlight (GtkWidget *widget, gboolean highlight) { gboolean have_drag; /* FIXME: what's going on here ? How are we highlighting * the toplevel widget ? I don't think we are ... */ have_drag = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "have-drag")); if(highlight) { if(!have_drag) { g_object_set_data (G_OBJECT (widget), "have-drag", GINT_TO_POINTER (TRUE)); gtk_drag_highlight (widget); } } else { if(have_drag) { g_object_set_data (G_OBJECT (widget), "have-drag", NULL); gtk_drag_unhighlight (widget); } } }
static void slot_proxy_drag_leave (GtkWidget *widget, GdkDragContext *context, unsigned int time, gpointer user_data) { gtk_drag_unhighlight (widget); drag_info_clear ((NemoDragSlotProxyInfo *)user_data); }
/** * gimp_highlight_widget: * @widget: * @highlight: * * Calls gtk_drag_highlight() on @widget if @highlight is %TRUE, * calls gtk_drag_unhighlight() otherwise. **/ void gimp_highlight_widget (GtkWidget *widget, gboolean highlight) { g_return_if_fail (GTK_IS_WIDGET (widget)); if (highlight) gtk_drag_highlight (widget); else gtk_drag_unhighlight (widget); }
void gpview_document_view_drag_leave_cb(GtkWidget *widget, GdkDragContext *context, guint time, GPViewSymbolView *view) { GPViewDocumentViewPrivate *privat = GPVIEW_DOCUMENT_VIEW_GET_PRIVATE(view); if (privat != NULL) { } gtk_drag_unhighlight(widget); }
static void gstyle_color_widget_on_drag_leave (GtkWidget *widget, GdkDragContext *context, guint time) { GstyleColorWidget *self = (GstyleColorWidget *)widget; g_assert (GSTYLE_IS_COLOR_WIDGET (self)); g_assert (GDK_IS_DRAG_CONTEXT (context)); gtk_drag_unhighlight (widget); }
int clip_GTK_DRAGUNHIGHLIGHT(ClipMachine * cm) { C_widget *cwid = _fetch_cw_arg(cm); CHECKCWID(cwid, GTK_IS_WIDGET); gtk_drag_unhighlight(GTK_WIDGET(cwid->widget)); return 0; err: return 1; }
static void slot_proxy_drag_leave (GtkWidget *widget, GdkDragContext *context, unsigned int time, gpointer user_data) { NautilusDragSlotProxyInfo *drag_info; drag_info = user_data; gtk_drag_unhighlight (widget); drag_info_clear (drag_info); }
static gboolean slot_proxy_drag_motion (GtkWidget *widget, GdkDragContext *context, int x, int y, unsigned int time, gpointer user_data) { NautilusDragSlotProxyInfo *drag_info; NautilusWindowSlot *target_slot; GtkWidget *window; GdkAtom target; int action; char *target_uri; GFile *location; gboolean valid_text_drag; gboolean valid_xds_drag; drag_info = user_data; action = 0; valid_text_drag = FALSE; valid_xds_drag = FALSE; if (gtk_drag_get_source_widget (context) == widget) { goto out; } window = gtk_widget_get_toplevel (widget); g_assert (NAUTILUS_IS_WINDOW (window)); if (!drag_info->have_data) { target = gtk_drag_dest_find_target (widget, context, NULL); if (target == GDK_NONE) { goto out; } gtk_drag_get_data (widget, context, target, time); } target_uri = NULL; if (drag_info->target_file != NULL) { target_uri = nautilus_file_get_uri (drag_info->target_file); } else { if (drag_info->target_slot != NULL) { target_slot = drag_info->target_slot; } else { target_slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (window)); } if (target_slot != NULL) { location = nautilus_window_slot_get_location (target_slot); target_uri = g_file_get_uri (location); } } if (target_uri != NULL) { NautilusFile *file; gboolean can; file = nautilus_file_get_existing_by_uri (target_uri); can = nautilus_file_can_write (file); g_object_unref (file); if (!can) { action = 0; goto out; } } if (drag_info->have_data && drag_info->have_valid_data) { if (drag_info->info == NAUTILUS_ICON_DND_GNOME_ICON_LIST) { nautilus_drag_default_drop_action_for_icons (context, target_uri, drag_info->data.selection_list, 0, &action); } else if (drag_info->info == NAUTILUS_ICON_DND_URI_LIST) { action = nautilus_drag_default_drop_action_for_uri_list (context, target_uri); } else if (drag_info->info == NAUTILUS_ICON_DND_NETSCAPE_URL) { action = nautilus_drag_default_drop_action_for_netscape_url (context); } else if (drag_info->info == NAUTILUS_ICON_DND_TEXT) { valid_text_drag = TRUE; } else if (drag_info->info == NAUTILUS_ICON_DND_XDNDDIRECTSAVE || drag_info->info == NAUTILUS_ICON_DND_RAW) { valid_xds_drag = TRUE; } } g_free (target_uri); out: if (action != 0 || valid_text_drag || valid_xds_drag) { gtk_drag_highlight (widget); slot_proxy_check_switch_location_timer (drag_info, widget); } else { gtk_drag_unhighlight (widget); slot_proxy_remove_switch_location_timer (drag_info); } gdk_drag_status (context, action, time); return TRUE; }
static gboolean slot_proxy_drag_motion (GtkWidget *widget, GdkDragContext *context, int x, int y, unsigned int time, gpointer user_data) { NemoDragSlotProxyInfo *drag_info; NemoWindowSlot *target_slot; GtkWidget *window; GdkAtom target; int action = 0; char *target_uri; if (gtk_drag_get_source_widget (context) == widget) { goto out; } drag_info = user_data; window = gtk_widget_get_toplevel (widget); g_assert (NEMO_IS_WINDOW (window)); if (!drag_info->have_data) { target = gtk_drag_dest_find_target (widget, context, NULL); if (target == GDK_NONE) { goto out; } gtk_drag_get_data (widget, context, target, time); } target_uri = NULL; if (drag_info->target_file != NULL) { target_uri = nemo_file_get_uri (drag_info->target_file); } else { if (drag_info->target_slot != NULL) { target_slot = drag_info->target_slot; } else { target_slot = nemo_window_get_active_slot (NEMO_WINDOW (window)); } if (target_slot != NULL) { target_uri = nemo_window_slot_get_current_uri (target_slot); } } if (drag_info->have_data && drag_info->have_valid_data) { if (drag_info->info == NEMO_ICON_DND_GNOME_ICON_LIST) { nemo_drag_default_drop_action_for_icons (context, target_uri, drag_info->data.selection_list, &action, &drag_info->desktop_dnd_source_fs, &drag_info->desktop_dnd_can_delete_source); } else if (drag_info->info == NEMO_ICON_DND_URI_LIST) { action = nemo_drag_default_drop_action_for_uri_list (context, target_uri); } else if (drag_info->info == NEMO_ICON_DND_NETSCAPE_URL) { action = nemo_drag_default_drop_action_for_netscape_url (context); } } g_free (target_uri); out: if (action != 0) { gtk_drag_highlight (widget); } else { gtk_drag_unhighlight (widget); } gdk_drag_status (context, action, time); return TRUE; }
static VALUE rg_m_unhighlight(VALUE self, VALUE widget) { gtk_drag_unhighlight(RVAL2WIDGET(widget)); return self; }