]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdkevents.c
Remove the old gail tests
[~andy/gtk] / gdk / gdkevents.c
index 5fa240fe9d8096895a55d5a2c7706ffedc541132..29dff076d00c9951f829a33f4adf480bb0aded15 100644 (file)
@@ -555,6 +555,8 @@ gdk_event_copy (const GdkEvent *event)
       break;
 
     case GDK_BUTTON_PRESS:
+    case GDK_2BUTTON_PRESS:
+    case GDK_3BUTTON_PRESS:
     case GDK_BUTTON_RELEASE:
       if (event->button.axes)
         new_event->button.axes = g_memdup (event->button.axes,
@@ -567,6 +569,20 @@ gdk_event_copy (const GdkEvent *event)
                                            sizeof (gdouble) * gdk_device_get_n_axes (event->motion.device));
       break;
 
+    case GDK_OWNER_CHANGE:
+      new_event->owner_change.owner = event->owner_change.owner;
+      if (new_event->owner_change.owner)
+        g_object_ref (new_event->owner_change.owner);
+      break;
+
+    case GDK_SELECTION_CLEAR:
+    case GDK_SELECTION_NOTIFY:
+    case GDK_SELECTION_REQUEST:
+      new_event->selection.requestor = event->selection.requestor;
+      if (new_event->selection.requestor)
+        g_object_unref (new_event->selection.requestor);
+      break;
+
     default:
       break;
     }
@@ -589,6 +605,8 @@ gdk_event_copy (const GdkEvent *event)
 void
 gdk_event_free (GdkEvent *event)
 {
+  GdkDisplay *display;
+
   g_return_if_fail (event != NULL);
 
   if (event->any.window)
@@ -618,6 +636,8 @@ gdk_event_free (GdkEvent *event)
       break;
 
     case GDK_BUTTON_PRESS:
+    case GDK_2BUTTON_PRESS:
+    case GDK_3BUTTON_PRESS:
     case GDK_BUTTON_RELEASE:
       g_free (event->button.axes);
       break;
@@ -636,11 +656,25 @@ gdk_event_free (GdkEvent *event)
       g_free (event->setting.name);
       break;
       
+    case GDK_OWNER_CHANGE:
+      if (event->owner_change.owner)
+        g_object_unref (event->owner_change.owner);
+      break;
+
+    case GDK_SELECTION_CLEAR:
+    case GDK_SELECTION_NOTIFY:
+    case GDK_SELECTION_REQUEST:
+      if (event->selection.requestor)
+        g_object_unref (event->selection.requestor);
+      break;
+
     default:
       break;
     }
 
-  _gdk_display_event_data_free (gdk_display_get_default (), event);
+  display = gdk_display_get_default ();
+  if (display)
+    _gdk_display_event_data_free (display, event);
 
   g_hash_table_remove (event_hash, event);
   g_slice_free (GdkEventPrivate, (GdkEventPrivate*) event);
@@ -918,7 +952,7 @@ gdk_event_get_root_coords (const GdkEvent *event,
 /**
  * gdk_event_get_axis:
  * @event: a #GdkEvent
- * @axis_use: (out): the axis use to look for
+ * @axis_use: the axis use to look for
  * @value: (out): location to store the value found
  * 
  * Extract the axis value for a particular axis use from
@@ -1261,7 +1295,7 @@ gdk_events_get_axis_distances (GdkEvent *event1,
  * gdk_events_get_distance:
  * @event1: first #GdkEvent
  * @event2: second #GdkEvent
- * @distance: return location for the distance
+ * @distance: (out): return location for the distance
  *
  * If both events have X/Y information, the distance between both coordinates
  * (as in a straight line going from @event1 to @event2) will be returned.
@@ -1284,7 +1318,7 @@ gdk_events_get_distance (GdkEvent *event1,
  * gdk_events_get_angle:
  * @event1: first #GdkEvent
  * @event2: second #GdkEvent
- * @angle: return location for the relative angle between both events
+ * @angle: (out): return location for the relative angle between both events
  *
  * If both events contain X/Y information, this function will return %TRUE
  * and return in @angle the relative angle from @event1 to @event2. The rotation
@@ -1459,12 +1493,11 @@ gdk_synthesize_click (GdkDisplay *display,
                       gint        nclicks)
 {
   GdkEvent *event_copy;
-  GList *link;
 
   event_copy = gdk_event_copy (event);
   event_copy->type = (nclicks == 2) ? GDK_2BUTTON_PRESS : GDK_3BUTTON_PRESS;
 
-  link = _gdk_event_queue_append (display, event_copy);
+  _gdk_event_queue_append (display, event_copy);
 }
 
 void