shell-global: add a "display" property

and update callers to fetch that rather than doing
"global.screen.get_display()"

https://bugzilla.gnome.org/show_bug.cgi?id=654639
This commit is contained in:
Dan Winship 2011-07-13 12:34:31 -04:00
parent b262a42458
commit aed50e2a39
11 changed files with 35 additions and 22 deletions

View File

@ -223,7 +223,7 @@ AltTabPopup.prototype = {
let keysym = event.get_key_symbol(); let keysym = event.get_key_symbol();
let event_state = Shell.get_event_state(event); let event_state = Shell.get_event_state(event);
let backwards = event_state & Clutter.ModifierType.SHIFT_MASK; let backwards = event_state & Clutter.ModifierType.SHIFT_MASK;
let action = global.screen.get_display().get_keybinding_action(event.get_key_code(), event_state); let action = global.display.get_keybinding_action(event.get_key_code(), event_state);
this._disableHover(); this._disableHover();

View File

@ -135,9 +135,7 @@ LayoutManager.prototype = {
}, },
get focusIndex() { get focusIndex() {
let screen = global.screen; let focusWindow = global.display.focus_window;
let display = screen.get_display();
let focusWindow = display.focus_window;
if (focusWindow) { if (focusWindow) {
let wrect = focusWindow.get_outer_rect(); let wrect = focusWindow.get_outer_rect();

View File

@ -222,10 +222,9 @@ function WindowList() {
WindowList.prototype = { WindowList.prototype = {
_init : function () { _init : function () {
this.actor = new St.BoxLayout({ name: 'Windows', vertical: true, style: 'spacing: 8px' }); this.actor = new St.BoxLayout({ name: 'Windows', vertical: true, style: 'spacing: 8px' });
let display = global.screen.get_display();
let tracker = Shell.WindowTracker.get_default(); let tracker = Shell.WindowTracker.get_default();
this._updateId = Main.initializeDeferredWork(this.actor, Lang.bind(this, this._updateWindowList)); this._updateId = Main.initializeDeferredWork(this.actor, Lang.bind(this, this._updateWindowList));
display.connect('window-created', Lang.bind(this, this._updateWindowList)); global.display.connect('window-created', Lang.bind(this, this._updateWindowList));
tracker.connect('tracked-windows-changed', Lang.bind(this, this._updateWindowList)); tracker.connect('tracked-windows-changed', Lang.bind(this, this._updateWindowList));
}, },

View File

@ -194,8 +194,7 @@ function start() {
panel.startStatusArea(); panel.startStatusArea();
panel.startupAnimation(); panel.startupAnimation();
let display = global.screen.get_display(); global.display.connect('overlay-key', Lang.bind(overview, overview.toggle));
display.connect('overlay-key', Lang.bind(overview, overview.toggle));
global.stage.connect('captured-event', _globalKeyPressHandler); global.stage.connect('captured-event', _globalKeyPressHandler);
@ -524,9 +523,8 @@ function _globalKeyPressHandler(actor, event) {
let keyCode = event.get_key_code(); let keyCode = event.get_key_code();
let modifierState = Shell.get_event_state(event); let modifierState = Shell.get_event_state(event);
let display = global.screen.get_display();
// This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
let action = display.get_keybinding_action(keyCode, modifierState); let action = global.display.get_keybinding_action(keyCode, modifierState);
// The screenshot action should always be available (even if a // The screenshot action should always be available (even if a
// modal dialog is present) // modal dialog is present)

View File

@ -234,9 +234,7 @@ FocusGrabber.prototype = {
this.actor = actor; this.actor = actor;
let metaDisplay = global.screen.get_display(); this._prevFocusedWindow = global.display.focus_window;
this._prevFocusedWindow = metaDisplay.focus_window;
this._prevKeyFocusActor = global.stage.get_key_focus(); this._prevKeyFocusActor = global.stage.get_key_focus();
if (!Main.overview.visible) if (!Main.overview.visible)
@ -290,8 +288,6 @@ FocusGrabber.prototype = {
if (!this._hasFocus) if (!this._hasFocus)
return; return;
let metaDisplay = global.screen.get_display();
if (this._focusActorChangedId > 0) { if (this._focusActorChangedId > 0) {
global.stage.disconnect(this._focusActorChangedId); global.stage.disconnect(this._focusActorChangedId);
this._focusActorChangedId = 0; this._focusActorChangedId = 0;
@ -310,8 +306,8 @@ FocusGrabber.prototype = {
this._hasFocus = false; this._hasFocus = false;
this.emit('focus-ungrabbed'); this.emit('focus-ungrabbed');
if (this._prevFocusedWindow && !metaDisplay.focus_window) { if (this._prevFocusedWindow && !global.display.focus_window) {
metaDisplay.set_input_focus_window(this._prevFocusedWindow, false, global.get_current_time()); global.display.set_input_focus_window(this._prevFocusedWindow, false, global.get_current_time());
this._prevFocusedWindow = null; this._prevFocusedWindow = null;
} }
if (this._prevKeyFocusActor) { if (this._prevKeyFocusActor) {

View File

@ -237,7 +237,6 @@ AppMenuButton.prototype = {
_init: function() { _init: function() {
PanelMenu.Button.prototype._init.call(this, 0.0); PanelMenu.Button.prototype._init.call(this, 0.0);
this._metaDisplay = global.screen.get_display();
this._startingApps = []; this._startingApps = [];
this._targetApp = null; this._targetApp = null;

View File

@ -16,8 +16,7 @@ WindowAttentionHandler.prototype = {
this._tracker = Shell.WindowTracker.get_default(); this._tracker = Shell.WindowTracker.get_default();
this._tracker.connect('startup-sequence-changed', Lang.bind(this, this._onStartupSequenceChanged)); this._tracker.connect('startup-sequence-changed', Lang.bind(this, this._onStartupSequenceChanged));
let display = global.screen.get_display(); global.display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention));
display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention));
}, },
_onStartupSequenceChanged : function(tracker) { _onStartupSequenceChanged : function(tracker) {

View File

@ -161,7 +161,7 @@ WindowClone.prototype = {
// will look funny. // will look funny.
if (!this._selected && if (!this._selected &&
this.metaWindow != global.screen.get_display().focus_window) this.metaWindow != global.display.focus_window)
this._zoomEnd(); this._zoomEnd();
} }
}, },

View File

@ -93,6 +93,7 @@ enum {
PROP_OVERLAY_GROUP, PROP_OVERLAY_GROUP,
PROP_SCREEN, PROP_SCREEN,
PROP_GDK_SCREEN, PROP_GDK_SCREEN,
PROP_DISPLAY,
PROP_SCREEN_WIDTH, PROP_SCREEN_WIDTH,
PROP_SCREEN_HEIGHT, PROP_SCREEN_HEIGHT,
PROP_STAGE, PROP_STAGE,
@ -160,6 +161,9 @@ shell_global_get_property(GObject *object,
case PROP_GDK_SCREEN: case PROP_GDK_SCREEN:
g_value_set_object (value, global->gdk_screen); g_value_set_object (value, global->gdk_screen);
break; break;
case PROP_DISPLAY:
g_value_set_object (value, global->meta_display);
break;
case PROP_SCREEN_WIDTH: case PROP_SCREEN_WIDTH:
{ {
int width, height; int width, height;
@ -364,6 +368,14 @@ shell_global_class_init (ShellGlobalClass *klass)
"Screen height, in pixels", "Screen height, in pixels",
0, G_MAXINT, 1, 0, G_MAXINT, 1,
G_PARAM_READABLE)); G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
PROP_DISPLAY,
g_param_spec_object ("display",
"Display",
"Metacity display object for the shell",
META_TYPE_DISPLAY,
G_PARAM_READABLE));
g_object_class_install_property (gobject_class, g_object_class_install_property (gobject_class,
PROP_STAGE, PROP_STAGE,
g_param_spec_object ("stage", g_param_spec_object ("stage",
@ -667,6 +679,17 @@ shell_global_get_gdk_screen (ShellGlobal *global)
return global->gdk_screen; return global->gdk_screen;
} }
/**
* shell_global_get_display:
*
* Return value: (transfer none): The default #MetaDisplay
*/
MetaDisplay *
shell_global_get_display (ShellGlobal *global)
{
return global->meta_display;
}
/** /**
* shell_global_get_window_actors: * shell_global_get_window_actors:
* *

View File

@ -31,6 +31,7 @@ ShellGlobal *shell_global_get (void);
MetaScreen *shell_global_get_screen (ShellGlobal *global); MetaScreen *shell_global_get_screen (ShellGlobal *global);
GdkScreen *shell_global_get_gdk_screen (ShellGlobal *global); GdkScreen *shell_global_get_gdk_screen (ShellGlobal *global);
MetaDisplay *shell_global_get_display (ShellGlobal *global);
GList *shell_global_get_window_actors (ShellGlobal *global); GList *shell_global_get_window_actors (ShellGlobal *global);
GSettings *shell_global_get_settings (ShellGlobal *global); GSettings *shell_global_get_settings (ShellGlobal *global);
guint32 shell_global_get_current_time (ShellGlobal *global); guint32 shell_global_get_current_time (ShellGlobal *global);

View File

@ -418,7 +418,7 @@ update_focus_app (ShellWindowTracker *self)
MetaWindow *new_focus_win; MetaWindow *new_focus_win;
ShellApp *new_focus_app; ShellApp *new_focus_app;
new_focus_win = meta_display_get_focus_window (meta_screen_get_display (shell_global_get_screen (shell_global_get ()))); new_focus_win = meta_display_get_focus_window (shell_global_get_display (shell_global_get ()));
new_focus_app = new_focus_win ? shell_window_tracker_get_window_app (self, new_focus_win) : NULL; new_focus_app = new_focus_win ? shell_window_tracker_get_window_app (self, new_focus_win) : NULL;
set_focus_app (self, new_focus_app); set_focus_app (self, new_focus_app);