From ab549f763de9411eed6b88da9e81214889ac151c Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 30 Jul 2012 14:02:33 -0300 Subject: [PATCH] layout: Port to the new mutter-based barrier wrappers ... and remove our old ones. https://bugzilla.gnome.org/show_bug.cgi?id=677215 --- configure.ac | 8 -------- js/ui/layout.js | 38 +++++++++++++++++++----------------- src/shell-global.c | 48 ---------------------------------------------- src/shell-global.h | 9 --------- 4 files changed, 20 insertions(+), 83 deletions(-) diff --git a/configure.ac b/configure.ac index 9d3bb3f1a..553c39fad 100644 --- a/configure.ac +++ b/configure.ac @@ -114,14 +114,6 @@ AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR]) GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION]) -saved_CFLAGS=$CFLAGS -saved_LIBS=$LIBS -CFLAGS=$GNOME_SHELL_CFLAGS -LIBS=$GNOME_SHELL_LIBS -AC_CHECK_FUNCS(JS_NewGlobalObject XFixesCreatePointerBarrier) -CFLAGS=$saved_CFLAGS -LIBS=$saved_LIBS - PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION) PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11) PKG_CHECK_MODULES(TRAY, gtk+-3.0) diff --git a/js/ui/layout.js b/js/ui/layout.js index a84a9b02f..3125a892e 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -106,9 +106,8 @@ const LayoutManager = new Lang.Class({ this._keyboardIndex = -1; this._hotCorners = []; this._background = null; - this._leftPanelBarrier = 0; - this._rightPanelBarrier = 0; - this._trayBarrier = 0; + this._leftPanelBarrier = null; + this._rightPanelBarrier = null; this._chrome = new Chrome(this); @@ -257,24 +256,27 @@ const LayoutManager = new Lang.Class({ }, _updatePanelBarriers: function() { - if (this._leftPanelBarrier) - global.destroy_pointer_barrier(this._leftPanelBarrier); - if (this._rightPanelBarrier) - global.destroy_pointer_barrier(this._rightPanelBarrier); + if (this._leftPanelBarrier) { + this._leftPanelBarrier.destroy(); + this._leftPanelBarrier = null; + } + + if (this._rightPanelBarrier) { + this._rightPanelBarrier.destroy(); + this._rightPanelBarrier = null; + } if (this.panelBox.height) { let primary = this.primaryMonitor; - this._leftPanelBarrier = - global.create_pointer_barrier(primary.x, primary.y, - primary.x, primary.y + this.panelBox.height, - 1 /* BarrierPositiveX */); - this._rightPanelBarrier = - global.create_pointer_barrier(primary.x + primary.width, primary.y, - primary.x + primary.width, primary.y + this.panelBox.height, - 4 /* BarrierNegativeX */); - } else { - this._leftPanelBarrier = 0; - this._rightPanelBarrier = 0; + + this._leftPanelBarrier = new Meta.Barrier({ display: global.display, + x1: primary.x, y1: primary.y, + x2: primary.x, y2: primary.y + this.panelBox.height, + directions: Meta.BarrierDirection.POSITIVE_X }); + this._rightPanelBarrier = new Meta.Barrier({ display: global.display, + x1: primary.x + primary.width, y1: primary.y, + x2: primary.x + primary.width, y2: primary.y + this.panelBox.height, + directions: Meta.BarrierDirection.NEGATIVE_X }); } }, diff --git a/src/shell-global.c b/src/shell-global.c index c95f07803..59f0d1e0c 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -1007,54 +1007,6 @@ shell_global_end_modal (ShellGlobal *global, meta_plugin_end_modal (global->plugin, timestamp); } -/** - * shell_global_create_pointer_barrier: - * @global: a #ShellGlobal - * @x1: left X coordinate - * @y1: top Y coordinate - * @x2: right X coordinate - * @y2: bottom Y coordinate - * @directions: The directions we're allowed to pass through - * - * If supported by X creates a pointer barrier. - * - * Return value: value you can pass to shell_global_destroy_pointer_barrier() - */ -guint32 -shell_global_create_pointer_barrier (ShellGlobal *global, - int x1, int y1, int x2, int y2, - int directions) -{ -#if HAVE_XFIXESCREATEPOINTERBARRIER - return (guint32) - XFixesCreatePointerBarrier (global->xdisplay, - DefaultRootWindow (global->xdisplay), - x1, y1, - x2, y2, - directions, - 0, NULL); -#else - return 0; -#endif -} - -/** - * shell_global_destroy_pointer_barrier: - * @global: a #ShellGlobal - * @barrier: a pointer barrier - * - * Destroys the @barrier created by shell_global_create_pointer_barrier(). - */ -void -shell_global_destroy_pointer_barrier (ShellGlobal *global, guint32 barrier) -{ -#if HAVE_XFIXESCREATEPOINTERBARRIER - g_return_if_fail (barrier > 0); - - XFixesDestroyPointerBarrier (global->xdisplay, (PointerBarrier)barrier); -#endif -} - /* Code to close all file descriptors before we exec; copied from gspawn.c in GLib. * * Authors: Padraig O'Briain, Matthias Clasen, Lennart Poettering diff --git a/src/shell-global.h b/src/shell-global.h index 95c18e095..d97b31f8f 100644 --- a/src/shell-global.h +++ b/src/shell-global.h @@ -70,15 +70,6 @@ void shell_global_set_cursor (ShellGlobal *global, ShellCursor type); void shell_global_unset_cursor (ShellGlobal *global); -guint32 shell_global_create_pointer_barrier (ShellGlobal *global, - int x1, - int y1, - int x2, - int y2, - int directions); -void shell_global_destroy_pointer_barrier (ShellGlobal *global, - guint32 barrier); - void shell_global_get_pointer (ShellGlobal *global, int *x, int *y,