From b2bd11618f5832ac2aed2a02616425e43082b51f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 16 Dec 2010 23:52:10 -0500 Subject: [PATCH] Don't access GdkDragContext fields directly Instead use the accessors. --- gtk/gtkcalendar.c | 10 ++--- gtk/gtkdnd.c | 79 +++++++++++++++++-------------------- gtk/gtkentry.c | 6 +-- gtk/gtkfilechooserdefault.c | 8 ++-- gtk/gtkiconview.c | 6 +-- gtk/gtktextview.c | 8 ++-- gtk/gtktreeview.c | 6 +-- 7 files changed, 58 insertions(+), 65 deletions(-) diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c index f87d1124a..4a0fea6e7 100644 --- a/gtk/gtkcalendar.c +++ b/gtk/gtkcalendar.c @@ -3453,19 +3453,19 @@ gtk_calendar_drag_motion (GtkWidget *widget, { GtkCalendarPrivate *priv = GTK_CALENDAR_GET_PRIVATE (widget); GdkAtom target; - - if (!priv->drag_highlight) + + if (!priv->drag_highlight) { priv->drag_highlight = 1; gtk_drag_highlight (widget); } - + target = gtk_drag_dest_find_target (widget, context, NULL); - if (target == GDK_NONE || context->suggested_action == 0) + if (target == GDK_NONE || gdk_drag_context_get_suggested_action (context) == 0) gdk_drag_status (context, 0, time); else { - set_status_pending (context, context->suggested_action); + set_status_pending (context, gdk_drag_context_get_suggested_action (context)); gtk_drag_get_data (widget, context, target, time); } diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index b4a5d7539..7d4ea215c 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -972,7 +972,6 @@ gtk_drag_get_data (GtkWidget *widget, g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (!context->is_source); selection_widget = gtk_drag_get_ipc_widget (widget); @@ -1008,14 +1007,13 @@ gtk_drag_get_source_widget (GdkDragContext *context) GSList *tmp_list; g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); - g_return_val_if_fail (!context->is_source, NULL); tmp_list = source_widgets; while (tmp_list) { GtkWidget *ipc_widget = tmp_list->data; - - if (ipc_widget->window == context->source_window) + + if (gtk_widget_get_window (ipc_widget) == gdk_drag_context_get_source_window (context)) { GtkDragSourceInfo *info; info = g_object_get_data (G_OBJECT (ipc_widget), "gtk-info"); @@ -1049,13 +1047,12 @@ gtk_drag_finish (GdkDragContext *context, GdkAtom target = GDK_NONE; g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (!context->is_source); if (success && del) { target = gdk_atom_intern_static_string ("DELETE"); } - else if (context->protocol == GDK_DRAG_PROTO_MOTIF) + else if (gdk_drag_context_get_protocol (context) == GDK_DRAG_PROTO_MOTIF) { target = gdk_atom_intern_static_string (success ? "XmTRANSFER_SUCCESS" : @@ -1064,7 +1061,7 @@ gtk_drag_finish (GdkDragContext *context, if (target != GDK_NONE) { - GtkWidget *selection_widget = gtk_drag_get_ipc_widget_for_screen (gdk_window_get_screen (context->source_window)); + GtkWidget *selection_widget = gtk_drag_get_ipc_widget_for_screen (gdk_window_get_screen (gdk_drag_context_get_source_window (context))); g_object_ref (context); @@ -1649,7 +1646,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel, else if (event->type == GDK_DROP_START && !info->proxy_source) { gdk_drop_reply (context, found, event->dnd.time); - if ((context->protocol == GDK_DRAG_PROTO_MOTIF) && !found) + if ((gdk_drag_context_get_protocol (context) == GDK_DRAG_PROTO_MOTIF) && !found) gtk_drag_finish (context, FALSE, FALSE, event->dnd.time); } } @@ -1666,16 +1663,16 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel, * @context: drag context * @target_list: (allow-none): list of droppable targets, or %NULL to use * gtk_drag_dest_get_target_list (@widget). - * - * Looks for a match between @context->targets and the + * Looks for a match between the supported targets of @context and the * @dest_target_list, returning the first matching target, otherwise * returning %GDK_NONE. @dest_target_list should usually be the return * value from gtk_drag_dest_get_target_list(), but some widgets may * have different valid targets for different parts of the widget; in * that case, they will have to implement a drag_motion handler that * passes the correct target list to this function. - * - * Return value: first target that the source offers and the dest can accept, or %GDK_NONE + * + * Return value: first target that the source offers and the dest can + * accept, or %GDK_NONE **/ GdkAtom gtk_drag_dest_find_target (GtkWidget *widget, @@ -1688,7 +1685,6 @@ gtk_drag_dest_find_target (GtkWidget *widget, g_return_val_if_fail (GTK_IS_WIDGET (widget), GDK_NONE); g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), GDK_NONE); - g_return_val_if_fail (!context->is_source, GDK_NONE); source_widget = gtk_drag_get_source_widget (context); @@ -1703,7 +1699,7 @@ gtk_drag_dest_find_target (GtkWidget *widget, while (tmp_target) { GtkTargetPair *pair = tmp_target->data; - tmp_source = context->targets; + tmp_source = gdk_drag_context_list_targets (context); while (tmp_source) { if (tmp_source->data == GUINT_TO_POINTER (pair->target)) @@ -1797,7 +1793,7 @@ gtk_drag_selection_received (GtkWidget *widget, gtk_drag_finish (context, (selection_data->length >= 0), - (context->action == GDK_ACTION_MOVE), + (gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE), time); } @@ -1916,7 +1912,7 @@ gtk_drag_find_widget (GtkWidget *widget, } static void -gtk_drag_proxy_begin (GtkWidget *widget, +gtk_drag_proxy_begin (GtkWidget *widget, GtkDragDestInfo *dest_info, guint32 time) { @@ -1933,8 +1929,8 @@ gtk_drag_proxy_begin (GtkWidget *widget, } ipc_widget = gtk_drag_get_ipc_widget (widget); - context = gdk_drag_begin (ipc_widget->window, - dest_info->context->targets); + context = gdk_drag_begin (gtk_widget_get_window (ipc_widget), + gdk_drag_context_list_targets (dest_info->context)); source_info = gtk_drag_get_source_info (context, TRUE); @@ -1942,10 +1938,10 @@ gtk_drag_proxy_begin (GtkWidget *widget, source_info->widget = g_object_ref (widget); source_info->target_list = gtk_target_list_new (NULL, 0); - tmp_list = dest_info->context->targets; + tmp_list = gdk_drag_context_list_targets (dest_info->context); while (tmp_list) { - gtk_target_list_add (source_info->target_list, + gtk_target_list_add (source_info->target_list, GDK_POINTER_TO_ATOM (tmp_list->data), 0, 0); tmp_list = tmp_list->next; } @@ -2140,8 +2136,9 @@ gtk_drag_dest_motion (GtkWidget *widget, dest_window, proto, current_event->dnd.x_root, current_event->dnd.y_root, - context->suggested_action, - context->actions, time); + gdk_drag_context_get_suggested_action (context), + gdk_drag_context_get_actions (context), + time); if (!site->proxy_window && dest_window) g_object_unref (dest_window); @@ -2158,8 +2155,8 @@ gtk_drag_dest_motion (GtkWidget *widget, if (site->track_motion || site->flags & GTK_DEST_DEFAULT_MOTION) { - if (context->suggested_action & site->actions) - action = context->suggested_action; + if (gdk_drag_context_get_suggested_action (context) & site->actions) + action = gdk_drag_context_get_suggested_action (context); else { gint i; @@ -2167,7 +2164,7 @@ gtk_drag_dest_motion (GtkWidget *widget, for (i = 0; i < 8; i++) { if ((site->actions & (1 << i)) && - (context->actions & (1 << i))) + (gdk_drag_context_get_actions (context) & (1 << i))) { action = (1 << i); break; @@ -2222,7 +2219,7 @@ gtk_drag_dest_drop (GtkWidget *widget, if (site->do_proxy) { if (info->proxy_source || - (info->context->protocol == GDK_DRAG_PROTO_ROOTWIN)) + (gdk_drag_context_get_protocol (info->context) == GDK_DRAG_PROTO_ROOTWIN)) { gtk_drag_drop (info->proxy_source, time); } @@ -2262,8 +2259,9 @@ gtk_drag_dest_drop (GtkWidget *widget, dest_window, proto, current_event->dnd.x_root, current_event->dnd.y_root, - context->suggested_action, - context->actions, time); + gdk_drag_context_get_suggested_action (context), + gdk_drag_context_get_actions (context), + time); if (!site->proxy_window && dest_window) g_object_unref (dest_window); @@ -3087,7 +3085,6 @@ gtk_drag_set_icon_widget (GdkDragContext *context, gint hot_y) { g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->is_source); g_return_if_fail (GTK_IS_WIDGET (widget)); gtk_drag_set_icon_window (context, widget, hot_x, hot_y, FALSE); @@ -3131,7 +3128,7 @@ set_icon_stock_pixbuf (GdkDragContext *context, g_return_if_fail (pixbuf != NULL || stock_id != NULL); g_return_if_fail (pixbuf == NULL || stock_id == NULL); - screen = gdk_window_get_screen (context->source_window); + screen = gdk_window_get_screen (gdk_drag_context_get_source_window (context)); /* Push a NULL colormap to guard against gtk_widget_push_colormap() */ gtk_widget_push_colormap (NULL); @@ -3160,7 +3157,7 @@ set_icon_stock_pixbuf (GdkDragContext *context, else g_object_ref (pixbuf); - display = gdk_window_get_display (context->source_window); + display = gdk_window_get_display (gdk_drag_context_get_source_window (context)); width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); @@ -3210,7 +3207,6 @@ gtk_drag_set_icon_pixbuf (GdkDragContext *context, gint hot_y) { g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->is_source); g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); set_icon_stock_pixbuf (context, NULL, pixbuf, hot_x, hot_y, FALSE); @@ -3233,7 +3229,6 @@ gtk_drag_set_icon_stock (GdkDragContext *context, gint hot_y) { g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->is_source); g_return_if_fail (stock_id != NULL); set_icon_stock_pixbuf (context, stock_id, NULL, hot_x, hot_y, FALSE); @@ -3267,7 +3262,6 @@ gtk_drag_set_icon_pixmap (GdkDragContext *context, gint width, height; g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->is_source); g_return_if_fail (GDK_IS_COLORMAP (colormap)); g_return_if_fail (GDK_IS_PIXMAP (pixmap)); g_return_if_fail (!mask || GDK_IS_PIXMAP (mask)); @@ -3331,10 +3325,9 @@ gtk_drag_set_icon_name (GdkDragContext *context, gint width, height, icon_size; g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->is_source); g_return_if_fail (icon_name != NULL); - screen = gdk_window_get_screen (context->source_window); + screen = gdk_window_get_screen (gdk_drag_context_get_source_window (context)); g_return_if_fail (screen != NULL); settings = gtk_settings_get_for_screen (screen); @@ -3367,7 +3360,6 @@ void gtk_drag_set_icon_default (GdkDragContext *context) { g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->is_source); if (!default_icon_pixmap) gtk_drag_set_icon_stock (context, GTK_STOCK_DND, -2, -2); @@ -3465,7 +3457,7 @@ _gtk_drag_source_handle_event (GtkWidget *widget, { if (info->proxy_dest->proxy_drop_wait) { - gboolean result = context->action != 0; + gboolean result = gdk_drag_context_get_selected_action (context) != 0; /* Aha - we can finally pass the MOTIF DROP on... */ gdk_drop_reply (info->proxy_dest->context, result, info->proxy_dest->proxy_drop_time); @@ -3477,7 +3469,7 @@ _gtk_drag_source_handle_event (GtkWidget *widget, else { gdk_drag_status (info->proxy_dest->context, - event->dnd.context->action, + gdk_drag_context_get_selected_action (event->dnd.context), event->dnd.time); } } @@ -3485,7 +3477,7 @@ _gtk_drag_source_handle_event (GtkWidget *widget, else if (info->have_grab) { cursor = gtk_drag_get_cursor (gtk_widget_get_display (widget), - event->dnd.context->action, + gdk_drag_context_get_selected_action (event->dnd.context), info); if (info->cursor != cursor) { @@ -3553,7 +3545,7 @@ gtk_drag_source_check_selection (GtkDragSourceInfo *info, tmp_list = tmp_list->next; } - if (info->context->protocol == GDK_DRAG_PROTO_MOTIF) + if (gdk_drag_context_get_protocol (info->context) == GDK_DRAG_PROTO_MOTIF) { gtk_selection_add_target (info->ipc_widget, selection, @@ -3667,7 +3659,7 @@ static void gtk_drag_drop (GtkDragSourceInfo *info, guint32 time) { - if (info->context->protocol == GDK_DRAG_PROTO_ROOTWIN) + if (gdk_drag_context_get_protocol (info->context) == GDK_DRAG_PROTO_ROOTWIN) { GtkSelectionData selection_data; GList *tmp_list; @@ -4342,7 +4334,8 @@ gtk_drag_button_release_cb (GtkWidget *widget, if (event->button != info->button) return FALSE; - if ((info->context->action != 0) && (info->context->dest_window != NULL)) + if ((gdk_drag_context_get_selected_action (info->context) != 0) && + (gdk_drag_context_get_dest_window (info->context) != NULL)) { gtk_drag_end (info, event->time); gtk_drag_drop (info, event->time); diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 7f3de70e3..674a6fb3b 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -8933,7 +8933,7 @@ gtk_entry_drag_motion (GtkWidget *widget, gtk_drag_dest_find_target (widget, context, NULL) != GDK_NONE) { source_widget = gtk_drag_get_source_widget (context); - suggested_action = context->suggested_action; + suggested_action = gdk_drag_context_get_suggested_action (context); if (!gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &sel1, &sel2) || new_position < sel1 || new_position > sel2) @@ -8943,7 +8943,7 @@ gtk_entry_drag_motion (GtkWidget *widget, /* Default to MOVE, unless the user has * pressed ctrl or alt to affect available actions */ - if ((context->actions & GDK_ACTION_MOVE) != 0) + if ((gdk_drag_context_get_actions (context) & GDK_ACTION_MOVE) != 0) suggested_action = GDK_ACTION_MOVE; } @@ -9017,7 +9017,7 @@ gtk_entry_drag_data_received (GtkWidget *widget, end_change (entry); } - gtk_drag_finish (context, TRUE, context->action == GDK_ACTION_MOVE, time); + gtk_drag_finish (context, TRUE, gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE, time); } else { diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 19f602bea..bda8b8601 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -3236,11 +3236,11 @@ shortcuts_drag_motion_cb (GtkWidget *widget, } #endif - if (context->suggested_action == GDK_ACTION_COPY || - (context->actions & GDK_ACTION_COPY) != 0) + if (gdk_drag_context_get_suggested_action (context) == GDK_ACTION_COPY || + (gdk_drag_context_get_actions (context) & GDK_ACTION_COPY) != 0) action = GDK_ACTION_COPY; - else if (context->suggested_action == GDK_ACTION_MOVE || - (context->actions & GDK_ACTION_MOVE) != 0) + else if (gdk_drag_context_get_suggested_action (context) == GDK_ACTION_MOVE || + (gdk_drag_context_get_actions (context) & GDK_ACTION_MOVE) != 0) action = GDK_ACTION_MOVE; else { diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 116c064ba..59a13616f 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -6763,7 +6763,7 @@ out: { GtkWidget *source_widget; - *suggested_action = context->suggested_action; + *suggested_action = gdk_drag_context_get_suggested_action (context); source_widget = gtk_drag_get_source_widget (context); if (source_widget == widget) @@ -6771,7 +6771,7 @@ out: /* Default to MOVE, unless the user has * pressed ctrl or shift to affect available actions */ - if ((context->actions & GDK_ACTION_MOVE) != 0) + if ((gdk_drag_context_get_actions (context) & GDK_ACTION_MOVE) != 0) *suggested_action = GDK_ACTION_MOVE; } @@ -7224,7 +7224,7 @@ gtk_icon_view_drag_data_received (GtkWidget *widget, gtk_drag_finish (context, accepted, - (context->action == GDK_ACTION_MOVE), + (gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE), time); gtk_tree_path_free (dest_row); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index cd9af07bc..2d1a20ba6 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -6853,7 +6853,7 @@ gtk_text_view_drag_motion (GtkWidget *widget, { GtkWidget *source_widget; - suggested_action = context->suggested_action; + suggested_action = gdk_drag_context_get_suggested_action (context); source_widget = gtk_drag_get_source_widget (context); @@ -6862,7 +6862,7 @@ gtk_text_view_drag_motion (GtkWidget *widget, /* Default to MOVE, unless the user has * pressed ctrl or alt to affect available actions */ - if ((context->actions & GDK_ACTION_MOVE) != 0) + if ((gdk_drag_context_get_actions (context) & GDK_ACTION_MOVE) != 0) suggested_action = GDK_ACTION_MOVE; } } @@ -7013,7 +7013,7 @@ gtk_text_view_drag_data_received (GtkWidget *widget, atoms = gtk_text_buffer_get_deserialize_formats (buffer, &n_atoms); - for (list = context->targets; list; list = g_list_next (list)) + for (list = gdk_drag_context_list_targets (context); list; list = g_list_next (list)) { gint i; @@ -7081,7 +7081,7 @@ gtk_text_view_drag_data_received (GtkWidget *widget, done: gtk_drag_finish (context, success, - success && context->action == GDK_ACTION_MOVE, + success && gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE, time); if (success) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 71efa0899..ee5e1870a 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -7058,7 +7058,7 @@ out: { GtkWidget *source_widget; - *suggested_action = context->suggested_action; + *suggested_action = gdk_drag_context_get_suggested_action (context); source_widget = gtk_drag_get_source_widget (context); if (source_widget == widget) @@ -7066,7 +7066,7 @@ out: /* Default to MOVE, unless the user has * pressed ctrl or shift to affect available actions */ - if ((context->actions & GDK_ACTION_MOVE) != 0) + if ((gdk_drag_context_get_actions (context) & GDK_ACTION_MOVE) != 0) *suggested_action = GDK_ACTION_MOVE; } @@ -7601,7 +7601,7 @@ gtk_tree_view_drag_data_received (GtkWidget *widget, gtk_drag_finish (context, accepted, - (context->action == GDK_ACTION_MOVE), + (gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE), time); if (gtk_tree_path_get_depth (dest_row) == 1