compositor: Drop get_stage_for_display helper

As one can get that from the backend/compositor directly.
Expose the necessary functions to allow doing so.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4131>
This commit is contained in:
Bilal Elmoussaoui 2024-12-11 12:08:11 +01:00
parent 1152326ac0
commit 38a4b2e102
7 changed files with 33 additions and 37 deletions

View File

@ -66,12 +66,7 @@ gboolean meta_compositor_is_unredirect_inhibited (MetaCompositor *compositor);
MetaDisplay * meta_compositor_get_display (MetaCompositor *compositor);
MetaBackend * meta_compositor_get_backend (MetaCompositor *compositor);
MetaWindowActor * meta_compositor_get_top_window_actor (MetaCompositor *compositor);
ClutterStage * meta_compositor_get_stage (MetaCompositor *compositor);
gboolean meta_compositor_is_switching_workspace (MetaCompositor *compositor);
gboolean meta_compositor_drag_window (MetaCompositor *compositor,

View File

@ -208,27 +208,6 @@ get_compositor_for_display (MetaDisplay *display)
return display->compositor;
}
/**
* meta_get_stage_for_display:
* @display: a #MetaDisplay
*
* Returns: (transfer none): The #ClutterStage for the display
*/
ClutterActor *
meta_get_stage_for_display (MetaDisplay *display)
{
MetaCompositor *compositor;
MetaCompositorPrivate *priv;
g_return_val_if_fail (display, NULL);
compositor = get_compositor_for_display (display);
g_return_val_if_fail (compositor, NULL);
priv = meta_compositor_get_instance_private (compositor);
return meta_backend_get_stage (priv->backend);
}
/**
* meta_get_window_group_for_display:
* @display: a #MetaDisplay
@ -1329,12 +1308,14 @@ void
meta_compositor_flash_display (MetaCompositor *compositor,
MetaDisplay *display)
{
MetaBackend *backend;
ClutterActor *stage;
ClutterActor *flash;
ClutterTransition *transition;
gfloat width, height;
stage = meta_get_stage_for_display (display);
backend = meta_compositor_get_backend (compositor);
stage = meta_backend_get_stage (backend);
clutter_actor_get_size (stage, &width, &height);
flash = clutter_actor_new ();
@ -1517,6 +1498,12 @@ meta_compositor_get_display (MetaCompositor *compositor)
return priv->display;
}
/**
* meta_compositor_get_stage:
* @compositor: a #MetaCompositor
*
* Returns: (transfer none): The stage corresponding to @compositor
*/
ClutterStage *
meta_compositor_get_stage (MetaCompositor *compositor)
{
@ -1526,6 +1513,12 @@ meta_compositor_get_stage (MetaCompositor *compositor)
return CLUTTER_STAGE (meta_backend_get_stage (priv->backend));
}
/**
* meta_compositor_get_backend:
* @compositor: a #MetaCompositor
*
* Returns: (transfer none): The backend corresponding to @compositor
*/
MetaBackend *
meta_compositor_get_backend (MetaCompositor *compositor)
{

View File

@ -453,7 +453,7 @@ start (MetaPlugin *plugin)
if (meta_is_wayland_compositor ())
init_keymap (self, backend);
clutter_actor_show (meta_get_stage_for_display (display));
clutter_actor_show (meta_backend_get_stage (backend));
}
static void
@ -462,6 +462,7 @@ switch_workspace (MetaPlugin *plugin,
MetaMotionDirection direction)
{
MetaDisplay *display;
MetaCompositor *compositor;
MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv;
GList *l;
ClutterActor *stage;
@ -475,7 +476,8 @@ switch_workspace (MetaPlugin *plugin,
}
display = meta_plugin_get_display (plugin);
stage = meta_get_stage_for_display (display);
compositor = meta_display_get_compositor (display);
stage = CLUTTER_ACTOR (meta_compositor_get_stage (compositor));
meta_display_get_size (display,
&screen_width,

View File

@ -28,8 +28,6 @@
#include "meta/types.h"
/* Public compositor API */
META_EXPORT
ClutterActor *meta_get_stage_for_display (MetaDisplay *display);
META_EXPORT
GList *meta_get_window_actors (MetaDisplay *display);

View File

@ -71,3 +71,9 @@ MetaLaters * meta_compositor_get_laters (MetaCompositor *compositor);
META_EXPORT
ClutterActor * meta_compositor_get_feedback_group (MetaCompositor *compositor);
META_EXPORT
MetaBackend * meta_compositor_get_backend (MetaCompositor *compositor);
META_EXPORT
ClutterStage * meta_compositor_get_stage (MetaCompositor *compositor);

View File

@ -368,7 +368,7 @@ meta_test_shell_start (MetaPlugin *plugin)
test_shell);
if (test_shell->show_stage)
clutter_actor_show (meta_get_stage_for_display (display));
clutter_actor_show (meta_backend_get_stage (backend));
}
static void
@ -378,6 +378,7 @@ meta_test_shell_switch_workspace (MetaPlugin *plugin,
MetaMotionDirection direction)
{
MetaTestShell *test_shell = META_TEST_SHELL (plugin);
MetaCompositor *compositor;
MetaDisplay *display;
ClutterActor *stage;
ClutterActor *workspace1, *workspace2;
@ -391,7 +392,8 @@ meta_test_shell_switch_workspace (MetaPlugin *plugin,
}
display = meta_plugin_get_display (plugin);
stage = meta_get_stage_for_display (display);
compositor = meta_display_get_compositor (display);
stage = CLUTTER_ACTOR (meta_compositor_get_stage (compositor));
meta_display_get_size (display,
&screen_width,

View File

@ -1276,7 +1276,7 @@ static gboolean
stage_is_focused (MetaX11Display *x11_display)
{
MetaDisplay *display = x11_display->display;
ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
ClutterStage *stage = CLUTTER_STAGE (meta_compositor_get_stage (display->compositor));
Window xwindow = meta_x11_get_stage_window (stage);
return x11_display->focus_xwindow == xwindow;
@ -1286,7 +1286,7 @@ static gboolean
stage_has_focus_actor (MetaX11Display *x11_display)
{
MetaDisplay *display = x11_display->display;
ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
ClutterStage *stage = CLUTTER_STAGE (meta_compositor_get_stage (display->compositor));
ClutterActor *key_focus;
key_focus = clutter_stage_get_key_focus (stage);
@ -1542,7 +1542,7 @@ meta_x11_display_new (MetaDisplay *display,
if (!meta_is_wayland_compositor ())
{
ClutterStage *stage =
CLUTTER_STAGE (meta_get_stage_for_display (display));
CLUTTER_STAGE (meta_backend_get_stage (backend));
g_signal_connect_object (stage,
"notify::key-focus",
@ -2327,7 +2327,7 @@ meta_x11_display_set_input_focus (MetaX11Display *x11_display,
MetaFrame *frame;
#ifdef HAVE_X11
MetaDisplay *display = x11_display->display;
ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
ClutterStage *stage = CLUTTER_STAGE (meta_compositor_get_stage (display->compositor));
#endif
if (window && META_IS_WINDOW_X11 (window))