From fe27a6ea3bda9072c0af0983ecb56b838306d4c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 3 Apr 2020 13:56:43 +0200 Subject: [PATCH] clutter/stage: Remove hide/show cursor API This removes it from the stage window API too. It's managed by the mutter backends, so we don't need the stage window to do it as well. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1175 --- clutter/clutter/clutter-stage-window.c | 10 --- clutter/clutter/clutter-stage-window.h | 2 - clutter/clutter/clutter-stage.c | 92 -------------------- clutter/clutter/clutter-stage.h | 4 - src/backends/meta-stage.c | 4 +- src/backends/x11/meta-stage-x11.c | 46 ---------- src/backends/x11/meta-stage-x11.h | 1 - src/tests/clutter/interactive/test-devices.c | 1 - 8 files changed, 1 insertion(+), 159 deletions(-) diff --git a/clutter/clutter/clutter-stage-window.c b/clutter/clutter/clutter-stage-window.c index 3c80124a9..a4e871204 100644 --- a/clutter/clutter/clutter-stage-window.c +++ b/clutter/clutter/clutter-stage-window.c @@ -62,16 +62,6 @@ _clutter_stage_window_set_title (ClutterStageWindow *window, iface->set_title (window, title); } -void -_clutter_stage_window_set_cursor_visible (ClutterStageWindow *window, - gboolean is_visible) -{ - ClutterStageWindowInterface *iface = CLUTTER_STAGE_WINDOW_GET_IFACE (window); - - if (iface->set_cursor_visible) - iface->set_cursor_visible (window, is_visible); -} - gboolean _clutter_stage_window_realize (ClutterStageWindow *window) { diff --git a/clutter/clutter/clutter-stage-window.h b/clutter/clutter/clutter-stage-window.h index eb529416e..af866d00d 100644 --- a/clutter/clutter/clutter-stage-window.h +++ b/clutter/clutter/clutter-stage-window.h @@ -30,8 +30,6 @@ struct _ClutterStageWindowInterface void (* set_title) (ClutterStageWindow *stage_window, const gchar *title); - void (* set_cursor_visible) (ClutterStageWindow *stage_window, - gboolean cursor_visible); gboolean (* realize) (ClutterStageWindow *stage_window); void (* unrealize) (ClutterStageWindow *stage_window); diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 3767a3809..fb8d8c8db 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -146,7 +146,6 @@ struct _ClutterStagePrivate int update_freeze_count; guint redraw_pending : 1; - guint is_cursor_visible : 1; guint throttle_motion_events : 1; guint min_size_changed : 1; guint accept_focus : 1; @@ -160,7 +159,6 @@ enum PROP_0, PROP_COLOR, - PROP_CURSOR_VISIBLE, PROP_PERSPECTIVE, PROP_TITLE, PROP_KEY_FOCUS, @@ -1850,13 +1848,6 @@ clutter_stage_set_property (GObject *object, clutter_value_get_color (value)); break; - case PROP_CURSOR_VISIBLE: - if (g_value_get_boolean (value)) - clutter_stage_show_cursor (stage); - else - clutter_stage_hide_cursor (stage); - break; - case PROP_PERSPECTIVE: clutter_stage_set_perspective (stage, g_value_get_boxed (value)); break; @@ -1899,10 +1890,6 @@ clutter_stage_get_property (GObject *gobject, } break; - case PROP_CURSOR_VISIBLE: - g_value_set_boolean (value, priv->is_cursor_visible); - break; - case PROP_PERSPECTIVE: g_value_set_boxed (value, &priv->perspective); break; @@ -2026,18 +2013,6 @@ clutter_stage_class_init (ClutterStageClass *klass) klass->paint_view = clutter_stage_real_paint_view; - /** - * ClutterStage:cursor-visible: - * - * Whether the mouse pointer should be visible - */ - obj_props[PROP_CURSOR_VISIBLE] = - g_param_spec_boolean ("cursor-visible", - P_("Cursor Visible"), - P_("Whether the mouse pointer is visible on the main stage"), - TRUE, - CLUTTER_PARAM_READWRITE); - /** * ClutterStage:color: * @@ -2288,7 +2263,6 @@ clutter_stage_init (ClutterStage *self) priv->event_queue = g_queue_new (); - priv->is_cursor_visible = TRUE; priv->throttle_motion_events = TRUE; priv->min_size_changed = FALSE; priv->sync_delay = -1; @@ -2657,72 +2631,6 @@ _clutter_stage_get_viewport (ClutterStage *stage, *height = priv->viewport[3]; } -/** - * clutter_stage_show_cursor: - * @stage: a #ClutterStage - * - * Shows the cursor on the stage window - */ -void -clutter_stage_show_cursor (ClutterStage *stage) -{ - ClutterStagePrivate *priv; - - g_return_if_fail (CLUTTER_IS_STAGE (stage)); - - priv = stage->priv; - if (!priv->is_cursor_visible) - { - ClutterStageWindow *impl = CLUTTER_STAGE_WINDOW (priv->impl); - ClutterStageWindowInterface *iface; - - iface = CLUTTER_STAGE_WINDOW_GET_IFACE (impl); - if (iface->set_cursor_visible) - { - priv->is_cursor_visible = TRUE; - - iface->set_cursor_visible (impl, TRUE); - - g_object_notify_by_pspec (G_OBJECT (stage), - obj_props[PROP_CURSOR_VISIBLE]); - } - } -} - -/** - * clutter_stage_hide_cursor: - * @stage: a #ClutterStage - * - * Makes the cursor invisible on the stage window - * - * Since: 0.4 - */ -void -clutter_stage_hide_cursor (ClutterStage *stage) -{ - ClutterStagePrivate *priv; - - g_return_if_fail (CLUTTER_IS_STAGE (stage)); - - priv = stage->priv; - if (priv->is_cursor_visible) - { - ClutterStageWindow *impl = CLUTTER_STAGE_WINDOW (priv->impl); - ClutterStageWindowInterface *iface; - - iface = CLUTTER_STAGE_WINDOW_GET_IFACE (impl); - if (iface->set_cursor_visible) - { - priv->is_cursor_visible = FALSE; - - iface->set_cursor_visible (impl, FALSE); - - g_object_notify_by_pspec (G_OBJECT (stage), - obj_props[PROP_CURSOR_VISIBLE]); - } - } -} - /** * clutter_stage_read_pixels: * @stage: A #ClutterStage diff --git a/clutter/clutter/clutter-stage.h b/clutter/clutter/clutter-stage.h index 19de749b9..45a077686 100644 --- a/clutter/clutter/clutter-stage.h +++ b/clutter/clutter/clutter-stage.h @@ -147,10 +147,6 @@ CLUTTER_EXPORT void clutter_stage_get_perspective (ClutterStage *stage, ClutterPerspective *perspective); CLUTTER_EXPORT -void clutter_stage_show_cursor (ClutterStage *stage); -CLUTTER_EXPORT -void clutter_stage_hide_cursor (ClutterStage *stage); -CLUTTER_EXPORT void clutter_stage_set_title (ClutterStage *stage, const gchar *title); CLUTTER_EXPORT diff --git a/src/backends/meta-stage.c b/src/backends/meta-stage.c index 4df6a4261..01b1240ec 100644 --- a/src/backends/meta-stage.c +++ b/src/backends/meta-stage.c @@ -291,9 +291,7 @@ meta_stage_new (MetaBackend *backend) MetaStage *stage; MetaMonitorManager *monitor_manager; - stage = g_object_new (META_TYPE_STAGE, - "cursor-visible", FALSE, - NULL); + stage = g_object_new (META_TYPE_STAGE, NULL); monitor_manager = meta_backend_get_monitor_manager (backend); g_signal_connect (monitor_manager, "power-save-mode-changed", diff --git a/src/backends/x11/meta-stage-x11.c b/src/backends/x11/meta-stage-x11.c index bf8d0d955..269fafa51 100644 --- a/src/backends/x11/meta-stage-x11.c +++ b/src/backends/x11/meta-stage-x11.c @@ -234,39 +234,6 @@ set_wm_title (MetaStageX11 *stage_x11) } } -static inline void -set_cursor_visible (MetaStageX11 *stage_x11) -{ - Display *xdisplay = clutter_x11_get_default_display (); - - if (stage_x11->xwin == None) - return; - - g_debug ("setting cursor state ('%s') over stage window (%u)", - stage_x11->is_cursor_visible ? "visible" : "invisible", - (unsigned int) stage_x11->xwin); - - if (stage_x11->is_cursor_visible) - { - XUndefineCursor (xdisplay, stage_x11->xwin); - } - else - { - XColor col; - Pixmap pix; - Cursor curs; - - pix = XCreatePixmap (xdisplay, stage_x11->xwin, 1, 1, 1); - memset (&col, 0, sizeof (col)); - curs = XCreatePixmapCursor (xdisplay, - pix, pix, - &col, &col, - 1, 1); - XFreePixmap (xdisplay, pix); - XDefineCursor (xdisplay, stage_x11->xwin, curs); - } -} - static void meta_stage_x11_unrealize (ClutterStageWindow *stage_window) { @@ -362,7 +329,6 @@ meta_stage_x11_realize (ClutterStageWindow *stage_window) set_wm_pid (stage_x11); set_wm_title (stage_x11); - set_cursor_visible (stage_x11); /* we unconditionally select input events even with event retrieval * disabled because we need to guarantee that the Clutter internal @@ -393,16 +359,6 @@ meta_stage_x11_realize (ClutterStageWindow *stage_window) return TRUE; } -static void -meta_stage_x11_set_cursor_visible (ClutterStageWindow *stage_window, - gboolean cursor_visible) -{ - MetaStageX11 *stage_x11 = META_STAGE_X11 (stage_window); - - stage_x11->is_cursor_visible = !!cursor_visible; - set_cursor_visible (stage_x11); -} - static void meta_stage_x11_set_title (ClutterStageWindow *stage_window, const char *title) @@ -587,7 +543,6 @@ meta_stage_x11_init (MetaStageX11 *stage) stage->wm_state = STAGE_X11_WITHDRAWN; - stage->is_cursor_visible = TRUE; stage->accept_focus = TRUE; stage->title = NULL; @@ -599,7 +554,6 @@ clutter_stage_window_iface_init (ClutterStageWindowInterface *iface) clutter_stage_window_parent_iface = g_type_interface_peek_parent (iface); iface->set_title = meta_stage_x11_set_title; - iface->set_cursor_visible = meta_stage_x11_set_cursor_visible; iface->set_accept_focus = meta_stage_x11_set_accept_focus; iface->show = meta_stage_x11_show; iface->hide = meta_stage_x11_hide; diff --git a/src/backends/x11/meta-stage-x11.h b/src/backends/x11/meta-stage-x11.h index 0ec429e53..b466882e0 100644 --- a/src/backends/x11/meta-stage-x11.h +++ b/src/backends/x11/meta-stage-x11.h @@ -67,7 +67,6 @@ struct _MetaStageX11 MetaStageX11State wm_state; - guint is_cursor_visible : 1; guint viewport_initialized : 1; guint accept_focus : 1; }; diff --git a/src/tests/clutter/interactive/test-devices.c b/src/tests/clutter/interactive/test-devices.c index 072c2e730..9b2d0e8d5 100644 --- a/src/tests/clutter/interactive/test-devices.c +++ b/src/tests/clutter/interactive/test-devices.c @@ -227,7 +227,6 @@ test_devices_main (int argc, char **argv) stage = clutter_stage_new (); clutter_actor_set_background_color (stage, CLUTTER_COLOR_LightSkyBlue); clutter_stage_set_title (CLUTTER_STAGE (stage), "Devices"); - clutter_stage_hide_cursor (CLUTTER_STAGE (stage)); g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL);