diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index 4adee3ecc98c2a2d1125d3bad292f4774f8f48cd..41b912f68528a3b6e7b504b54643ed6062c8fe07 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -1,6 +1,5 @@ import Clutter from 'gi://Clutter'; import GObject from 'gi://GObject'; -import Meta from 'gi://Meta'; import St from 'gi://St'; import * as Main from './main.js'; @@ -53,9 +52,9 @@ export const BoxPointer = GObject.registerClass({ this.connect('notify::visible', () => { if (this.visible) - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); else - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); }); } diff --git a/js/ui/closeDialog.js b/js/ui/closeDialog.js index 50474d745f63ceedfeaca3ad2a1aa3840c0535f6..88cc1c8c5f0f1ce5afe21193df773d7f2a5a5c54 100644 --- a/js/ui/closeDialog.js +++ b/js/ui/closeDialog.js @@ -147,7 +147,7 @@ export const CloseDialog = GObject.registerClass({ if (this._dialog != null) return; - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, ALIVE_TIMEOUT, () => { @@ -182,7 +182,7 @@ export const CloseDialog = GObject.registerClass({ if (this._dialog == null) return; - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); GLib.source_remove(this._timeoutId); this._timeoutId = 0; diff --git a/js/ui/environment.js b/js/ui/environment.js index a4c028bef2f096d37cba9114ff7c802cf99967ef..b2f5e81f6431824ac6f84aa9ae41e7c71fdc3eba 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -126,11 +126,11 @@ function _easeActor(actor, params) { delete params.mode; const prepare = () => { - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); global.begin_work(); }; const cleanup = () => { - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); global.end_work(); }; let callback = _makeEaseCallback(params, cleanup); @@ -202,11 +202,11 @@ function _easeActorProperty(actor, propName, target, params) { duration = 0; const prepare = () => { - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); global.begin_work(); }; const cleanup = () => { - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); global.end_work(); }; let callback = _makeEaseCallback(params, cleanup); diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index a39a0e0ce7866756319b52a45c4e848aa9bd8c80..180ff6b8dce23ff9df13b804b6e0b87b925facd6 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -1788,7 +1788,7 @@ export const Keyboard = GObject.registerClass({ } _animateShow() { - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); if (this._focusWindow) this._animateWindow(this._focusWindow, true); @@ -1844,7 +1844,7 @@ export const Keyboard = GObject.registerClass({ _animateHideComplete() { Main.layoutManager.keyboardBox.hide(); - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); } gestureProgress(delta) { diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index 436300159e06873f1818cd5cd4bdf3b6fcbff45f..c67ee51cc59fef3505097101a1b22bd825bf2e11 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -1140,7 +1140,7 @@ class ClutterDebugFlag extends DebugFlag { } _isEnabled() { - const enabledFlags = Meta.get_clutter_debug_flags(); + const enabledFlags = Clutter.get_debug_flags(); return !!(enabledFlags[this._argPos] & this._enumValue); } @@ -1151,11 +1151,11 @@ class ClutterDebugFlag extends DebugFlag { } _enable() { - Meta.add_clutter_debug_flags(...this._getArgs()); + Clutter.add_debug_flags(...this._getArgs()); } _disable() { - Meta.remove_clutter_debug_flags(...this._getArgs()); + Clutter.remove_debug_flags(...this._getArgs()); } }); diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index ac0826e0337d51eca50533b6d8481798e528aee5..790ec7221fa14f2498797aacc11524fbaf6f095a 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -5,7 +5,6 @@ import GDesktopEnums from 'gi://GDesktopEnums'; import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; -import Meta from 'gi://Meta'; import Shell from 'gi://Shell'; import St from 'gi://St'; import * as Signals from '../misc/signals.js'; @@ -100,8 +99,7 @@ export class Magnifier extends Signals.EventEmitter { this._zoomRegions = []; // Create small clutter tree for the magnified mouse. - let cursorTracker = Meta.CursorTracker.get_for_display(global.display); - this._cursorTracker = cursorTracker; + this._cursorTracker = global.backend.get_cursor_tracker(); this._mouseSprite = new Clutter.Actor({request_mode: Clutter.RequestMode.CONTENT_SIZE}); this._mouseSprite.content = new MouseSpriteContent(); @@ -188,12 +186,12 @@ export class Magnifier extends Signals.EventEmitter { this._updateMouseSprite(); this._cursorTracker.connectObject( 'cursor-changed', this._updateMouseSprite.bind(this), this); - Meta.disable_unredirect_for_display(global.display); + global.display.disable_unredirect(); this.startTrackingMouse(); } else { this._cursorTracker.disconnectObject(this); this._mouseSprite.content.texture = null; - Meta.enable_unredirect_for_display(global.display); + global.display.enable_unredirect(); this.stopTrackingMouse(); } diff --git a/js/ui/main.js b/js/ui/main.js index 67cc0bbb2638d66af908d9f062e4c71651e72374..769ef4c4cece55ba48eea171690e230aa7528fb3 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -688,7 +688,7 @@ export function pushModal(actor, params = {}) { let grab = global.stage.grab(actor); if (modalCount === 0) - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); modalCount += 1; let actorDestroyId = actor.connect('destroy', () => { @@ -782,7 +782,7 @@ export function popModal(grab) { return; layoutManager.modalEnded(); - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); actionMode = Shell.ActionMode.NORMAL; } diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 7c6f2f5db2ade239ffea089ac35443a9800fe8f3..ac03cdba6ef730dfb4287b47f0545b84f8949254 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1130,7 +1130,7 @@ export const MessageTray = GObject.registerClass({ this._bannerBin.y = -this._banner.height; this.show(); - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); this._updateShowingNotification(); let [x, y] = global.get_pointer(); @@ -1267,7 +1267,7 @@ export const MessageTray = GObject.registerClass({ this._pointerInNotification = false; this._notificationRemoved = false; - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); this._banner.destroy(); this._banner = null; diff --git a/js/ui/osdMonitorLabeler.js b/js/ui/osdMonitorLabeler.js index 8d914246d8428214c67085e59c633d8ef7942d6c..a5a64159b07df582f826714367c7843f7ec770eb 100644 --- a/js/ui/osdMonitorLabeler.js +++ b/js/ui/osdMonitorLabeler.js @@ -1,7 +1,6 @@ import Clutter from 'gi://Clutter'; import Gio from 'gi://Gio'; import GObject from 'gi://GObject'; -import Meta from 'gi://Meta'; import St from 'gi://St'; @@ -29,9 +28,9 @@ class OsdMonitorLabel extends St.Widget { Main.uiGroup.set_child_above_sibling(this, null); this._position(); - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); this.connect('destroy', () => { - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); }); } diff --git a/js/ui/osdWindow.js b/js/ui/osdWindow.js index 85943d6f8d18e5b6a42b571dfb0312b9715be896..f596ca6a9d3e92b1c465fe9333f4628054420ab6 100644 --- a/js/ui/osdWindow.js +++ b/js/ui/osdWindow.js @@ -1,7 +1,6 @@ import Clutter from 'gi://Clutter'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; -import Meta from 'gi://Meta'; import St from 'gi://St'; import * as BarLevel from './barLevel.js'; @@ -93,7 +92,7 @@ class OsdWindow extends Clutter.Actor { return; if (!this.visible) { - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); super.show(); this.opacity = 0; this.get_parent().set_child_above_sibling(this, null); @@ -128,7 +127,7 @@ class OsdWindow extends Clutter.Actor { mode: Clutter.AnimationMode.EASE_OUT_QUAD, onComplete: () => { this._reset(); - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); }, }); return GLib.SOURCE_REMOVE; diff --git a/js/ui/overview.js b/js/ui/overview.js index 9420b69543b2fe1ceb7ed3ba0f88dca2aecf909c..5fd6ccca4e145aed18caed61fe8c176595510ff7 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -249,9 +249,9 @@ export class Overview extends Signals.EventEmitter { } if (this._shownState === OverviewShownState.HIDDEN) - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); else if (state === OverviewShownState.HIDDEN) - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); this._shownState = state; this.emit(OVERVIEW_SHOWN_TRANSITIONS[state].signal); diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index ab9d1b2b906922d97f0db0c0800245ee28d24908..8867239d302526b9bff7120e30f3a905232c61ab 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -137,7 +137,7 @@ export class ScreenShield extends Signals.EventEmitter { this._shortLightbox.connect('notify::active', this._onShortLightbox.bind(this)); this.idleMonitor = global.backend.get_core_idle_monitor(); - this._cursorTracker = Meta.CursorTracker.get_for_display(global.display); + this._cursorTracker = global.backend.get_cursor_tracker(); this._syncInhibitor(); } diff --git a/js/ui/workspaceAnimation.js b/js/ui/workspaceAnimation.js index 02d91a862c1d1e4a28cbb8400089df1eab27f659..e318b0e094400f4a03fb2ef436586aee95f6fafb 100644 --- a/js/ui/workspaceAnimation.js +++ b/js/ui/workspaceAnimation.js @@ -373,11 +373,11 @@ export class WorkspaceAnimationController { switchData.monitors.push(group); } - Meta.disable_unredirect_for_display(global.display); + global.compositor.disable_unredirect(); } _finishWorkspaceSwitch(switchData) { - Meta.enable_unredirect_for_display(global.display); + global.compositor.enable_unredirect(); this._switchData = null; diff --git a/src/shell-global.c b/src/shell-global.c index 617f4e3d1f8aa3f5fa4a1d9371c79942f063e104..f3bf673d2a34a2e5df68627d7a3a180e8e7e2a75 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -308,10 +308,10 @@ shell_global_get_property(GObject *object, g_value_set_object (value, global->stage); break; case PROP_WINDOW_GROUP: - g_value_set_object (value, meta_get_window_group_for_display (global->meta_display)); + g_value_set_object (value, meta_compositor_get_window_group (global->compositor)); break; case PROP_TOP_WINDOW_GROUP: - g_value_set_object (value, meta_get_top_window_group_for_display (global->meta_display)); + g_value_set_object (value, meta_compositor_get_top_window_group (global->compositor)); break; case PROP_WINDOW_MANAGER: g_value_set_object (value, global->wm); @@ -765,6 +765,17 @@ shell_global_set_stage_input_region (ShellGlobal *global, #endif } +/** + * shell_global_get_backend: + * + * Return value: (transfer none): The #MetaBackend + */ +MetaBackend * +shell_global_get_backend (ShellGlobal *global) +{ + return global->backend; +} + /** * shell_global_get_context: * @@ -824,7 +835,7 @@ shell_global_get_window_actors (ShellGlobal *global) g_return_val_if_fail (SHELL_IS_GLOBAL (global), NULL); - for (l = meta_get_window_actors (global->meta_display); l; l = l->next) + for (l = meta_compositor_get_window_actors (global->compositor); l; l = l->next) if (!meta_window_actor_is_destroyed (l->data)) filtered = g_list_prepend (filtered, l->data); @@ -998,7 +1009,7 @@ _shell_global_set_plugin (ShellGlobal *global, global->backend = meta_context_get_backend (context); global->workspace_manager = meta_display_get_workspace_manager (display); - global->stage = CLUTTER_STAGE (meta_get_stage_for_display (display)); + global->stage = CLUTTER_STAGE (meta_backend_get_stage (global->backend)); st_entry_set_cursor_func (entry_cursor_func, global); st_clipboard_set_selection (meta_display_get_selection (display)); @@ -1286,7 +1297,7 @@ shell_global_get_pointer (ShellGlobal *global, MetaCursorTracker *tracker; graphene_point_t point; - tracker = meta_cursor_tracker_get_for_display (global->meta_display); + tracker = meta_backend_get_cursor_tracker (global->backend); meta_cursor_tracker_get_pointer (tracker, &point, &raw_mods); if (x) diff --git a/src/shell-global.h b/src/shell-global.h index 715764a4934f848e8bc55233069d937aef9f2b38..4ccf174fe1239b2b4cb44bc58d58f0ec6737bef3 100644 --- a/src/shell-global.h +++ b/src/shell-global.h @@ -16,7 +16,7 @@ G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (ShellGlobal, shell_global, SHELL, GLOBAL, GObject) ShellGlobal *shell_global_get (void); - +MetaBackend *shell_global_get_backend (ShellGlobal *global); MetaContext *shell_global_get_context (ShellGlobal *global); ClutterStage *shell_global_get_stage (ShellGlobal *global); MetaDisplay *shell_global_get_display (ShellGlobal *global); diff --git a/src/shell-screenshot.c b/src/shell-screenshot.c index 57c4f40ade720715f1575645fe2cd8cd6cf5c92a..f744dd004b3452cafe193ef9a103f995b51269dc 100644 --- a/src/shell-screenshot.c +++ b/src/shell-screenshot.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -360,6 +361,7 @@ draw_cursor_image (cairo_surface_t *surface, int width, height; int stride; guint8 *data; + MetaBackend *backend; MetaDisplay *display; MetaCursorTracker *tracker; cairo_surface_t *cursor_surface; @@ -370,7 +372,8 @@ draw_cursor_image (cairo_surface_t *surface, graphene_point_t point; display = shell_global_get_display (shell_global_get ()); - tracker = meta_cursor_tracker_get_for_display (display); + backend = shell_global_get_backend (shell_global_get ()); + tracker = meta_backend_get_cursor_tracker (backend); texture = meta_cursor_tracker_get_sprite (tracker); if (!texture) @@ -455,6 +458,7 @@ grab_screenshot_content (ShellScreenshot *screenshot, GTask *result) { MetaDisplay *display; + MetaBackend *backend; int width, height; MtkRectangle screenshot_rect; ClutterStage *stage; @@ -469,6 +473,7 @@ grab_screenshot_content (ShellScreenshot *screenshot, int cursor_hot_x, cursor_hot_y; display = shell_global_get_display (screenshot->global); + backend = shell_global_get_backend (screenshot->global); meta_display_get_size (display, &width, &height); screenshot_rect = (MtkRectangle) { .x = 0, @@ -495,7 +500,7 @@ grab_screenshot_content (ShellScreenshot *screenshot, return; } - tracker = meta_cursor_tracker_get_for_display (display); + tracker = meta_backend_get_cursor_tracker (backend); cursor_texture = meta_cursor_tracker_get_sprite (tracker); // If the cursor is invisible, the texture is NULL. @@ -650,6 +655,7 @@ on_after_paint (ClutterStage *stage, { ShellScreenshot *screenshot = g_task_get_task_data (result); MetaDisplay *display = shell_global_get_display (screenshot->global); + MetaCompositor *compositor = meta_display_get_compositor (display); GTask *task; g_signal_handlers_disconnect_by_func (stage, on_after_paint, result); @@ -674,7 +680,7 @@ on_after_paint (ClutterStage *stage, g_signal_emit (screenshot, signals[SCREENSHOT_TAKEN], 0, (MtkRectangle *) &screenshot->screenshot_area); - meta_enable_unredirect_for_display (display); + meta_compositor_enable_unredirect (compositor); } /** @@ -737,8 +743,9 @@ shell_screenshot_screenshot (ShellScreenshot *screenshot, { MetaDisplay *display = shell_global_get_display (screenshot->global); ClutterStage *stage = shell_global_get_stage (screenshot->global); + MetaCompositor *compositor = meta_display_get_compositor (display); - meta_disable_unredirect_for_display (display); + meta_compositor_disable_unredirect (compositor); clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); screenshot->flags = flags; screenshot->mode = SHELL_SCREENSHOT_SCREEN; @@ -782,12 +789,13 @@ screenshot_stage_to_content_on_after_paint (ClutterStage *stage, { ShellScreenshot *screenshot = g_task_get_task_data (result); MetaDisplay *display = shell_global_get_display (screenshot->global); + MetaCompositor *compositor = meta_display_get_compositor (display); g_signal_handlers_disconnect_by_func (stage, screenshot_stage_to_content_on_after_paint, result); - meta_enable_unredirect_for_display (display); + meta_compositor_enable_unredirect (compositor); grab_screenshot_content (screenshot, result); } @@ -822,9 +830,10 @@ shell_screenshot_screenshot_stage_to_content (ShellScreenshot *screenshot, else { MetaDisplay *display = shell_global_get_display (screenshot->global); + MetaCompositor *compositor = meta_display_get_compositor (display); ClutterStage *stage = shell_global_get_stage (screenshot->global); - meta_disable_unredirect_for_display (display); + meta_compositor_disable_unredirect (compositor); clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); g_signal_connect (stage, "after-paint", G_CALLBACK (screenshot_stage_to_content_on_after_paint), @@ -961,9 +970,10 @@ shell_screenshot_screenshot_area (ShellScreenshot *screenshot, else { MetaDisplay *display = shell_global_get_display (screenshot->global); + MetaCompositor *compositor = meta_display_get_compositor (display); ClutterStage *stage = shell_global_get_stage (screenshot->global); - meta_disable_unredirect_for_display (display); + meta_compositor_disable_unredirect (compositor); clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); screenshot->flags = SHELL_SCREENSHOT_FLAG_NONE; screenshot->mode = SHELL_SCREENSHOT_AREA;