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:
parent
b262a42458
commit
aed50e2a39
@ -223,7 +223,7 @@ AltTabPopup.prototype = {
|
||||
let keysym = event.get_key_symbol();
|
||||
let event_state = Shell.get_event_state(event);
|
||||
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();
|
||||
|
||||
|
@ -135,9 +135,7 @@ LayoutManager.prototype = {
|
||||
},
|
||||
|
||||
get focusIndex() {
|
||||
let screen = global.screen;
|
||||
let display = screen.get_display();
|
||||
let focusWindow = display.focus_window;
|
||||
let focusWindow = global.display.focus_window;
|
||||
|
||||
if (focusWindow) {
|
||||
let wrect = focusWindow.get_outer_rect();
|
||||
|
@ -222,10 +222,9 @@ function WindowList() {
|
||||
WindowList.prototype = {
|
||||
_init : function () {
|
||||
this.actor = new St.BoxLayout({ name: 'Windows', vertical: true, style: 'spacing: 8px' });
|
||||
let display = global.screen.get_display();
|
||||
let tracker = Shell.WindowTracker.get_default();
|
||||
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));
|
||||
},
|
||||
|
||||
|
@ -194,8 +194,7 @@ function start() {
|
||||
panel.startStatusArea();
|
||||
panel.startupAnimation();
|
||||
|
||||
let display = global.screen.get_display();
|
||||
display.connect('overlay-key', Lang.bind(overview, overview.toggle));
|
||||
global.display.connect('overlay-key', Lang.bind(overview, overview.toggle));
|
||||
|
||||
global.stage.connect('captured-event', _globalKeyPressHandler);
|
||||
|
||||
@ -524,9 +523,8 @@ function _globalKeyPressHandler(actor, event) {
|
||||
let keyCode = event.get_key_code();
|
||||
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
|
||||
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
|
||||
// modal dialog is present)
|
||||
|
@ -234,9 +234,7 @@ FocusGrabber.prototype = {
|
||||
|
||||
this.actor = actor;
|
||||
|
||||
let metaDisplay = global.screen.get_display();
|
||||
|
||||
this._prevFocusedWindow = metaDisplay.focus_window;
|
||||
this._prevFocusedWindow = global.display.focus_window;
|
||||
this._prevKeyFocusActor = global.stage.get_key_focus();
|
||||
|
||||
if (!Main.overview.visible)
|
||||
@ -290,8 +288,6 @@ FocusGrabber.prototype = {
|
||||
if (!this._hasFocus)
|
||||
return;
|
||||
|
||||
let metaDisplay = global.screen.get_display();
|
||||
|
||||
if (this._focusActorChangedId > 0) {
|
||||
global.stage.disconnect(this._focusActorChangedId);
|
||||
this._focusActorChangedId = 0;
|
||||
@ -310,8 +306,8 @@ FocusGrabber.prototype = {
|
||||
this._hasFocus = false;
|
||||
this.emit('focus-ungrabbed');
|
||||
|
||||
if (this._prevFocusedWindow && !metaDisplay.focus_window) {
|
||||
metaDisplay.set_input_focus_window(this._prevFocusedWindow, false, global.get_current_time());
|
||||
if (this._prevFocusedWindow && !global.display.focus_window) {
|
||||
global.display.set_input_focus_window(this._prevFocusedWindow, false, global.get_current_time());
|
||||
this._prevFocusedWindow = null;
|
||||
}
|
||||
if (this._prevKeyFocusActor) {
|
||||
|
@ -237,7 +237,6 @@ AppMenuButton.prototype = {
|
||||
|
||||
_init: function() {
|
||||
PanelMenu.Button.prototype._init.call(this, 0.0);
|
||||
this._metaDisplay = global.screen.get_display();
|
||||
this._startingApps = [];
|
||||
|
||||
this._targetApp = null;
|
||||
|
@ -16,8 +16,7 @@ WindowAttentionHandler.prototype = {
|
||||
this._tracker = Shell.WindowTracker.get_default();
|
||||
this._tracker.connect('startup-sequence-changed', Lang.bind(this, this._onStartupSequenceChanged));
|
||||
|
||||
let display = global.screen.get_display();
|
||||
display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention));
|
||||
global.display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention));
|
||||
},
|
||||
|
||||
_onStartupSequenceChanged : function(tracker) {
|
||||
|
@ -161,7 +161,7 @@ WindowClone.prototype = {
|
||||
// will look funny.
|
||||
|
||||
if (!this._selected &&
|
||||
this.metaWindow != global.screen.get_display().focus_window)
|
||||
this.metaWindow != global.display.focus_window)
|
||||
this._zoomEnd();
|
||||
}
|
||||
},
|
||||
|
@ -93,6 +93,7 @@ enum {
|
||||
PROP_OVERLAY_GROUP,
|
||||
PROP_SCREEN,
|
||||
PROP_GDK_SCREEN,
|
||||
PROP_DISPLAY,
|
||||
PROP_SCREEN_WIDTH,
|
||||
PROP_SCREEN_HEIGHT,
|
||||
PROP_STAGE,
|
||||
@ -160,6 +161,9 @@ shell_global_get_property(GObject *object,
|
||||
case PROP_GDK_SCREEN:
|
||||
g_value_set_object (value, global->gdk_screen);
|
||||
break;
|
||||
case PROP_DISPLAY:
|
||||
g_value_set_object (value, global->meta_display);
|
||||
break;
|
||||
case PROP_SCREEN_WIDTH:
|
||||
{
|
||||
int width, height;
|
||||
@ -364,6 +368,14 @@ shell_global_class_init (ShellGlobalClass *klass)
|
||||
"Screen height, in pixels",
|
||||
0, G_MAXINT, 1,
|
||||
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,
|
||||
PROP_STAGE,
|
||||
g_param_spec_object ("stage",
|
||||
@ -667,6 +679,17 @@ shell_global_get_gdk_screen (ShellGlobal *global)
|
||||
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:
|
||||
*
|
||||
|
@ -31,6 +31,7 @@ ShellGlobal *shell_global_get (void);
|
||||
|
||||
MetaScreen *shell_global_get_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);
|
||||
GSettings *shell_global_get_settings (ShellGlobal *global);
|
||||
guint32 shell_global_get_current_time (ShellGlobal *global);
|
||||
|
@ -418,7 +418,7 @@ update_focus_app (ShellWindowTracker *self)
|
||||
MetaWindow *new_focus_win;
|
||||
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;
|
||||
|
||||
set_focus_app (self, new_focus_app);
|
||||
|
Loading…
Reference in New Issue
Block a user