From ba27cc4a64daf7f62174653362741de30c2f5b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 13 Nov 2017 17:13:01 +0000 Subject: [PATCH] cleanup: Get rid of Lang.bind() After replacing Lang.Class with ES6 classes and adopting arrow notation for anonymous callbacks, we only use the Lang module to bind `this` to named callbacks. However since ES5, this functionality is already provided by Function.prototype.bind() - in fact, Lang.bind() itself uses it when no extra arguments are specified. So just use the built-in function directly instead of the wrapper. Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/30 --- extensions/alternate-tab/extension.js | 13 +-- extensions/apps-menu/extension.js | 21 +++-- extensions/auto-move-windows/extension.js | 3 +- extensions/auto-move-windows/prefs.js | 9 +- extensions/drive-menu/extension.js | 11 ++- extensions/places-menu/extension.js | 5 +- extensions/places-menu/placeDisplay.js | 11 ++- extensions/user-theme/extension.js | 3 +- extensions/window-list/extension.js | 91 +++++++++++---------- extensions/windowsNavigator/extension.js | 7 +- extensions/workspace-indicator/extension.js | 15 ++-- extensions/workspace-indicator/prefs.js | 15 ++-- 12 files changed, 103 insertions(+), 101 deletions(-) diff --git a/extensions/alternate-tab/extension.js b/extensions/alternate-tab/extension.js index 88e36390..58f212a1 100644 --- a/extensions/alternate-tab/extension.js +++ b/extensions/alternate-tab/extension.js @@ -1,7 +1,6 @@ /* -*- mode: js; js-basic-offset: 4; indent-tabs-mode: nil -*- */ const Clutter = imports.gi.Clutter; -const Lang = imports.lang; const Meta = imports.gi.Meta; const Shell = imports.gi.Shell; @@ -43,15 +42,19 @@ function enable() { tabPopup.destroy(); }; - setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._forcedWindowSwitcher)); - setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._forcedWindowSwitcher)); + setKeybinding('switch-applications', + Main.wm._forcedWindowSwitcher.bind(Main.wm)); + setKeybinding('switch-applications-backward', + Main.wm._forcedWindowSwitcher.bind(Main.wm)); } function disable() { var prop; - setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._startSwitcher)); - setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._startSwitcher)); + setKeybinding('switch-applications', + Main.wm._startSwitcher.bind(Main.wm)); + setKeybinding('switch-applications-backward', + Main.wm._startSwitcher.bind(Main.wm)); for (prop in injections) AltTab.WindowSwitcherPopup.prototype[prop] = injections[prop]; diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js index d5d8af7a..5b382138 100644 --- a/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js @@ -3,7 +3,6 @@ const Atk = imports.gi.Atk; const DND = imports.ui.dnd; const GMenu = imports.gi.GMenu; -const Lang = imports.lang; const Shell = imports.gi.Shell; const St = imports.gi.St; const Clutter = imports.gi.Clutter; @@ -61,7 +60,7 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem { let textureCache = St.TextureCache.get_default(); let iconThemeChangedId = textureCache.connect('icon-theme-changed', - Lang.bind(this, this._updateIcon)); + this._updateIcon.bind(this)); this.actor.connect('destroy', () => { textureCache.disconnect(iconThemeChangedId); }); @@ -131,7 +130,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem { name = _("Favorites"); this.actor.add_child(new St.Label({ text: name })); - this.actor.connect('motion-event', Lang.bind(this, this._onMotionEvent)); + this.actor.connect('motion-event', this._onMotionEvent.bind(this)); } activate(event) { @@ -272,7 +271,7 @@ class DesktopTarget { this._windowAddedId = global.window_group.connect('actor-added', - Lang.bind(this, this._onWindowAdded)); + this._onWindowAdded.bind(this)); global.get_window_actors().forEach(a => { this._onWindowAdded(a.get_parent(), a); @@ -425,8 +424,8 @@ class ApplicationsButton extends PanelMenu.Button { this.actor.name = 'panelApplications'; this.actor.label_actor = this._label; - this.actor.connect('captured-event', Lang.bind(this, this._onCapturedEvent)); - this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); + this.actor.connect('captured-event', this._onCapturedEvent.bind(this)); + this.actor.connect('destroy', this._onDestroy.bind(this)); this._showingId = Main.overview.connect('showing', () => { this.actor.add_accessible_state (Atk.StateType.CHECKED); @@ -435,7 +434,7 @@ class ApplicationsButton extends PanelMenu.Button { this.actor.remove_accessible_state (Atk.StateType.CHECKED); }); Main.layoutManager.connect('startup-complete', - Lang.bind(this, this._setKeybinding)); + this._setKeybinding.bind(this)); this._setKeybinding(); this._desktopTarget = new DesktopTarget(); @@ -450,14 +449,14 @@ class ApplicationsButton extends PanelMenu.Button { this._tree = new GMenu.Tree({ menu_basename: 'applications.menu' }); this._treeChangedId = this._tree.connect('changed', - Lang.bind(this, this._onTreeChanged)); + this._onTreeChanged.bind(this)); this._applicationsButtons = new Map(); this.reloadFlag = false; this._createLayout(); this._display(); this._installedChangedId = appSys.connect('installed-changed', - Lang.bind(this, this._onTreeChanged)); + this._onTreeChanged.bind(this)); } _onTreeChanged() { @@ -476,7 +475,7 @@ class ApplicationsButton extends PanelMenu.Button { _createVertSeparator() { let separator = new St.DrawingArea({ style_class: 'calendar-vertical-separator', pseudo_class: 'highlighted' }); - separator.connect('repaint', Lang.bind(this, this._onVertSepRepaint)); + separator.connect('repaint', this._onVertSepRepaint.bind(this)); return separator; } @@ -491,7 +490,7 @@ class ApplicationsButton extends PanelMenu.Button { Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW, Main.sessionMode.hasOverview ? - Lang.bind(Main.overview, Main.overview.toggle) : + Main.overview.toggle.bind(Main.overview) : null); this._desktopTarget.destroy(); diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js index 34da4503..ca9cd905 100644 --- a/extensions/auto-move-windows/extension.js +++ b/extensions/auto-move-windows/extension.js @@ -3,7 +3,6 @@ const Glib = imports.gi.GLib; const Gio = imports.gi.Gio; -const Lang = imports.lang; const Mainloop = imports.mainloop; const Meta = imports.gi.Meta; const Shell = imports.gi.Shell; @@ -26,7 +25,7 @@ class WindowMover { let display = global.screen.get_display(); // Connect after so the handler from ShellWindowTracker has already run - this._windowCreatedId = display.connect_after('window-created', Lang.bind(this, this._findAndMove)); + this._windowCreatedId = display.connect_after('window-created', this._findAndMove.bind(this)); } destroy() { diff --git a/extensions/auto-move-windows/prefs.js b/extensions/auto-move-windows/prefs.js index 16c0416a..f163a19f 100644 --- a/extensions/auto-move-windows/prefs.js +++ b/extensions/auto-move-windows/prefs.js @@ -4,7 +4,6 @@ const Gio = imports.gi.Gio; const GObject = imports.gi.GObject; const Gtk = imports.gi.Gtk; -const Lang = imports.lang; const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = Gettext.gettext; @@ -34,7 +33,7 @@ const Widget = GObject.registerClass({ this.set_orientation(Gtk.Orientation.VERTICAL); this._settings = Convenience.getSettings(); - this._settings.connect('changed', Lang.bind(this, this._refresh)); + this._settings.connect('changed', this._refresh.bind(this)); this._changedPermitted = false; this._store = new Gtk.ListStore(); @@ -63,7 +62,7 @@ const Widget = GObject.registerClass({ let workspaceColumn = new Gtk.TreeViewColumn({ title: _("Workspace"), sort_column_id: Columns.WORKSPACE }); let workspaceRenderer = new Gtk.CellRendererSpin({ editable: true }); - workspaceRenderer.connect('edited', Lang.bind(this, this._workspaceEdited)); + workspaceRenderer.connect('edited', this._workspaceEdited.bind(this)); workspaceColumn.pack_start(workspaceRenderer, true); workspaceColumn.add_attribute(workspaceRenderer, "adjustment", Columns.ADJUSTMENT); workspaceColumn.add_attribute(workspaceRenderer, "text", Columns.WORKSPACE); @@ -78,11 +77,11 @@ const Widget = GObject.registerClass({ let newButton = new Gtk.ToolButton({ icon_name: 'bookmark-new-symbolic', label: _("Add Rule"), is_important: true }); - newButton.connect('clicked', Lang.bind(this, this._createNew)); + newButton.connect('clicked', this._createNew.bind(this)); toolbar.add(newButton); let delButton = new Gtk.ToolButton({ icon_name: 'edit-delete-symbolic' }); - delButton.connect('clicked', Lang.bind(this, this._deleteSelected)); + delButton.connect('clicked', this._deleteSelected.bind(this)); toolbar.add(delButton); let selection = this._treeView.get_selection(); diff --git a/extensions/drive-menu/extension.js b/extensions/drive-menu/extension.js index 9356b59a..3c3dbe8c 100644 --- a/extensions/drive-menu/extension.js +++ b/extensions/drive-menu/extension.js @@ -1,7 +1,6 @@ // Drive menu extension const Clutter = imports.gi.Clutter; const Gio = imports.gi.Gio; -const Lang = imports.lang; const St = imports.gi.St; const Shell = imports.gi.Shell; @@ -31,10 +30,10 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem { let ejectIcon = new St.Icon({ icon_name: 'media-eject-symbolic', style_class: 'popup-menu-icon ' }); let ejectButton = new St.Button({ child: ejectIcon }); - ejectButton.connect('clicked', Lang.bind(this, this._eject)); + ejectButton.connect('clicked', this._eject.bind(this)); this.actor.add(ejectButton); - this._changedId = mount.connect('changed', Lang.bind(this, this._syncVisibility)); + this._changedId = mount.connect('changed', this._syncVisibility.bind(this)); this._syncVisibility(); } @@ -75,12 +74,12 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem { this.mount.eject_with_operation(Gio.MountUnmountFlags.NONE, mountOp.mountOp, null, // Gio.Cancellable - Lang.bind(this, this._ejectFinish)); + this._ejectFinish.bind(this)); else this.mount.unmount_with_operation(Gio.MountUnmountFlags.NONE, mountOp.mountOp, null, // Gio.Cancellable - Lang.bind(this, this._unmountFinish)); + this._unmountFinish.bind(this)); } _unmountFinish(mount, result) { @@ -138,7 +137,7 @@ class DriveMenu extends PanelMenu.Button { this._mounts = [ ]; - this._monitor.get_mounts().forEach(Lang.bind(this, this._addMount)); + this._monitor.get_mounts().forEach(this._addMount.bind(this)); this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); this.menu.addAction(_("Open Files"), event => { diff --git a/extensions/places-menu/extension.js b/extensions/places-menu/extension.js index 45cc9460..429e81dc 100644 --- a/extensions/places-menu/extension.js +++ b/extensions/places-menu/extension.js @@ -3,7 +3,6 @@ const Clutter = imports.gi.Clutter; const Gio = imports.gi.Gio; const GLib = imports.gi.GLib; -const Lang = imports.lang; const Shell = imports.gi.Shell; const St = imports.gi.St; @@ -39,12 +38,12 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem { this._ejectIcon = new St.Icon({ icon_name: 'media-eject-symbolic', style_class: 'popup-menu-icon ' }); this._ejectButton = new St.Button({ child: this._ejectIcon }); - this._ejectButton.connect('clicked', Lang.bind(info, info.eject)); + this._ejectButton.connect('clicked', info.eject.bind(info)); this.actor.add_child(this._ejectButton); } this._changedId = info.connect('changed', - Lang.bind(this, this._propertiesChanged)); + this._propertiesChanged.bind(this)); } destroy() { diff --git a/extensions/places-menu/placeDisplay.js b/extensions/places-menu/placeDisplay.js index b1be6572..9885d0a8 100644 --- a/extensions/places-menu/placeDisplay.js +++ b/extensions/places-menu/placeDisplay.js @@ -3,7 +3,6 @@ const GLib = imports.gi.GLib; const Gio = imports.gi.Gio; const Shell = imports.gi.Shell; -const Lang = imports.lang; const Mainloop = imports.mainloop; const Signals = imports.signals; const St = imports.gi.St; @@ -143,7 +142,7 @@ class RootInfo extends PlaceInfo { return; this._proxy.connect('g-properties-changed', - Lang.bind(this, this._propertiesChanged)); + this._propertiesChanged.bind(this)); this._propertiesChanged(obj); }); } @@ -189,12 +188,12 @@ class PlaceDeviceInfo extends PlaceInfo { this._mount.eject_with_operation(Gio.MountUnmountFlags.NONE, mountOp.mountOp, null, // Gio.Cancellable - Lang.bind(this, this._ejectFinish)); + this._ejectFinish.bind(this)); else this._mount.unmount_with_operation(Gio.MountUnmountFlags.NONE, mountOp.mountOp, null, // Gio.Cancellable - Lang.bind(this, this._unmountFinish)); + this._unmountFinish.bind(this)); } _ejectFinish(mount, result) { @@ -265,7 +264,7 @@ var PlacesManager = class { this._settings = new Gio.Settings({ schema_id: BACKGROUND_SCHEMA }); this._showDesktopIconsChangedId = this._settings.connect('changed::show-desktop-icons', - Lang.bind(this, this._updateSpecials)); + this._updateSpecials.bind(this)); this._updateSpecials(); /* @@ -302,7 +301,7 @@ var PlacesManager = class { 'drive-connected', 'drive-disconnected', 'drive-changed']; this._volumeMonitorSignals = []; - let func = Lang.bind(this, this._updateMounts); + let func = this._updateMounts.bind(this); for (let i = 0; i < signals.length; i++) { let id = this._volumeMonitor.connect(signals[i], func); this._volumeMonitorSignals.push(id); diff --git a/extensions/user-theme/extension.js b/extensions/user-theme/extension.js index 0c792cfc..e0c2d57c 100644 --- a/extensions/user-theme/extension.js +++ b/extensions/user-theme/extension.js @@ -3,7 +3,6 @@ const GLib = imports.gi.GLib; const Gio = imports.gi.Gio; -const Lang = imports.lang; const Main = imports.ui.main; const SETTINGS_KEY = 'name'; @@ -18,7 +17,7 @@ class ThemeManager { } enable() { - this._changedId = this._settings.connect('changed::'+SETTINGS_KEY, Lang.bind(this, this._changeTheme)); + this._changedId = this._settings.connect('changed::'+SETTINGS_KEY, this._changeTheme.bind(this)); this._changeTheme(); } diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 6d09525e..4978b497 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -7,7 +7,6 @@ const Shell = imports.gi.Shell; const St = imports.gi.St; const DND = imports.ui.dnd; -const Lang = imports.lang; const Main = imports.ui.main; const PanelMenu = imports.ui.panelMenu; const PopupMenu = imports.ui.popupMenu; @@ -81,7 +80,7 @@ class WindowContextMenu extends PopupMenu.PopupMenu { this._notifyMinimizedId = this._metaWindow.connect('notify::minimized', - Lang.bind(this, this._updateMinimizeItem)); + this._updateMinimizeItem.bind(this)); this._updateMinimizeItem(); this._maximizeItem = new PopupMenu.PopupMenuItem(''); @@ -98,10 +97,10 @@ class WindowContextMenu extends PopupMenu.PopupMenu { this._notifyMaximizedHId = this._metaWindow.connect('notify::maximized-horizontally', - Lang.bind(this, this._updateMaximizeItem)); + this._updateMaximizeItem.bind(this)); this._notifyMaximizedVId = this._metaWindow.connect('notify::maximized-vertically', - Lang.bind(this, this._updateMaximizeItem)); + this._updateMaximizeItem.bind(this)); this._updateMaximizeItem(); this._closeItem = new PopupMenu.PopupMenuItem(_("Close")); @@ -110,7 +109,7 @@ class WindowContextMenu extends PopupMenu.PopupMenu { }); this.addMenuItem(this._closeItem); - this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); + this.actor.connect('destroy', this._onDestroy.bind(this)); this.connect('open-state-changed', () => { if (!this.isOpen) @@ -155,23 +154,23 @@ class WindowTitle { this._textureCache = St.TextureCache.get_default(); this._iconThemeChangedId = this._textureCache.connect('icon-theme-changed', - Lang.bind(this, this._updateIcon)); + this._updateIcon.bind(this)); this._notifyWmClass = this._metaWindow.connect('notify::wm-class', - Lang.bind(this, this._updateIcon)); + this._updateIcon.bind(this)); this._notifyAppId = this._metaWindow.connect('notify::gtk-application-id', - Lang.bind(this, this._updateIcon)); + this._updateIcon.bind(this)); this._updateIcon(); - this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); + this.actor.connect('destroy', this._onDestroy.bind(this)); this._notifyTitleId = this._metaWindow.connect('notify::title', - Lang.bind(this, this._updateTitle)); + this._updateTitle.bind(this)); this._notifyMinimizedId = this._metaWindow.connect('notify::minimized', - Lang.bind(this, this._minimizedChanged)); + this._minimizedChanged.bind(this)); this._minimizedChanged(); } @@ -226,24 +225,24 @@ class BaseButton { this.actor._delegate = this; this.actor.connect('allocation-changed', - Lang.bind(this, this._updateIconGeometry)); - this.actor.connect('clicked', Lang.bind(this, this._onClicked)); - this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); - this.actor.connect('popup-menu', Lang.bind(this, this._onPopupMenu)); + this._updateIconGeometry.bind(this)); + this.actor.connect('clicked', this._onClicked.bind(this)); + this.actor.connect('destroy', this._onDestroy.bind(this)); + this.actor.connect('popup-menu', this._onPopupMenu.bind(this)); this._contextMenuManager = new PopupMenu.PopupMenuManager(this); this._switchWorkspaceId = global.window_manager.connect('switch-workspace', - Lang.bind(this, this._updateVisibility)); + this._updateVisibility.bind(this)); if (this._perMonitor) { this._windowEnteredMonitorId = global.screen.connect('window-entered-monitor', - Lang.bind(this, this._windowEnteredOrLeftMonitor)); + this._windowEnteredOrLeftMonitor.bind(this)); this._windowLeftMonitorId = global.screen.connect('window-left-monitor', - Lang.bind(this, this._windowEnteredOrLeftMonitor)); + this._windowEnteredOrLeftMonitor.bind(this)); } } @@ -345,11 +344,11 @@ class WindowButton extends BaseButton { this._workspaceChangedId = this.metaWindow.connect('workspace-changed', - Lang.bind(this, this._updateVisibility)); + this._updateVisibility.bind(this)); this._notifyFocusId = global.display.connect('notify::focus-window', - Lang.bind(this, this._updateStyle)); + this._updateStyle.bind(this)); this._updateStyle(); } @@ -492,7 +491,7 @@ class AppButton extends BaseButton { this._menu = new PopupMenu.PopupMenu(this.actor, 0.5, St.Side.BOTTOM); this._menu.connect('open-state-changed', _onMenuStateChanged); this._menu.actor.hide(); - this._menu.connect('activate', Lang.bind(this, this._onMenuActivate)); + this._menu.connect('activate', this._onMenuActivate.bind(this)); this._menuManager.addMenu(this._menu); Main.uiGroup.add_actor(this._menu.actor); @@ -509,13 +508,13 @@ class AppButton extends BaseButton { this._windowsChangedId = this.app.connect('windows-changed', - Lang.bind(this, this._windowsChanged)); + this._windowsChanged.bind(this)); this._windowsChanged(); this._windowTracker = Shell.WindowTracker.get_default(); this._notifyFocusId = this._windowTracker.connect('notify::focus-app', - Lang.bind(this, this._updateStyle)); + this._updateStyle.bind(this)); this._updateStyle(); } @@ -662,14 +661,18 @@ class WorkspaceIndicator extends PanelMenu.Button { this.workspacesItems = []; this._screenSignals = []; - this._screenSignals.push(global.screen.connect('notify::n-workspaces', Lang.bind(this,this._updateMenu))); - this._screenSignals.push(global.screen.connect_after('workspace-switched', Lang.bind(this,this._updateIndicator))); + this._screenSignals.push(global.screen.connect('notify::n-workspaces', + this._updateMenu.bind(this))); + this._screenSignals.push(global.screen.connect_after('workspace-switched', + this._updateIndicator.bind(this))); - this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent)); + this.actor.connect('scroll-event', this._onScrollEvent.bind(this)); this._updateMenu(); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' }); - this._settingsChangedId = this._settings.connect('changed::workspace-names', Lang.bind(this, this._updateMenu)); + this._settingsChangedId = + this._settings.connect('changed::workspace-names', + this._updateMenu.bind(this)); } destroy() { @@ -761,7 +764,7 @@ class WindowList { reactive: true, track_hover: true, layout_manager: new Clutter.BinLayout()}); - this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); + this.actor.connect('destroy', this._onDestroy.bind(this)); let box = new St.BoxLayout({ x_expand: true, y_expand: true }); this.actor.add_actor(box); @@ -780,7 +783,7 @@ class WindowList { let spacing = node.get_length('spacing'); this._windowList.layout_manager.spacing = spacing; }); - this._windowList.connect('scroll-event', Lang.bind(this, this._onScrollEvent)); + this._windowList.connect('scroll-event', this._onScrollEvent.bind(this)); let indicatorsBox = new St.BoxLayout({ x_align: Clutter.ActorAlign.END }); box.add(indicatorsBox); @@ -792,11 +795,11 @@ class WindowList { this._workspaceSettings = this._getWorkspaceSettings(); this._workspacesOnlyOnPrimaryChangedId = this._workspaceSettings.connect('changed::workspaces-only-on-primary', - Lang.bind(this, this._updateWorkspaceIndicatorVisibility)); + this._updateWorkspaceIndicatorVisibility.bind(this)); this._dynamicWorkspacesSettings = this._getDynamicWorkspacesSettings(); this._dynamicWorkspacesChangedId = this._dynamicWorkspacesSettings.connect('changed::dynamic-workspaces', - Lang.bind(this, this._updateWorkspaceIndicatorVisibility)); + this._updateWorkspaceIndicatorVisibility.bind(this)); this._updateWorkspaceIndicatorVisibility(); this._menuManager = new PopupMenu.PopupMenuManager(this); @@ -808,13 +811,13 @@ class WindowList { Main.ctrlAltTabManager.addGroup(this.actor, _("Window List"), 'start-here-symbolic'); this.actor.width = this._monitor.width; - this.actor.connect('notify::height', Lang.bind(this, this._updatePosition)); + this.actor.connect('notify::height', this._updatePosition.bind(this)); this._updatePosition(); this._appSystem = Shell.AppSystem.get_default(); this._appStateChangedId = this._appSystem.connect('app-state-changed', - Lang.bind(this, this._onAppStateChanged)); + this._onAppStateChanged.bind(this)); this._keyboardVisiblechangedId = Main.layoutManager.connect('keyboard-visible-changed', @@ -833,12 +836,12 @@ class WindowList { this._workspaceSignals = new Map(); this._nWorkspacesChangedId = global.screen.connect('notify::n-workspaces', - Lang.bind(this, this._onWorkspacesChanged)); + this._onWorkspacesChanged.bind(this)); this._onWorkspacesChanged(); this._switchWorkspaceId = global.window_manager.connect('switch-workspace', - Lang.bind(this, this._checkGrouping)); + this._checkGrouping.bind(this)); this._overviewShowingId = Main.overview.connect('showing', () => { @@ -859,12 +862,12 @@ class WindowList { this._dragBeginId = Main.xdndHandler.connect('drag-begin', - Lang.bind(this, this._onDragBegin)); + this._onDragBegin.bind(this)); this._dragEndId = Main.xdndHandler.connect('drag-end', - Lang.bind(this, this._onDragEnd)); + this._onDragEnd.bind(this)); this._dragMonitor = { - dragMotion: Lang.bind(this, this._onDragMotion) + dragMotion: this._onDragMotion.bind(this) }; this._dndTimeoutId = 0; @@ -873,7 +876,7 @@ class WindowList { this._settings = Convenience.getSettings(); this._groupingModeChangedId = this._settings.connect('changed::grouping-mode', - Lang.bind(this, this._groupingModeChanged)); + this._groupingModeChanged.bind(this)); this._grouped = undefined; this._groupingModeChanged(); } @@ -1085,10 +1088,10 @@ class WindowList { let signals = { windowAddedId: 0, windowRemovedId: 0 }; signals._windowAddedId = workspace.connect_after('window-added', - Lang.bind(this, this._onWindowAdded)); + this._onWindowAdded.bind(this)); signals._windowRemovedId = workspace.connect('window-removed', - Lang.bind(this, this._onWindowRemoved)); + this._onWindowRemoved.bind(this)); this._workspaceSignals.set(workspace, signals); } @@ -1135,7 +1138,7 @@ class WindowList { this._dndWindow = hoveredWindow; this._dndTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, DND_ACTIVATE_TIMEOUT, - Lang.bind(this, this._activateWindow)); + this._activateWindow.bind(this)); return DND.DragMotionResult.CONTINUE; } @@ -1211,11 +1214,11 @@ class Extension { this._settings = Convenience.getSettings(); this._showOnAllMonitorsChangedId = this._settings.connect('changed::show-on-all-monitors', - Lang.bind(this, this._buildWindowLists)); + this._buildWindowLists.bind(this)); this._monitorsChangedId = Main.layoutManager.connect('monitors-changed', - Lang.bind(this, this._buildWindowLists)); + this._buildWindowLists.bind(this)); this._buildWindowLists(); } diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js index a2a02575..8c86f0f6 100644 --- a/extensions/windowsNavigator/extension.js +++ b/extensions/windowsNavigator/extension.js @@ -1,6 +1,5 @@ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ const Clutter = imports.gi.Clutter; -const Lang = imports.lang; const Mainloop = imports.mainloop; const St = imports.gi.St; @@ -244,8 +243,10 @@ function enable() { workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) { this._pickWorkspace = false; this._pickWindow = false; - this._keyPressEventId = global.stage.connect('key-press-event', Lang.bind(this, this._onKeyPress)); - this._keyReleaseEventId = global.stage.connect('key-release-event', Lang.bind(this, this._onKeyRelease)); + this._keyPressEventId = + global.stage.connect('key-press-event', this._onKeyPress.bind(this)); + this._keyReleaseEventId = + global.stage.connect('key-release-event', this._onKeyRelease.bind(this)); connectedSignals.push({ obj: global.stage, id: this._keyPressEventId }); connectedSignals.push({ obj: global.stage, id: this._keyReleaseEventId }); }); diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index 5aa8b122..ace17039 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -4,7 +4,6 @@ const Gio = imports.gi.Gio; const Meta = imports.gi.Meta; const Clutter = imports.gi.Clutter; const St = imports.gi.St; -const Lang = imports.lang; const Mainloop = imports.mainloop; const PanelMenu = imports.ui.panelMenu; const PopupMenu = imports.ui.popupMenu; @@ -37,18 +36,22 @@ class WorkspaceIndicator extends PanelMenu.Button { this.menu.addMenuItem(this._workspaceSection); this._screenSignals = []; - this._screenSignals.push(global.screen.connect_after('workspace-added', Lang.bind(this,this._createWorkspacesSection))); - this._screenSignals.push(global.screen.connect_after('workspace-removed', Lang.bind(this,this._createWorkspacesSection))); - this._screenSignals.push(global.screen.connect_after('workspace-switched', Lang.bind(this,this._updateIndicator))); + this._screenSignals.push(global.screen.connect_after('workspace-added', this._createWorkspacesSection.bind(this))); + this._screenSignals.push(global.screen.connect_after('workspace-removed', + this._createWorkspacesSection.bind(this))); + this._screenSignals.push(global.screen.connect_after('workspace-switched', + this._updateIndicator.bind(this))); - this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent)); + this.actor.connect('scroll-event', this._onScrollEvent.bind(this)); this._createWorkspacesSection(); //styling this.statusLabel.add_style_class_name('panel-workspace-indicator'); this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA }); - this._settingsChangedId = this._settings.connect('changed::' + WORKSPACE_KEY, Lang.bind(this, this._createWorkspacesSection)); + this._settingsChangedId = + this._settings.connect('changed::' + WORKSPACE_KEY, + this._createWorkspacesSection.bind(this)); } destroy() { diff --git a/extensions/workspace-indicator/prefs.js b/extensions/workspace-indicator/prefs.js index cfb6d8cb..71416b3b 100644 --- a/extensions/workspace-indicator/prefs.js +++ b/extensions/workspace-indicator/prefs.js @@ -4,7 +4,6 @@ const Gio = imports.gi.Gio; const GLib = imports.gi.GLib; const GObject = imports.gi.GObject; const Gtk = imports.gi.Gtk; -const Lang = imports.lang; const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = Gettext.gettext; @@ -28,15 +27,15 @@ class WorkspaceNameModel extends Gtk.ListStore { }; this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA }); - //this._settings.connect('changed::workspace-names', Lang.bind(this, this._reloadFromSettings)); + //this._settings.connect('changed::workspace-names', this._reloadFromSettings.bind(this)); this._reloadFromSettings(); // overriding class closure doesn't work, because GtkTreeModel // plays tricks with marshallers and class closures - this.connect('row-changed', Lang.bind(this, this._onRowChanged)); - this.connect('row-inserted', Lang.bind(this, this._onRowInserted)); - this.connect('row-deleted', Lang.bind(this, this._onRowDeleted)); + this.connect('row-changed', this._onRowChanged.bind(this)); + this.connect('row-inserted', this._onRowInserted.bind(this)); + this.connect('row-deleted', this._onRowDeleted.bind(this)); } _reloadFromSettings() { @@ -150,7 +149,7 @@ class WorkspaceSettingsWidget extends Gtk.Grid { let column = new Gtk.TreeViewColumn({ title: _("Name") }); let renderer = new Gtk.CellRendererText({ editable: true }); - renderer.connect('edited', Lang.bind(this, this._cellEdited)); + renderer.connect('edited', this._cellEdited.bind(this)); column.pack_start(renderer, true); column.add_attribute(renderer, 'text', this._store.Columns.LABEL); this._treeView.append_column(column); @@ -161,11 +160,11 @@ class WorkspaceSettingsWidget extends Gtk.Grid { toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR); let newButton = new Gtk.ToolButton({ icon_name: 'list-add-symbolic' }); - newButton.connect('clicked', Lang.bind(this, this._newClicked)); + newButton.connect('clicked', this._newClicked.bind(this)); toolbar.add(newButton); let delButton = new Gtk.ToolButton({ icon_name: 'list-remove-symbolic' }); - delButton.connect('clicked', Lang.bind(this, this._delClicked)); + delButton.connect('clicked', this._delClicked.bind(this)); toolbar.add(delButton); let selection = this._treeView.get_selection();