diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c index 799a3db88..72dd0b35c 100644 --- a/src/compositor/compositor.c +++ b/src/compositor/compositor.c @@ -42,8 +42,8 @@ * There's two containers in the stage that are used to place window actors, here * are listed in the order in which they are painted: * - * - window group, accessible with meta_get_window_group_for_display() - * - top window group, accessible with meta_get_top_window_group_for_display() + * - window group, accessible with [method@Meta.Compositor.get_window_group] + * - top window group, accessible with [method@Meta.Compositor.get_top_window_group] * * Mutter will place actors representing windows in the window group, except for * override-redirect windows (ie. popups and menus) which will be placed in the @@ -62,7 +62,6 @@ #include "compositor/meta-window-group-private.h" #include "core/util-private.h" #include "core/window-private.h" -#include "meta/compositor-mutter.h" #include "meta/main.h" #include "meta/meta-backend.h" #include "meta/meta-background-actor.h" @@ -201,49 +200,35 @@ meta_compositor_destroy (MetaCompositor *compositor) g_object_unref (compositor); } -/* compat helper */ -static MetaCompositor * -get_compositor_for_display (MetaDisplay *display) -{ - return display->compositor; -} - /** - * meta_get_window_group_for_display: - * @display: a #MetaDisplay + * meta_compositor_get_window_group: + * @compositor: a #MetaCompositor * - * Returns: (transfer none): The window group corresponding to @display + * Returns: (transfer none): The window group corresponding to @compositor */ ClutterActor * -meta_get_window_group_for_display (MetaDisplay *display) +meta_compositor_get_window_group (MetaCompositor *compositor) { - 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 priv->window_group; } /** - * meta_get_top_window_group_for_display: - * @display: a #MetaDisplay + * meta_compositor_get_top_window_group: + * @compositor: a #MetaCompositor * - * Returns: (transfer none): The top window group corresponding to @display + * Returns: (transfer none): The top window group corresponding to @compositor */ ClutterActor * -meta_get_top_window_group_for_display (MetaDisplay *display) +meta_compositor_get_top_window_group (MetaCompositor *compositor) { - 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); @@ -268,20 +253,16 @@ meta_compositor_get_feedback_group (MetaCompositor *compositor) } /** - * meta_get_window_actors: - * @display: a #MetaDisplay + * meta_compositor_get_window_actors: + * @compositor: a #MetaCompositor * - * Returns: (transfer none) (element-type Clutter.Actor): The set of #MetaWindowActor on @display + * Returns: (transfer none) (element-type Clutter.Actor): The set of #MetaWindowActor on @compositor */ GList * -meta_get_window_actors (MetaDisplay *display) +meta_compositor_get_window_actors (MetaCompositor *compositor) { - 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); @@ -1237,47 +1218,41 @@ meta_compositor_class_init (MetaCompositorClass *klass) } /** - * meta_disable_unredirect_for_display: - * @display: a #MetaDisplay + * meta_compositor_disable_unredirect: + * @compositor: a #MetaCompositor * * Disables unredirection, can be useful in situations where having * unredirected windows is undesirable like when recording a video. * */ void -meta_disable_unredirect_for_display (MetaDisplay *display) +meta_compositor_disable_unredirect (MetaCompositor *compositor) { - MetaCompositor *compositor; MetaCompositorPrivate *priv; - if (display->closing) - return; - - compositor = get_compositor_for_display (display); priv = meta_compositor_get_instance_private (compositor); + if (priv->display->closing) + return; priv->disable_unredirect_count++; } /** - * meta_enable_unredirect_for_display: - * @display: a #MetaDisplay + * meta_compositor_enable_unredirect: + * @compositor: a #MetaCompositor * * Enables unredirection which reduces the overhead for apps like games. * */ void -meta_enable_unredirect_for_display (MetaDisplay *display) +meta_compositor_enable_unredirect (MetaCompositor *compositor) { - MetaCompositor *compositor; - MetaCompositorPrivate *priv; + MetaCompositorPrivate *priv = + meta_compositor_get_instance_private (compositor); - if (display->closing) + if (priv->display->closing) return; - compositor = get_compositor_for_display (display); - priv = meta_compositor_get_instance_private (compositor); - if (priv->disable_unredirect_count == 0) g_warning ("Called enable_unredirect_for_display while unredirection is enabled."); if (priv->disable_unredirect_count > 0) diff --git a/src/compositor/meta-feedback-actor.c b/src/compositor/meta-feedback-actor.c index 19658f73e..f395fd29f 100644 --- a/src/compositor/meta-feedback-actor.c +++ b/src/compositor/meta-feedback-actor.c @@ -63,12 +63,11 @@ meta_feedback_actor_constructed (GObject *object) MetaFeedbackActor *self = META_FEEDBACK_ACTOR (object); MetaFeedbackActorPrivate *priv = meta_feedback_actor_get_instance_private (self); - MetaDisplay *display = meta_compositor_get_display (priv->compositor); ClutterActor *feedback_group; feedback_group = meta_compositor_get_feedback_group (priv->compositor); clutter_actor_add_child (feedback_group, CLUTTER_ACTOR (object)); - meta_disable_unredirect_for_display (display); + meta_compositor_disable_unredirect (priv->compositor); } static void @@ -77,9 +76,8 @@ meta_feedback_actor_finalize (GObject *object) MetaFeedbackActor *self = META_FEEDBACK_ACTOR (object); MetaFeedbackActorPrivate *priv = meta_feedback_actor_get_instance_private (self); - MetaDisplay *display = meta_compositor_get_display (priv->compositor); - meta_enable_unredirect_for_display (display); + meta_compositor_enable_unredirect (priv->compositor); G_OBJECT_CLASS (meta_feedback_actor_parent_class)->finalize (object); } diff --git a/src/compositor/meta-window-actor-private.h b/src/compositor/meta-window-actor-private.h index 0d545f8ac..73fc20d93 100644 --- a/src/compositor/meta-window-actor-private.h +++ b/src/compositor/meta-window-actor-private.h @@ -4,7 +4,6 @@ #include "compositor/meta-plugin-manager.h" #include "compositor/meta-surface-actor.h" -#include "meta/compositor-mutter.h" struct _MetaWindowActorClass { diff --git a/src/compositor/plugins/default.c b/src/compositor/plugins/default.c index 6a11c306b..ca93939cb 100644 --- a/src/compositor/plugins/default.c +++ b/src/compositor/plugins/default.c @@ -264,7 +264,8 @@ on_switch_workspace_effect_stopped (ClutterTimeline *timeline, MetaPlugin *plugin = META_PLUGIN (data); MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv; MetaDisplay *display = meta_plugin_get_display (plugin); - GList *l = meta_get_window_actors (display); + MetaCompositor *compositor = meta_display_get_compositor (display); + GList *l = meta_compositor_get_window_actors (compositor); while (l) { @@ -434,11 +435,12 @@ start (MetaPlugin *plugin) MetaDisplay *display = meta_plugin_get_display (plugin); MetaContext *context = meta_display_get_context (display); MetaBackend *backend = meta_context_get_backend (context); + MetaCompositor *compositor = meta_display_get_compositor (display); MetaMonitorManager *monitor_manager = meta_backend_get_monitor_manager (backend); self->priv->background_group = meta_background_group_new (); - clutter_actor_insert_child_below (meta_get_window_group_for_display (display), + clutter_actor_insert_child_below (meta_compositor_get_window_group (compositor), self->priv->background_group, NULL); g_signal_connect (monitor_manager, "monitors-changed", @@ -501,7 +503,9 @@ switch_workspace (MetaPlugin *plugin, clutter_actor_add_child (stage, workspace1); clutter_actor_add_child (stage, workspace2); - for (l = g_list_last (meta_get_window_actors (display)); l; l = l->prev) + for (l = g_list_last (meta_compositor_get_window_actors (compositor)); + l; + l = l->prev) { MetaWindowActor *window_actor = l->data; ActorPrivate *apriv = get_actor_private (window_actor); @@ -803,6 +807,7 @@ static DisplayTilePreview * get_display_tile_preview (MetaDisplay *display) { DisplayTilePreview *preview; + MetaCompositor *compositor; if (!display_tile_preview_data_quark) { @@ -820,7 +825,8 @@ get_display_tile_preview (MetaDisplay *display) clutter_actor_set_background_color (preview->actor, &COGL_COLOR_INIT (0, 0, 255, 255)); clutter_actor_set_opacity (preview->actor, 100); - clutter_actor_add_child (meta_get_window_group_for_display (display), preview->actor); + compositor = meta_display_get_compositor (display); + clutter_actor_add_child (meta_compositor_get_window_group (compositor), preview->actor); g_signal_connect (display, "closing", G_CALLBACK (on_display_closing), diff --git a/src/core/display.c b/src/core/display.c index 2c02dc824..58dfbc388 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -53,7 +53,6 @@ #include "core/util-private.h" #include "core/window-private.h" #include "core/workspace-private.h" -#include "meta/compositor-mutter.h" #include "meta/compositor.h" #include "meta/main.h" #include "meta/meta-backend.h" diff --git a/src/core/window.c b/src/core/window.c index c3163f074..776e93a06 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -78,7 +78,6 @@ #include "core/stack.h" #include "core/util-private.h" #include "core/workspace-private.h" -#include "meta/compositor-mutter.h" #include "meta/meta-cursor-tracker.h" #include "meta/meta-enum-types.h" #include "meta/prefs.h" diff --git a/src/meta/compositor-mutter.h b/src/meta/compositor-mutter.h deleted file mode 100644 index a19155e16..000000000 --- a/src/meta/compositor-mutter.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ - -/* - * Copyright (C) 2008 Matthew Allum - * Copyright (C) 2007 Iain Holmes - * Based on xcompmgr - (c) 2003 Keith Packard - * xfwm4 - (c) 2005-2007 Olivier Fourdan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#pragma once - -#include "clutter/clutter.h" -#include "meta/compositor.h" -#include "meta/meta-window-actor.h" -#include "meta/types.h" - -/* Public compositor API */ - -META_EXPORT -GList *meta_get_window_actors (MetaDisplay *display); - -META_EXPORT -ClutterActor *meta_get_window_group_for_display (MetaDisplay *display); - -META_EXPORT -ClutterActor *meta_get_top_window_group_for_display (MetaDisplay *display); - -META_EXPORT -void meta_disable_unredirect_for_display (MetaDisplay *display); - -META_EXPORT -void meta_enable_unredirect_for_display (MetaDisplay *display); diff --git a/src/meta/compositor.h b/src/meta/compositor.h index e97bf46cd..745700a03 100644 --- a/src/meta/compositor.h +++ b/src/meta/compositor.h @@ -77,3 +77,18 @@ MetaBackend * meta_compositor_get_backend (MetaCompositor *compositor); META_EXPORT ClutterStage * meta_compositor_get_stage (MetaCompositor *compositor); + +META_EXPORT +ClutterActor * meta_compositor_get_window_group (MetaCompositor *compositor); + +META_EXPORT +GList * meta_compositor_get_window_actors (MetaCompositor *compositor); + +META_EXPORT +ClutterActor * meta_compositor_get_top_window_group (MetaCompositor *compositor); + +META_EXPORT +void meta_compositor_disable_unredirect (MetaCompositor *compositor); + +META_EXPORT +void meta_compositor_enable_unredirect (MetaCompositor *compositor); diff --git a/src/meta/meson.build b/src/meta/meson.build index bc9b82c8e..9bc208ae5 100644 --- a/src/meta/meson.build +++ b/src/meta/meson.build @@ -3,7 +3,6 @@ mutter_public_headers = [ 'boxes.h', 'common.h', 'compositor.h', - 'compositor-mutter.h', 'display.h', 'keybindings.h', 'main.h', diff --git a/src/meta/meta-plugin.h b/src/meta/meta-plugin.h index 6c24df7eb..bd880decb 100644 --- a/src/meta/meta-plugin.h +++ b/src/meta/meta-plugin.h @@ -24,10 +24,10 @@ #include #include "clutter/clutter.h" -#include "meta/compositor-mutter.h" #include "meta/compositor.h" #include "meta/meta-close-dialog.h" #include "meta/meta-inhibit-shortcuts-dialog.h" +#include "meta/meta-window-actor.h" #include "meta/types.h" #define META_TYPE_PLUGIN (meta_plugin_get_type ()) diff --git a/src/tests/meta-ref-test.c b/src/tests/meta-ref-test.c index 941e43cef..28fac56e8 100644 --- a/src/tests/meta-ref-test.c +++ b/src/tests/meta-ref-test.c @@ -52,7 +52,7 @@ #include "backends/meta-gpu.h" #include "backends/meta-stage-private.h" #include "clutter/clutter/clutter-stage-view-private.h" -#include "meta/compositor-mutter.h" +#include "meta/compositor.h" #include "tests/meta-ref-test-utils.h" static void @@ -154,9 +154,10 @@ capture_view (ClutterStageView *stage_view) MetaStage *stage = META_STAGE (meta_backend_get_stage (backend)); MetaContext *context = meta_backend_get_context (backend); MetaDisplay *display = meta_context_get_display (context); + MetaCompositor *compositor = meta_display_get_compositor (display); CaptureViewData data = { 0 }; - meta_disable_unredirect_for_display (display); + meta_compositor_disable_unredirect (compositor); data.loop = g_main_loop_new (NULL, FALSE); data.watch = meta_stage_watch_view (stage, stage_view, @@ -172,7 +173,7 @@ capture_view (ClutterStageView *stage_view) g_assert_null (data.watch); g_assert_nonnull (data.out_image); - meta_enable_unredirect_for_display (display); + meta_compositor_enable_unredirect (compositor); return data.out_image; } diff --git a/src/tests/meta-test-shell.c b/src/tests/meta-test-shell.c index 94eba0051..b06cf1f26 100644 --- a/src/tests/meta-test-shell.c +++ b/src/tests/meta-test-shell.c @@ -212,7 +212,8 @@ on_switch_workspace_effect_stopped (ClutterTimeline *timeline, MetaPlugin *plugin = META_PLUGIN (data); MetaTestShell *test_shell = META_TEST_SHELL (plugin); MetaDisplay *display = meta_plugin_get_display (plugin); - GList *l = meta_get_window_actors (display); + MetaCompositor *compositor = meta_display_get_compositor (display); + GList *l = meta_compositor_get_window_actors (compositor); while (l) { @@ -347,13 +348,14 @@ meta_test_shell_start (MetaPlugin *plugin) { MetaTestShell *test_shell = META_TEST_SHELL (plugin); MetaDisplay *display = meta_plugin_get_display (plugin); + MetaCompositor *compositor = meta_display_get_compositor (display); MetaContext *context = meta_display_get_context (display); MetaBackend *backend = meta_context_get_backend (context); MetaMonitorManager *monitor_manager = meta_backend_get_monitor_manager (backend); test_shell->background_group = meta_background_group_new (); - clutter_actor_insert_child_below (meta_get_window_group_for_display (display), + clutter_actor_insert_child_below (meta_compositor_get_window_group (compositor), test_shell->background_group, NULL); g_signal_connect (monitor_manager, "monitors-changed", @@ -415,7 +417,9 @@ meta_test_shell_switch_workspace (MetaPlugin *plugin, clutter_actor_add_child (stage, workspace1); clutter_actor_add_child (stage, workspace2); - for (l = g_list_last (meta_get_window_actors (display)); l; l = l->prev) + for (l = g_list_last (meta_compositor_get_window_actors (compositor)); + l; + l = l->prev) { MetaWindowActor *window_actor = l->data; ActorPrivate *actor_priv = get_actor_private (window_actor); @@ -713,6 +717,7 @@ static DisplayTilePreview * get_display_tile_preview (MetaDisplay *display) { DisplayTilePreview *preview; + MetaCompositor *compositor; if (!display_tile_preview_data_quark) { @@ -730,7 +735,8 @@ get_display_tile_preview (MetaDisplay *display) clutter_actor_set_background_color (preview->actor, &COGL_COLOR_INIT (0, 0, 255, 255)); clutter_actor_set_opacity (preview->actor, 100); - clutter_actor_add_child (meta_get_window_group_for_display (display), + compositor = meta_display_get_compositor (display); + clutter_actor_add_child (meta_compositor_get_window_group (compositor), preview->actor); g_signal_connect (display, "closing",