layout: Port to the new mutter-based barrier wrappers

... and remove our old ones.

https://bugzilla.gnome.org/show_bug.cgi?id=677215
This commit is contained in:
Jasper St. Pierre 2012-07-30 14:02:33 -03:00
parent ea25331a55
commit ab549f763d
4 changed files with 20 additions and 83 deletions

View File

@ -114,14 +114,6 @@ AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION]) 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(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(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
PKG_CHECK_MODULES(TRAY, gtk+-3.0) PKG_CHECK_MODULES(TRAY, gtk+-3.0)

View File

@ -106,9 +106,8 @@ const LayoutManager = new Lang.Class({
this._keyboardIndex = -1; this._keyboardIndex = -1;
this._hotCorners = []; this._hotCorners = [];
this._background = null; this._background = null;
this._leftPanelBarrier = 0; this._leftPanelBarrier = null;
this._rightPanelBarrier = 0; this._rightPanelBarrier = null;
this._trayBarrier = 0;
this._chrome = new Chrome(this); this._chrome = new Chrome(this);
@ -257,24 +256,27 @@ const LayoutManager = new Lang.Class({
}, },
_updatePanelBarriers: function() { _updatePanelBarriers: function() {
if (this._leftPanelBarrier) if (this._leftPanelBarrier) {
global.destroy_pointer_barrier(this._leftPanelBarrier); this._leftPanelBarrier.destroy();
if (this._rightPanelBarrier) this._leftPanelBarrier = null;
global.destroy_pointer_barrier(this._rightPanelBarrier); }
if (this._rightPanelBarrier) {
this._rightPanelBarrier.destroy();
this._rightPanelBarrier = null;
}
if (this.panelBox.height) { if (this.panelBox.height) {
let primary = this.primaryMonitor; let primary = this.primaryMonitor;
this._leftPanelBarrier =
global.create_pointer_barrier(primary.x, primary.y, this._leftPanelBarrier = new Meta.Barrier({ display: global.display,
primary.x, primary.y + this.panelBox.height, x1: primary.x, y1: primary.y,
1 /* BarrierPositiveX */); x2: primary.x, y2: primary.y + this.panelBox.height,
this._rightPanelBarrier = directions: Meta.BarrierDirection.POSITIVE_X });
global.create_pointer_barrier(primary.x + primary.width, primary.y, this._rightPanelBarrier = new Meta.Barrier({ display: global.display,
primary.x + primary.width, primary.y + this.panelBox.height, x1: primary.x + primary.width, y1: primary.y,
4 /* BarrierNegativeX */); x2: primary.x + primary.width, y2: primary.y + this.panelBox.height,
} else { directions: Meta.BarrierDirection.NEGATIVE_X });
this._leftPanelBarrier = 0;
this._rightPanelBarrier = 0;
} }
}, },

View File

@ -1007,54 +1007,6 @@ shell_global_end_modal (ShellGlobal *global,
meta_plugin_end_modal (global->plugin, timestamp); 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. /* Code to close all file descriptors before we exec; copied from gspawn.c in GLib.
* *
* Authors: Padraig O'Briain, Matthias Clasen, Lennart Poettering * Authors: Padraig O'Briain, Matthias Clasen, Lennart Poettering

View File

@ -70,15 +70,6 @@ void shell_global_set_cursor (ShellGlobal *global,
ShellCursor type); ShellCursor type);
void shell_global_unset_cursor (ShellGlobal *global); 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, void shell_global_get_pointer (ShellGlobal *global,
int *x, int *x,
int *y, int *y,