[gtk+] Don't access GdkDragContext fields directly



commit 83204928b93bbdf412fab39456710288b7abe5e8
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Dec 10 00:59:07 2010 -0500

    Don't access GdkDragContext fields directly
    
    Instead use the accessors.

 gtk/gtkcalendar.c           |   10 +++---
 gtk/gtkdnd.c                |   74 +++++++++++++++++++-----------------------
 gtk/gtkentry.c              |    6 ++--
 gtk/gtkfilechooserdefault.c |    8 ++--
 gtk/gtkiconview.c           |    6 ++--
 gtk/gtktextview.c           |    8 ++--
 gtk/gtktreeview.c           |    6 ++--
 7 files changed, 56 insertions(+), 62 deletions(-)
---
diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c
index 57a26d6..1836ef8 100644
--- a/gtk/gtkcalendar.c
+++ b/gtk/gtkcalendar.c
@@ -3379,19 +3379,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 84e651d..bdc8994 100644
--- a/gtk/gtkdnd.c
+++ b/gtk/gtkdnd.c
@@ -981,7 +981,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);
 
@@ -1016,14 +1015,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 (gtk_widget_get_window (ipc_widget) == 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");
@@ -1057,13 +1055,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" : 
@@ -1072,7 +1069,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);
       
@@ -1639,7 +1636,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);
 	  }
       }
@@ -1657,7 +1654,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
  * @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
@@ -1665,7 +1662,8 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
  * 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,
@@ -1678,7 +1676,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);
@@ -1693,7 +1690,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))
@@ -1787,7 +1784,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);
 	}
       
@@ -1906,7 +1903,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)
 {
@@ -1924,7 +1921,7 @@ gtk_drag_proxy_begin (GtkWidget       *widget,
   
   ipc_widget = gtk_drag_get_ipc_widget (widget);
   context = gdk_drag_begin (gtk_widget_get_window (ipc_widget),
-			    dest_info->context->targets);
+			    gdk_drag_context_list_targets (dest_info->context));
 
   source_info = gtk_drag_get_source_info (context, TRUE);
 
@@ -1932,10 +1929,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;
     }
@@ -2123,8 +2120,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);
@@ -2141,8 +2139,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;
@@ -2150,7 +2148,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;
@@ -2205,7 +2203,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);
 	}
@@ -2245,8 +2243,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);
@@ -3024,7 +3023,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);
@@ -3097,7 +3095,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));
 
   window = gtk_window_new (GTK_WINDOW_POPUP);
   gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DND);
@@ -3123,7 +3121,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);
 
@@ -3173,7 +3171,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);
@@ -3196,7 +3193,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);
@@ -3264,13 +3260,12 @@ gtk_drag_set_icon_surface (GdkDragContext    *context,
   cairo_pattern_t *pattern;
       
   g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
-  g_return_if_fail (context->is_source);
   g_return_if_fail (surface != NULL);
 
   _gtk_cairo_surface_extents (surface, &extents);
 
 
-  screen = gdk_window_get_screen (context->source_window);
+  screen = gdk_window_get_screen (gdk_drag_context_get_source_window (context));
 
   window = gtk_window_new (GTK_WINDOW_POPUP);
   gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DND);
@@ -3359,10 +3354,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);
@@ -3395,7 +3389,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);
 
   gtk_drag_set_icon_stock (context, GTK_STOCK_DND, -2, -2);
 }
@@ -3438,7 +3431,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);
@@ -3450,7 +3443,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);
 		  }
 	      }
@@ -3458,7 +3451,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)
 	      {
@@ -3528,7 +3521,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,
@@ -3642,7 +3635,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;
@@ -4330,7 +4323,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 aac0b91..c07535c 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -8988,7 +8988,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)
@@ -8998,7 +8998,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;
 	    }
 
@@ -9075,7 +9075,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 4b8fcdb..6ae3429 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -3071,11 +3071,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 243106e..1df2a7d 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -6825,7 +6825,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)
@@ -6833,7 +6833,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;
         }
 
@@ -7284,7 +7284,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 de6619d..0a49786 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -7028,7 +7028,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);
           
@@ -7037,7 +7037,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;
             }
         }
@@ -7194,7 +7194,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;
 
@@ -7262,7 +7262,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 8528003..408394f 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -7188,7 +7188,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)
@@ -7196,7 +7196,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;
         }
 
@@ -7729,7 +7729,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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]