diff --git a/clutter/clutter/clutter-event.c b/clutter/clutter/clutter-event.c index ebc7e8f2f..136e70607 100644 --- a/clutter/clutter/clutter-event.c +++ b/clutter/clutter/clutter-event.c @@ -73,8 +73,6 @@ typedef struct _ClutterEventFilter { gpointer user_data; } ClutterEventFilter; -static GHashTable *all_events = NULL; - G_DEFINE_BOXED_TYPE (ClutterEvent, clutter_event, clutter_event_copy, clutter_event_free); @@ -96,15 +94,6 @@ G_DEFINE_BOXED_TYPE (ClutterEventSequence, clutter_event_sequence, clutter_event_sequence_copy, clutter_event_sequence_free); -static gboolean -is_event_allocated (const ClutterEvent *event) -{ - if (all_events == NULL) - return FALSE; - - return g_hash_table_lookup (all_events, event) != NULL; -} - /* * _clutter_event_get_platform_data: * @event: a #ClutterEvent @@ -118,9 +107,6 @@ is_event_allocated (const ClutterEvent *event) gpointer _clutter_event_get_platform_data (const ClutterEvent *event) { - if (!is_event_allocated (event)) - return NULL; - return ((ClutterEventPrivate *) event)->platform_data; } @@ -137,9 +123,6 @@ void _clutter_event_set_platform_data (ClutterEvent *event, gpointer data) { - if (!is_event_allocated (event)) - return; - ((ClutterEventPrivate *) event)->platform_data = data; } @@ -147,9 +130,6 @@ void _clutter_event_set_pointer_emulated (ClutterEvent *event, gboolean is_emulated) { - if (!is_event_allocated (event)) - return; - ((ClutterEventPrivate *) event)->is_pointer_emulated = !!is_emulated; } @@ -735,9 +715,6 @@ clutter_event_set_scroll_delta (ClutterEvent *event, g_return_if_fail (event != NULL); g_return_if_fail (event->type == CLUTTER_SCROLL); - if (!is_event_allocated (event)) - return; - event->scroll.direction = CLUTTER_SCROLL_SMOOTH; ((ClutterEventPrivate *) event)->delta_x = dx; @@ -768,13 +745,8 @@ clutter_event_get_scroll_delta (const ClutterEvent *event, g_return_if_fail (event->type == CLUTTER_SCROLL); g_return_if_fail (event->scroll.direction == CLUTTER_SCROLL_SMOOTH); - delta_x = delta_y = 0; - - if (is_event_allocated (event)) - { - delta_x = ((ClutterEventPrivate *) event)->delta_x; - delta_y = ((ClutterEventPrivate *) event)->delta_y; - } + delta_x = ((ClutterEventPrivate *) event)->delta_x; + delta_y = ((ClutterEventPrivate *) event)->delta_y; if (dx != NULL) *dx = delta_x; @@ -1109,15 +1081,12 @@ void clutter_event_set_device (ClutterEvent *event, ClutterInputDevice *device) { + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; + g_return_if_fail (event != NULL); g_return_if_fail (device == NULL || CLUTTER_IS_INPUT_DEVICE (device)); - if (is_event_allocated (event)) - { - ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - - g_set_object (&real_event->device, device); - } + g_set_object (&real_event->device, device); switch (event->type) { @@ -1214,16 +1183,12 @@ ClutterInputDevice * clutter_event_get_device (const ClutterEvent *event) { ClutterInputDevice *device = NULL; + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; g_return_val_if_fail (event != NULL, NULL); - if (is_event_allocated (event)) - { - ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - - if (real_event->device != NULL) - return real_event->device; - } + if (real_event->device != NULL) + return real_event->device; switch (event->type) { @@ -1314,14 +1279,11 @@ void clutter_event_set_device_tool (ClutterEvent *event, ClutterInputDeviceTool *tool) { - g_return_if_fail (event != NULL); + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - if (is_event_allocated (event)) - { - ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; + g_return_if_fail (event != NULL); - real_event->tool = tool; - } + real_event->tool = tool; } /** @@ -1337,16 +1299,11 @@ clutter_event_set_device_tool (ClutterEvent *event, ClutterInputDeviceTool * clutter_event_get_device_tool (const ClutterEvent *event) { - g_return_val_if_fail (event != NULL, NULL); + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - if (is_event_allocated (event)) - { - ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - - return real_event->tool; - } + g_return_val_if_fail (event != NULL, NULL); - return NULL; + return real_event->tool; } /** @@ -1368,11 +1325,6 @@ clutter_event_new (ClutterEventType type) new_event = (ClutterEvent *) priv; new_event->type = new_event->any.type = type; - if (G_UNLIKELY (all_events == NULL)) - all_events = g_hash_table_new (NULL, NULL); - - g_hash_table_replace (all_events, priv, GUINT_TO_POINTER (1)); - return new_event; } @@ -1390,6 +1342,7 @@ clutter_event_copy (const ClutterEvent *event) ClutterEvent *new_event; ClutterEventPrivate *new_real_event; ClutterInputDevice *device; + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; gint n_axes = 0; g_return_val_if_fail (event != NULL, NULL); @@ -1399,21 +1352,16 @@ clutter_event_copy (const ClutterEvent *event) *new_event = *event; - if (is_event_allocated (event)) - { - ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - - g_set_object (&new_real_event->device, real_event->device); - g_set_object (&new_real_event->source_device, real_event->source_device); - new_real_event->delta_x = real_event->delta_x; - new_real_event->delta_y = real_event->delta_y; - new_real_event->is_pointer_emulated = real_event->is_pointer_emulated; - new_real_event->base_state = real_event->base_state; - new_real_event->button_state = real_event->button_state; - new_real_event->latched_state = real_event->latched_state; - new_real_event->locked_state = real_event->locked_state; - new_real_event->tool = real_event->tool; - } + g_set_object (&new_real_event->device, real_event->device); + g_set_object (&new_real_event->source_device, real_event->source_device); + new_real_event->delta_x = real_event->delta_x; + new_real_event->delta_y = real_event->delta_y; + new_real_event->is_pointer_emulated = real_event->is_pointer_emulated; + new_real_event->base_state = real_event->base_state; + new_real_event->button_state = real_event->button_state; + new_real_event->latched_state = real_event->latched_state; + new_real_event->locked_state = real_event->locked_state; + new_real_event->tool = real_event->tool; device = clutter_event_get_device (event); if (device != NULL) @@ -1475,10 +1423,9 @@ clutter_event_copy (const ClutterEvent *event) break; } - if (is_event_allocated (event)) - _clutter_backend_copy_event_data (clutter_get_default_backend (), - event, - new_event); + _clutter_backend_copy_event_data (clutter_get_default_backend (), + event, + new_event); return new_event; } @@ -1494,15 +1441,12 @@ clutter_event_free (ClutterEvent *event) { if (G_LIKELY (event != NULL)) { - _clutter_backend_free_event_data (clutter_get_default_backend (), event); + ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; - if (is_event_allocated (event)) - { - ClutterEventPrivate *real_event = (ClutterEventPrivate *) event; + _clutter_backend_free_event_data (clutter_get_default_backend (), event); - g_clear_object (&real_event->device); - g_clear_object (&real_event->source_device); - } + g_clear_object (&real_event->device); + g_clear_object (&real_event->source_device); switch (event->type) { @@ -1535,7 +1479,6 @@ clutter_event_free (ClutterEvent *event) break; } - g_hash_table_remove (all_events, event); g_slice_free (ClutterEventPrivate, (ClutterEventPrivate *) event); } } @@ -1564,32 +1507,6 @@ clutter_event_get (void) return g_queue_pop_tail (context->events_queue); } -/** - * clutter_event_peek: - * - * Returns a pointer to the first event from the event queue but - * does not remove it. - * - * Return value: (transfer none): A #ClutterEvent or NULL if queue empty. - * - * Since: 0.4 - */ -ClutterEvent * -clutter_event_peek (void) -{ - ClutterMainContext *context = _clutter_context_get_default (); - - g_return_val_if_fail (context != NULL, NULL); - - if (context->events_queue == NULL) - return NULL; - - if (g_queue_is_empty (context->events_queue)) - return NULL; - - return g_queue_peek_tail (context->events_queue); -} - void _clutter_event_push (const ClutterEvent *event, gboolean do_copy) @@ -1730,9 +1647,6 @@ clutter_event_get_source_device (const ClutterEvent *event) { ClutterEventPrivate *real_event; - if (!is_event_allocated (event)) - return NULL; - real_event = (ClutterEventPrivate *) event; if (real_event->source_device != NULL) @@ -1761,9 +1675,6 @@ clutter_event_set_source_device (ClutterEvent *event, g_return_if_fail (event != NULL); g_return_if_fail (device == NULL || CLUTTER_IS_INPUT_DEVICE (device)); - if (!is_event_allocated (event)) - return; - real_event = (ClutterEventPrivate *) event; g_set_object (&real_event->source_device, device); } @@ -1968,9 +1879,6 @@ clutter_event_is_pointer_emulated (const ClutterEvent *event) { g_return_val_if_fail (event != NULL, FALSE); - if (!is_event_allocated (event)) - return FALSE; - return ((ClutterEventPrivate *) event)->is_pointer_emulated; } diff --git a/clutter/clutter/clutter-event.h b/clutter/clutter/clutter-event.h index 78bd7f42d..c43366c04 100644 --- a/clutter/clutter/clutter-event.h +++ b/clutter/clutter/clutter-event.h @@ -668,8 +668,6 @@ gboolean clutter_events_pending (void); CLUTTER_EXPORT ClutterEvent * clutter_event_get (void); CLUTTER_EXPORT -ClutterEvent * clutter_event_peek (void); -CLUTTER_EXPORT void clutter_event_put (const ClutterEvent *event); CLUTTER_EXPORT diff --git a/debian/libmuffin0.symbols b/debian/libmuffin0.symbols index e81451b6e..b94d8874b 100644 --- a/debian/libmuffin0.symbols +++ b/debian/libmuffin0.symbols @@ -613,7 +613,6 @@ libmuffin-clutter-0.so.0 libmuffin0 #MINVER# clutter_event_has_shift_modifier@Base 5.3.0 clutter_event_is_pointer_emulated@Base 5.3.0 clutter_event_new@Base 5.3.0 - clutter_event_peek@Base 5.3.0 clutter_event_put@Base 5.3.0 clutter_event_remove_filter@Base 5.3.0 clutter_event_sequence_get_type@Base 5.3.0 diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c index c2dff032e..ea0433cb0 100644 --- a/src/backends/meta-cursor-tracker.c +++ b/src/backends/meta-cursor-tracker.c @@ -401,30 +401,23 @@ get_pointer_position_gdk (int *x, } static void -get_pointer_position_clutter (int *x, - int *y, - int *mods) +get_pointer_position_clutter (graphene_point_t *point, + int *mods) { ClutterSeat *seat; ClutterInputDevice *cdevice; - graphene_point_t point; seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); cdevice = clutter_seat_get_pointer (seat); - clutter_input_device_get_coords (cdevice, NULL, &point); - if (x) - *x = point.x; - if (y) - *y = point.y; + clutter_input_device_get_coords (cdevice, NULL, point); if (mods) *mods = clutter_input_device_get_modifier_state (cdevice); } void meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, - int *x, - int *y, + graphene_point_t *coords, ClutterModifierType *mods) { /* We can't use the clutter interface when not running as a wayland compositor, @@ -433,9 +426,17 @@ meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, we forward to xwayland. */ if (meta_is_wayland_compositor ()) - get_pointer_position_clutter (x, y, (int*)mods); + { + get_pointer_position_clutter (coords, (int*)mods); + } else - get_pointer_position_gdk (x, y, (int*)mods); + { + int x, y; + + get_pointer_position_gdk (&x, &y, (int*)mods); + coords->x = x; + coords->y = y; + } } gboolean diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c index 35d6b6a1b..d5dd674bb 100644 --- a/src/backends/native/meta-backend-native.c +++ b/src/backends/native/meta-backend-native.c @@ -413,10 +413,11 @@ meta_backend_native_get_current_logical_monitor (MetaBackend *backend) MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); MetaMonitorManager *monitor_manager = meta_backend_get_monitor_manager (backend); - int x, y; + graphene_point_t point; - meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL); - return meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); + return meta_monitor_manager_get_logical_monitor_at (monitor_manager, + point.x, point.y); } static void diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c index e90e40d91..cc382948c 100644 --- a/src/backends/x11/meta-backend-x11.c +++ b/src/backends/x11/meta-backend-x11.c @@ -682,7 +682,7 @@ meta_backend_x11_get_current_logical_monitor (MetaBackend *backend) MetaBackendX11 *x11 = META_BACKEND_X11 (backend); MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11); MetaCursorTracker *cursor_tracker; - int x, y; + graphene_point_t point; MetaMonitorManager *monitor_manager; MetaLogicalMonitor *logical_monitor; @@ -690,10 +690,11 @@ meta_backend_x11_get_current_logical_monitor (MetaBackend *backend) return priv->cached_current_logical_monitor; cursor_tracker = meta_backend_get_cursor_tracker (backend); - meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); monitor_manager = meta_backend_get_monitor_manager (backend); logical_monitor = - meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y); + meta_monitor_manager_get_logical_monitor_at (monitor_manager, + point.x, point.y); if (!logical_monitor && monitor_manager->logical_monitors) logical_monitor = monitor_manager->logical_monitors->data; diff --git a/src/core/display.c b/src/core/display.c index 0db2ab0a7..a4c61fdd7 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -3889,18 +3889,18 @@ meta_display_get_pointer_window (MetaDisplay *display, MetaBackend *backend = meta_get_backend (); MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); MetaWindow *window; - int x, y; + graphene_point_t point; if (not_this_one) meta_topic (META_DEBUG_FOCUS, "Focusing mouse window excluding %s\n", not_this_one->desc); - meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); window = meta_stack_get_default_focus_window_at_point (display->stack, workspace_manager->active_workspace, not_this_one, - x, y); + point.x, point.y); return window; } diff --git a/src/core/place.c b/src/core/place.c index 716a74a32..de86bd486 100644 --- a/src/core/place.c +++ b/src/core/place.c @@ -85,15 +85,15 @@ place_by_pointer(MetaWindow *window, { MetaBackend *backend = meta_get_backend (); MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); - int root_x, root_y; + graphene_point_t point; - meta_cursor_tracker_get_pointer (cursor_tracker, &root_x, &root_y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); MetaRectangle frame_rect; meta_window_get_frame_rect (window, &frame_rect); - *new_x = root_x - frame_rect.width / 2; - *new_y = root_y - frame_rect.height / 2; + *new_x = (int) point.x - frame_rect.width / 2; + *new_y = (int) point.y - frame_rect.height / 2; if (placement_mode == META_PLACEMENT_MODE_MANUAL) window->move_after_placement = TRUE; diff --git a/src/core/window.c b/src/core/window.c index 1edb0fe59..09f920845 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -9067,19 +9067,19 @@ window_focus_on_pointer_rest_callback (gpointer data) MetaDisplay *display = window->display; MetaBackend *backend = meta_get_backend (); MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); - int root_x, root_y; + graphene_point_t point; guint32 timestamp; if (meta_prefs_get_focus_mode () == C_DESKTOP_FOCUS_MODE_CLICK) goto out; - meta_cursor_tracker_get_pointer (cursor_tracker, &root_x, &root_y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); - if (root_x != focus_data->pointer_x || - root_y != focus_data->pointer_y) + if ((int) point.x != focus_data->pointer_x || + (int) point.y != focus_data->pointer_y) { - focus_data->pointer_x = root_x; - focus_data->pointer_y = root_y; + focus_data->pointer_x = point.x; + focus_data->pointer_y = point.y; return G_SOURCE_CONTINUE; } diff --git a/src/meta/meta-cursor-tracker.h b/src/meta/meta-cursor-tracker.h index 2f51115e4..a2bf7507b 100644 --- a/src/meta/meta-cursor-tracker.h +++ b/src/meta/meta-cursor-tracker.h @@ -51,8 +51,7 @@ CoglTexture *meta_cursor_tracker_get_sprite (MetaCursorTracker *tracker); META_EXPORT void meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, - int *x, - int *y, + graphene_point_t *coords, ClutterModifierType *mods); META_EXPORT diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c index aa4435b7f..8415dcfc7 100644 --- a/src/x11/window-x11.c +++ b/src/x11/window-x11.c @@ -2810,7 +2810,7 @@ query_pressed_buttons (MetaWindow *window) ClutterModifierType mods; int button = 0; - meta_cursor_tracker_get_pointer (tracker, NULL, NULL, &mods); + meta_cursor_tracker_get_pointer (tracker, NULL, &mods); if (mods & CLUTTER_BUTTON1_MASK) button |= 1 << 1;