diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 0113dc8c9..3700f0c44 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -140,11 +140,9 @@ function _smoothlyResizeActor(actor, width, height) { return hold; } -function UserListItem(user, reason) { - this._init(user, reason); -} +const UserListItem = new Lang.Class({ + Name: 'UserListItem', -UserListItem.prototype = { _init: function(user) { this.user = user; this._userChangedId = this.user.connect('changed', @@ -273,15 +271,12 @@ UserListItem.prototype = { }); return hold; } - -}; +}); Signals.addSignalMethods(UserListItem.prototype); -function UserList() { - this._init.apply(this, arguments); -} +const UserList = new Lang.Class({ + Name: 'UserList', -UserList.prototype = { _init: function() { this.actor = new St.ScrollView({ style_class: 'login-dialog-user-list-view'}); this.actor.set_policy(Gtk.PolicyType.NEVER, @@ -537,14 +532,12 @@ UserList.prototype = { item.actor.destroy(); delete this._items[userName]; } -}; +}); Signals.addSignalMethods(UserList.prototype); -function SessionListItem(id, name) { - this._init(id, name); -} +const SessionListItem = new Lang.Class({ + Name: 'SessionListItem', -SessionListItem.prototype = { _init: function(id, name) { this.id = id; @@ -599,14 +592,12 @@ SessionListItem.prototype = { _onClicked: function() { this.emit('activate'); } -}; +}); Signals.addSignalMethods(SessionListItem.prototype); -function SessionList() { - this._init(); -} +const SessionList = new Lang.Class({ + Name: 'SessionList', -SessionList.prototype = { _init: function() { this.actor = new St.Bin(); @@ -737,18 +728,9 @@ SessionList.prototype = { })); } } -}; +}); Signals.addSignalMethods(SessionList.prototype); -function LoginDialog() { - if (_loginDialog == null) { - this._init(); - _loginDialog = this; - } - - return _loginDialog; -} - const LoginDialog = new Lang.Class({ Name: 'LoginDialog', Extends: ModalDialog.ModalDialog, diff --git a/js/misc/docInfo.js b/js/misc/docInfo.js index d4499a0a4..1c7db19fe 100644 --- a/js/misc/docInfo.js +++ b/js/misc/docInfo.js @@ -8,11 +8,9 @@ const Search = imports.ui.search; const THUMBNAIL_ICON_MARGIN = 2; -function DocInfo(recentInfo) { - this._init(recentInfo); -} +const DocInfo = new Lang.Class({ + Name: 'DocInfo', -DocInfo.prototype = { _init : function(recentInfo) { this.recentInfo = recentInfo; // We actually used get_modified() instead of get_visited() @@ -49,7 +47,7 @@ DocInfo.prototype = { } return mtype; } -}; +}); var docManagerInstance = null; @@ -62,11 +60,9 @@ function getDocManager() { /** * DocManager wraps the DocSystem, primarily to expose DocInfo objects. */ -function DocManager() { - this._init(); -} +const DocManager = new Lang.Class({ + Name: 'DocManager', -DocManager.prototype = { _init: function() { this._docSystem = Shell.DocSystem.get_default(); this._infosByTimestamp = []; @@ -135,6 +131,6 @@ DocManager.prototype = { return this._infosByUri[url]; })), terms); } -}; +}); Signals.addSignalMethods(DocManager.prototype); diff --git a/js/misc/history.js b/js/misc/history.js index 2c127c3a7..5cb82823a 100644 --- a/js/misc/history.js +++ b/js/misc/history.js @@ -7,11 +7,9 @@ const Params = imports.misc.params; const DEFAULT_LIMIT = 512; -function HistoryManager(params) { - this._init(params); -} +const HistoryManager = new Lang.Class({ + Name: 'HistoryManager', -HistoryManager.prototype = { _init: function(params) { params = Params.parse(params, { gsettingsKey: null, limit: DEFAULT_LIMIT, @@ -111,5 +109,5 @@ HistoryManager.prototype = { if (this._key) global.settings.set_strv(this._key, this._history); } -}; +}); Signals.addSignalMethods(HistoryManager.prototype); diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js index d04a3ab65..e5f07c714 100644 --- a/js/misc/modemManager.js +++ b/js/misc/modemManager.js @@ -54,11 +54,9 @@ function _getProvidersTable() { return _providersTable = providers; } -function ModemGsm() { - this._init.apply(this, arguments); -} +const ModemGsm = new Lang.Class({ + Name: 'ModemGsm', -ModemGsm.prototype = { _init: function(path) { this._proxy = new ModemGsmNetworkProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); @@ -156,14 +154,12 @@ ModemGsm.prototype = { return name3 || name2 || null; } -} +}); Signals.addSignalMethods(ModemGsm.prototype); -function ModemCdma() { - this._init.apply(this, arguments); -} +const ModemCdma = new Lang.Class({ + Name: 'ModemCdma', -ModemCdma.prototype = { _init: function(path) { this._proxy = new ModemCdmaProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); @@ -231,5 +227,5 @@ ModemCdma.prototype = { return null; } -}; +}); Signals.addSignalMethods(ModemCdma.prototype); diff --git a/js/ui/altTab.js b/js/ui/altTab.js index 166ca365b..85d47924f 100644 --- a/js/ui/altTab.js +++ b/js/ui/altTab.js @@ -43,11 +43,9 @@ function primaryModifier(mask) { return primary; } -function AltTabPopup() { - this._init(); -} +const AltTabPopup = new Lang.Class({ + Name: 'AltTabPopup', -AltTabPopup.prototype = { _init : function() { this.actor = new Shell.GenericContainer({ name: 'altTabPopup', reactive: true, @@ -540,7 +538,7 @@ AltTabPopup.prototype = { onComplete: Lang.bind(this, function () { this.thumbnailsVisible = true; }) }); } -}; +}); const SwitcherList = new Lang.Class({ Name: 'SwitcherList', @@ -853,11 +851,9 @@ const SwitcherList = new Lang.Class({ Signals.addSignalMethods(SwitcherList.prototype); -function AppIcon(app) { - this._init(app); -} +const AppIcon = new Lang.Class({ + Name: 'AppIcon', -AppIcon.prototype = { _init: function(app) { this.app = app; this.actor = new St.BoxLayout({ style_class: 'alt-tab-app', @@ -875,7 +871,7 @@ AppIcon.prototype = { this._iconBin.set_size(size, size); this._iconBin.child = this.icon; } -}; +}); const AppSwitcher = new Lang.Class({ Name: 'AppSwitcher', diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 4db20c411..6931780d1 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -26,11 +26,9 @@ const MAX_APPLICATION_WORK_MILLIS = 75; const MENU_POPUP_TIMEOUT = 600; const SCROLL_TIME = 0.1; -function AlphabeticalView() { - this._init(); -} +const AlphabeticalView = new Lang.Class({ + Name: 'AlphabeticalView', -AlphabeticalView.prototype = { _init: function() { this._grid = new IconGrid.IconGrid({ xAlign: St.Align.START }); this._appSystem = Shell.AppSystem.get_default(); @@ -130,13 +128,11 @@ AlphabeticalView.prototype = { this._addApp(app); } } -}; +}); -function ViewByCategories() { - this._init(); -} +const ViewByCategories = new Lang.Class({ + Name: 'ViewByCategories', -ViewByCategories.prototype = { _init: function() { this._appSystem = Shell.AppSystem.get_default(); this.actor = new St.BoxLayout({ style_class: 'all-app' }); @@ -281,16 +277,14 @@ ViewByCategories.prototype = { this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); } } -}; +}); /* This class represents a display containing a collection of application items. * The applications are sorted based on their name. */ -function AllAppDisplay() { - this._init(); -} +const AllAppDisplay = new Lang.Class({ + Name: 'AllAppDisplay', -AllAppDisplay.prototype = { _init: function() { this._appSystem = Shell.AppSystem.get_default(); this._appSystem.connect('installed-changed', Lang.bind(this, function() { @@ -306,7 +300,7 @@ AllAppDisplay.prototype = { _redisplay: function() { this._appView.refresh(); } -}; +}); const AppSearchProvider = new Lang.Class({ Name: 'AppSearchProvider', @@ -427,11 +421,9 @@ const AppIcon = new Lang.Class({ } }); -function AppWellIcon(app, iconParams, onActivateOverride) { - this._init(app, iconParams, onActivateOverride); -} +const AppWellIcon = new Lang.Class({ + Name: 'AppWellIcon', -AppWellIcon.prototype = { _init : function(app, iconParams, onActivateOverride) { this.app = app; this.actor = new St.Button({ style_class: 'app-well-app', @@ -611,7 +603,7 @@ AppWellIcon.prototype = { getDragActorSource: function() { return this.icon.icon; } -}; +}); Signals.addSignalMethods(AppWellIcon.prototype); const AppIconMenu = new Lang.Class({ diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js index 5faca5595..21257bc2a 100644 --- a/js/ui/appFavorites.js +++ b/js/ui/appFavorites.js @@ -6,11 +6,9 @@ const Signals = imports.signals; const Main = imports.ui.main; -function AppFavorites() { - this._init(); -} +const AppFavorites = new Lang.Class({ + Name: 'AppFavorites', -AppFavorites.prototype = { FAVORITE_APPS_KEY: 'favorite-apps', _init: function() { @@ -122,7 +120,7 @@ AppFavorites.prototype = { this._addFavorite(appId, pos); })); } -}; +}); Signals.addSignalMethods(AppFavorites.prototype); var appFavoritesInstance = null; diff --git a/js/ui/automountManager.js b/js/ui/automountManager.js index 456e04269..ee3e857c9 100644 --- a/js/ui/automountManager.js +++ b/js/ui/automountManager.js @@ -64,11 +64,9 @@ function ConsoleKitManager() { return self; } -function AutomountManager() { - this._init(); -} +const AutomountManager = new Lang.Class({ + Name: 'AutomountManager', -AutomountManager.prototype = { _init: function() { this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA }); this._volumeQueue = []; @@ -268,4 +266,4 @@ AutomountManager.prototype = { return false; }); } -} +}); diff --git a/js/ui/autorunManager.js b/js/ui/autorunManager.js index c41589410..2649b5337 100644 --- a/js/ui/autorunManager.js +++ b/js/ui/autorunManager.js @@ -75,11 +75,9 @@ function HotplugSniffer() { '/org/gnome/Shell/HotplugSniffer'); } -function ContentTypeDiscoverer(callback) { - this._init(callback); -} +const ContentTypeDiscoverer = new Lang.Class({ + Name: 'ContentTypeDiscoverer', -ContentTypeDiscoverer.prototype = { _init: function(callback) { this._callback = callback; }, @@ -136,13 +134,11 @@ ContentTypeDiscoverer.prototype = { this._callback(mount, apps, contentTypes); } -} +}); -function AutorunManager() { - this._init(); -} +const AutorunManager = new Lang.Class({ + Name: 'AutorunManager', -AutorunManager.prototype = { _init: function() { this._volumeMonitor = Gio.VolumeMonitor.get(); @@ -259,7 +255,7 @@ AutorunManager.prototype = { + ': ' + e.toString()); } }, -} +}); const AutorunResidentSource = new Lang.Class({ Name: 'AutorunResidentSource', @@ -404,11 +400,9 @@ const AutorunResidentNotification = new Lang.Class({ }, }); -function AutorunTransientDispatcher() { - this._init(); -} +const AutorunTransientDispatcher = new Lang.Class({ + Name: 'AutorunTransientDispatcher', -AutorunTransientDispatcher.prototype = { _init: function() { this._sources = []; this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA }); @@ -499,7 +493,7 @@ AutorunTransientDispatcher.prototype = { // destroy the notification source source.destroy(); } -} +}); const AutorunTransientSource = new Lang.Class({ Name: 'AutorunTransientSource', diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index 00da8a238..8f93b0d8a 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -21,11 +21,9 @@ const POPUP_ANIMATION_TIME = 0.15; * placed. The arrow position may be controlled via setArrowOrigin(). * */ -function BoxPointer(side, binProperties) { - this._init(side, binProperties); -} +const BoxPointer = new Lang.Class({ + Name: 'BoxPointer', -BoxPointer.prototype = { _init: function(arrowSide, binProperties) { this._arrowSide = arrowSide; this._arrowOrigin = 0; @@ -452,4 +450,4 @@ BoxPointer.prototype = { get opacity() { return this.actor.opacity; } -}; +}); diff --git a/js/ui/calendar.js b/js/ui/calendar.js index 98ae634e6..0c33ed0a7 100644 --- a/js/ui/calendar.js +++ b/js/ui/calendar.js @@ -155,28 +155,24 @@ function _getEventDayAbbreviation(dayNumber) { // Abstraction for an appointment/event in a calendar -function CalendarEvent(date, end, summary, allDay) { - this._init(date, end, summary, allDay); -} +const CalendarEvent = new Lang.Class({ + Name: 'CalendarEvent', -CalendarEvent.prototype = { _init: function(date, end, summary, allDay) { this.date = date; this.end = end; this.summary = summary; this.allDay = allDay; } -}; +}); // Interface for appointments/events - e.g. the contents of a calendar // // First, an implementation with no events -function EmptyEventSource() { - this._init(); -} +const EmptyEventSource = new Lang.Class({ + Name: 'EmptyEventSource', -EmptyEventSource.prototype = { _init: function() { }, @@ -191,7 +187,7 @@ EmptyEventSource.prototype = { hasEvents: function(day) { return false; } -}; +}); Signals.addSignalMethods(EmptyEventSource.prototype); const CalendarServerIface = @@ -219,11 +215,6 @@ function CalendarServer() { return self; } -// an implementation that reads data from a session bus service -function DBusEventSource() { - this._init(); -} - function _datesEqual(a, b) { if (a < b) return false; @@ -242,8 +233,10 @@ function _dateIntervalsOverlap(a0, a1, b0, b1) return true; } +// an implementation that reads data from a session bus service +const DBusEventSource = new Lang.Class({ + Name: 'DBusEventSource', -DBusEventSource.prototype = { _init: function() { this._resetCache(); @@ -344,17 +337,15 @@ DBusEventSource.prototype = { return true; } -}; +}); Signals.addSignalMethods(DBusEventSource.prototype); // Calendar: // @eventSource: is an object implementing the EventSource API, e.g. the // requestRange(), getEvents(), hasEvents() methods and the ::changed signal. -function Calendar(eventSource) { - this._init(eventSource); -} +const Calendar = new Lang.Class({ + Name: 'Calendar', -Calendar.prototype = { _init: function(eventSource) { if (eventSource) { this._eventSource = eventSource; @@ -620,15 +611,13 @@ Calendar.prototype = { if (this._eventSource) this._eventSource.requestRange(beginDate, iter, forceReload); } -}; +}); Signals.addSignalMethods(Calendar.prototype); -function EventsList(eventSource) { - this._init(eventSource); -} +const EventsList = new Lang.Class({ + Name: 'EventsList', -EventsList.prototype = { _init: function(eventSource) { this.actor = new St.BoxLayout({ vertical: true, style_class: 'events-header-vbox'}); this._date = new Date(); @@ -759,4 +748,4 @@ EventsList.prototype = { this._showOtherDay(this._date); } } -}; +}); diff --git a/js/ui/contactDisplay.js b/js/ui/contactDisplay.js index fe34a5475..dae9002a3 100644 --- a/js/ui/contactDisplay.js +++ b/js/ui/contactDisplay.js @@ -20,11 +20,9 @@ function launchContact(id) { /* This class represents a shown contact search result in the overview */ -function Contact(id) { - this._init(id); -} +const Contact = new Lang.Class({ + Name: 'Contact', -Contact.prototype = { _init: function(id) { this._contactSys = Shell.ContactSystem.get_default(); this.individual = this._contactSys.get_individual(id); @@ -131,7 +129,7 @@ Contact.prototype = { return tc.load_icon_name(null, 'avatar-default', St.IconType.FULLCOLOR, size); } }, -}; +}); /* Searches for and returns contacts */ diff --git a/js/ui/ctrlAltTab.js b/js/ui/ctrlAltTab.js index 9340846fd..67d08817e 100644 --- a/js/ui/ctrlAltTab.js +++ b/js/ui/ctrlAltTab.js @@ -22,11 +22,9 @@ const SortGroup = { BOTTOM: 2 }; -function CtrlAltTabManager() { - this._init(); -} +const CtrlAltTabManager = new Lang.Class({ + Name: 'CtrlAltTabManager', -CtrlAltTabManager.prototype = { _init: function() { this._items = []; this._focusManager = St.FocusManager.get_for_stage(global.stage); @@ -134,17 +132,15 @@ CtrlAltTabManager.prototype = { })); } } -}; +}); function mod(a, b) { return (a + b) % b; } -function CtrlAltTabPopup() { - this._init(); -} +const CtrlAltTabPopup = new Lang.Class({ + Name: 'CtrlAltTabPopup', -CtrlAltTabPopup.prototype = { _init : function() { this.actor = new Shell.GenericContainer({ name: 'ctrlAltTabPopup', reactive: true }); @@ -303,7 +299,7 @@ CtrlAltTabPopup.prototype = { this._selection = num; this._switcher.highlight(num); } -}; +}); const CtrlAltTabSwitcher = new Lang.Class({ Name: 'CtrlAltTabSwitcher', diff --git a/js/ui/dash.js b/js/ui/dash.js index 0ddec795b..97fa33acb 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -226,11 +226,9 @@ const DragPlaceholderItem = new Lang.Class({ } }); -function Dash() { - this._init(); -} +const Dash = new Lang.Class({ + Name: 'Dash', -Dash.prototype = { _init : function() { this._maxHeight = -1; this.iconSize = 64; @@ -752,6 +750,6 @@ Dash.prototype = { return true; } -}; +}); Signals.addSignalMethods(Dash.prototype); diff --git a/js/ui/dnd.js b/js/ui/dnd.js index 3c762f284..cb8b91394 100644 --- a/js/ui/dnd.js +++ b/js/ui/dnd.js @@ -69,11 +69,9 @@ function removeDragMonitor(monitor) { } } -function _Draggable(actor, params) { - this._init(actor, params); -} +const _Draggable = new Lang.Class({ + Name: 'Draggable', -_Draggable.prototype = { _init : function(actor, params) { params = Params.parse(params, { manualMode: false, restoreOnSuccess: false, @@ -596,7 +594,7 @@ _Draggable.prototype = { this._dragActor = undefined; currentDraggable = null; } -}; +}); Signals.addSignalMethods(_Draggable.prototype); diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 947524a76..d21d155cb 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -142,11 +142,9 @@ function findAppFromInhibitor(inhibitor) { return app; } -function ListItem(app, reason) { - this._init(app, reason); -} +const ListItem = new Lang.Class({ + Name: 'ListItem', -ListItem.prototype = { _init: function(app, reason) { this._app = app; this._reason = reason; @@ -192,7 +190,7 @@ ListItem.prototype = { this.emit('activate'); this._app.activate(); } -}; +}); Signals.addSignalMethods(ListItem.prototype); // The logout timer only shows updates every 10 seconds diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js index f266577c6..1b9c90512 100644 --- a/js/ui/iconGrid.js +++ b/js/ui/iconGrid.js @@ -149,11 +149,9 @@ const BaseIcon = new Lang.Class({ } }); -function IconGrid(params) { - this._init(params); -} +const IconGrid = new Lang.Class({ + Name: 'IconGrid', -IconGrid.prototype = { _init: function(params) { params = Params.parse(params, { rowLimit: null, columnLimit: null, @@ -322,4 +320,4 @@ IconGrid.prototype = { visibleItemsCount: function() { return this._grid.get_children().length - this._grid.get_n_skip_paint(); } -}; +}); diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index a427f17ba..c7f2b0ea1 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -61,11 +61,9 @@ const CaribouKeyboardIface = ; -function Key() { - this._init.apply(this, arguments); -} +const Key = new Lang.Class({ + Name: 'Key', -Key.prototype = { _init : function(key) { this._key = key; @@ -191,13 +189,12 @@ Key.prototype = { this._boxPointer.hide(true); } } -}; +}); -function Keyboard() { - this._init.apply(this, arguments); -} +const Keyboard = new Lang.Class({ + // HACK: we can't set Name, because it collides with Name dbus property + // Name: 'Keyboard', -Keyboard.prototype = { _init: function () { this._impl = Gio.DBusExportedObject.wrapJSObject(CaribouKeyboardIface, this); this._impl.export(Gio.DBus.session, '/org/gnome/Caribou/Keyboard'); @@ -532,7 +529,7 @@ Keyboard.prototype = { get Name() { return 'gnome-shell'; } -}; +}); const KeyboardSource = new Lang.Class({ Name: 'KeyboardSource', diff --git a/js/ui/layout.js b/js/ui/layout.js index e4fcb6247..c99c94177 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -17,11 +17,9 @@ const HOT_CORNER_ACTIVATION_TIMEOUT = 0.5; const STARTUP_ANIMATION_TIME = 0.2; const KEYBOARD_ANIMATION_TIME = 0.5; -function LayoutManager() { - this._init.apply(this, arguments); -} +const LayoutManager = new Lang.Class({ + Name: 'LayoutManager', -LayoutManager.prototype = { _init: function () { this._rtl = (St.Widget.get_default_direction() == St.TextDirection.RTL); this.monitors = []; @@ -374,7 +372,7 @@ LayoutManager.prototype = { findMonitorForActor: function(actor) { return this._chrome.findMonitorForActor(actor); } -}; +}); Signals.addSignalMethods(LayoutManager.prototype); @@ -382,11 +380,9 @@ Signals.addSignalMethods(LayoutManager.prototype); // // This class manages a "hot corner" that can toggle switching to // overview. -function HotCorner() { - this._init(); -} +const HotCorner = new Lang.Class({ + Name: 'HotCorner', -HotCorner.prototype = { _init : function() { // We use this flag to mark the case where the user has entered the // hot corner and has not left both the hot corner and a surrounding @@ -548,7 +544,7 @@ HotCorner.prototype = { return true; return false; } -}; +}); // This manages the shell "chrome"; the UI that's visible in the @@ -561,11 +557,9 @@ const defaultParams = { affectsInputRegion: true }; -function Chrome() { - this._init.apply(this, arguments); -} +const Chrome = new Lang.Class({ + Name: 'Chrome', -Chrome.prototype = { _init: function(layoutManager) { this._layoutManager = layoutManager; @@ -981,4 +975,4 @@ Chrome.prototype = { return false; } -}; +}); diff --git a/js/ui/lightbox.js b/js/ui/lightbox.js index 58bce89d4..f8c84627f 100644 --- a/js/ui/lightbox.js +++ b/js/ui/lightbox.js @@ -30,11 +30,9 @@ const Tweener = imports.ui.tweener; * @container and will track any changes in its size. You can override * this by passing an explicit width and height in @params. */ -function Lightbox(container, params) { - this._init(container, params); -} +const Lightbox = new Lang.Class({ + Name: 'Lightbox', -Lightbox.prototype = { _init : function(container, params) { params = Params.parse(params, { inhibitEvents: false, width: null, @@ -196,4 +194,4 @@ Lightbox.prototype = { this.highlight(null); } -}; +}); diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index 109174d5c..c7fb4c344 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -55,11 +55,9 @@ function _getAutoCompleteGlobalKeywords() { return keywords.concat(windowProperties).concat(headerProperties); } -function AutoComplete(entry) { - this._init(entry); -} +const AutoComplete = new Lang.Class({ + Name: 'AutoComplete', -AutoComplete.prototype = { _init: function(entry) { this._entry = entry; this._entry.connect('key-press-event', Lang.bind(this, this._entryKeyPressEvent)); @@ -118,15 +116,13 @@ AutoComplete.prototype = { this._entry.clutter_text.insert_text(additionalCompletionText, cursorPos); } -}; +}); Signals.addSignalMethods(AutoComplete.prototype); -function Notebook() { - this._init(); -} +const Notebook = new Lang.Class({ + Name: 'Notebook', -Notebook.prototype = { _init: function() { this.actor = new St.BoxLayout({ vertical: true }); @@ -250,7 +246,7 @@ Notebook.prototype = { this.selectIndex(prevIndex); } -}; +}); Signals.addSignalMethods(Notebook.prototype); function objectToString(o) { @@ -285,11 +281,9 @@ const ObjLink = new Lang.Class({ } }); -function Result(command, o, index) { - this._init(command, o, index); -} +const Result = new Lang.Class({ + Name: 'Result', -Result.prototype = { _init : function(command, o, index) { this.index = index; this.o = o; @@ -311,13 +305,11 @@ Result.prototype = { padBin.add_actor(line); this.actor.add(padBin); } -}; +}); -function WindowList() { - this._init(); -} +const WindowList = new Lang.Class({ + Name: 'WindowList', -WindowList.prototype = { _init : function () { this.actor = new St.BoxLayout({ name: 'Windows', vertical: true, style: 'spacing: 8px' }); let tracker = Shell.WindowTracker.get_default(); @@ -358,14 +350,12 @@ WindowList.prototype = { } } } -}; +}); Signals.addSignalMethods(WindowList.prototype); -function ObjInspector() { - this._init(); -} +const ObjInspector = new Lang.Class({ + Name: 'ObjInspector', -ObjInspector.prototype = { _init : function () { this._obj = null; this._previousObj = null; @@ -465,7 +455,7 @@ ObjInspector.prototype = { _onBack: function() { this.selectObject(this._previousObj, true); } -}; +}); function addBorderPaintHook(actor) { let signalId = actor.connect_after('paint', @@ -491,11 +481,9 @@ function addBorderPaintHook(actor) { return signalId; } -function Inspector() { - this._init(); -} +const Inspector = new Lang.Class({ + Name: 'Inspector', -Inspector.prototype = { _init: function() { let container = new Shell.GenericContainer({ width: 0, height: 0 }); @@ -634,15 +622,13 @@ Inspector.prototype = { this._borderPaintId = addBorderPaintHook(this._target); } } -}; +}); Signals.addSignalMethods(Inspector.prototype); -function ErrorLog() { - this._init(); -} +const ErrorLog = new Lang.Class({ + Name: 'ErrorLog', -ErrorLog.prototype = { _init: function() { this.actor = new St.BoxLayout(); this.text = new St.Label(); @@ -677,13 +663,11 @@ ErrorLog.prototype = { } this.text.text = text; } -}; +}); -function Memory() { - this._init(); -} +const Memory = new Lang.Class({ + Name: 'Memory', -Memory.prototype = { _init: function() { this.actor = new St.BoxLayout({ vertical: true }); this._glibc_uordblks = new St.Label(); @@ -728,13 +712,11 @@ Memory.prototype = { this._gjs_closure.text = 'gjs_closure: ' + memInfo.gjs_closure; this._last_gc_seconds_ago.text = 'last_gc_seconds_ago: ' + memInfo.last_gc_seconds_ago; } -}; +}); -function Extensions() { - this._init(); -} +const Extensions = new Lang.Class({ + Name: 'Extensions', -Extensions.prototype = { _init: function() { this.actor = new St.BoxLayout({ vertical: true, name: 'lookingGlassExtensions' }); @@ -864,13 +846,11 @@ Extensions.prototype = { return box; } -}; +}); -function LookingGlass() { - this._init(); -} +const LookingGlass = new Lang.Class({ + Name: 'LookingGlass', -LookingGlass.prototype = { _init : function() { this._borderPaintTarget = null; this._borderPaintId = 0; @@ -1227,5 +1207,5 @@ LookingGlass.prototype = { }) }); } -}; +}); Signals.addSignalMethods(LookingGlass.prototype); diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index c42c1462a..daa02a70f 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -36,11 +36,9 @@ const CROSS_HAIRS_CLIP_KEY = 'cross-hairs-clip'; let magDBusService = null; -function Magnifier() { - this._init(); -} +const Magnifier = new Lang.Class({ + Name: 'Magnifier', -Magnifier.prototype = { _init: function() { // Magnifier is a manager of ZoomRegions. this._zoomRegions = []; @@ -543,14 +541,12 @@ Magnifier.prototype = { ); } } -}; +}); Signals.addSignalMethods(Magnifier.prototype); -function ZoomRegion(magnifier, mouseSourceActor) { - this._init(magnifier, mouseSourceActor); -} +const ZoomRegion = new Lang.Class({ + Name: 'ZoomRegion', -ZoomRegion.prototype = { _init: function(magnifier, mouseSourceActor) { this._magnifier = magnifier; @@ -1150,13 +1146,11 @@ ZoomRegion.prototype = { yMagMouse - groupHeight / 2); } } -}; +}); -function Crosshairs() { - this._init(); -} +const Crosshairs = new Lang.Class({ + Name: 'Crosshairs', -Crosshairs.prototype = { _init: function() { // Set the group containing the crosshairs to three times the desktop @@ -1412,4 +1406,4 @@ Crosshairs.prototype = { this._vertTopHair.set_position((groupWidth - thickness) / 2, top); this._vertBottomHair.set_position((groupWidth - thickness) / 2, bottom); } -}; +}); diff --git a/js/ui/magnifierDBus.js b/js/ui/magnifierDBus.js index 0fdf04b45..8204e72e3 100644 --- a/js/ui/magnifierDBus.js +++ b/js/ui/magnifierDBus.js @@ -1,6 +1,7 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- const Gio = imports.gi.Gio; +const Lang = imports.lang; const Main = imports.ui.main; const MAG_SERVICE_NAME = 'org.gnome.Magnifier'; @@ -95,11 +96,9 @@ const ZoomRegionIface = // '/org/gnome/Magnifier/ZoomRegion/zoomer1', etc. let _zoomRegionInstanceCount = 0; -function ShellMagnifier() { - this._init(); -} +const ShellMagnifier = new Lang.Class({ + Name: 'ShellMagnifier', -ShellMagnifier.prototype = { _init: function() { this._zoomers = {}; @@ -325,7 +324,7 @@ ShellMagnifier.prototype = { // Drop the leading '#'. return parseInt(colorString.slice(1), 16); } -}; +}); /** * ShellMagnifierZoomRegion: @@ -333,11 +332,9 @@ ShellMagnifier.prototype = { * @zoomerObjectPath: String that is the path to a DBus ZoomRegion. * @zoomRegion: The actual zoom region associated with the object path. */ -function ShellMagnifierZoomRegion(zoomerObjectPath, zoomRegion) { - this._init(zoomerObjectPath, zoomRegion); -} +const ShellMagnifierZoomRegion = new Lang.Class({ + Name: 'ShellMagnifierZoomRegion', -ShellMagnifierZoomRegion.prototype = { _init: function(zoomerObjectPath, zoomRegion) { this._zoomRegion = zoomRegion; @@ -422,4 +419,4 @@ ShellMagnifierZoomRegion.prototype = { destroy: function() { this._dbusImpl.unexport(); } -}; +}); diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index e995fc586..79dbe3d98 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -83,11 +83,9 @@ function _fixMarkup(text, allowMarkup) { return GLib.markup_escape_text(text, -1); } -function URLHighlighter(text, lineWrap, allowMarkup) { - this._init(text, lineWrap, allowMarkup); -} +const URLHighlighter = new Lang.Class({ + Name: 'URLHighlighter', -URLHighlighter.prototype = { _init: function(text, lineWrap, allowMarkup) { if (!text) text = ''; @@ -211,13 +209,11 @@ URLHighlighter.prototype = { } return -1; } -}; +}); -function FocusGrabber() { - this._init(); -} +const FocusGrabber = new Lang.Class({ + Name: 'FocusGrabber', -FocusGrabber.prototype = { _init: function() { this.actor = null; @@ -351,7 +347,7 @@ FocusGrabber.prototype = { this._togglingFocusGrabMode = false; } } -} +}); Signals.addSignalMethods(FocusGrabber.prototype); // Notification: @@ -1141,11 +1137,9 @@ const Source = new Lang.Class({ }); Signals.addSignalMethods(Source.prototype); -function SummaryItem(source) { - this._init(source); -} +const SummaryItem = new Lang.Class({ + Name: 'SummaryItem', -SummaryItem.prototype = { _init: function(source) { this.source = source; this.source.connect('notification-added', Lang.bind(this, this._notificationAddedToSource)); @@ -1336,14 +1330,12 @@ SummaryItem.prototype = { if (this.notificationStack.get_children().length > 0) this.notificationStack.get_children()[0]._delegate.setIconVisible(true); } -}; +}); Signals.addSignalMethods(SummaryItem.prototype); -function MessageTray() { - this._init(); -} +const MessageTray = new Lang.Class({ + Name: 'MessageTray', -MessageTray.prototype = { _init: function() { this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) { this._onStatusChanged(proxy.status); @@ -2422,7 +2414,7 @@ MessageTray.prototype = { if (this._clickedSummaryItem) this._updateState(); } -}; +}); const SystemNotificationSource = new Lang.Class({ Name: 'SystemNotificationSource', diff --git a/js/ui/networkAgent.js b/js/ui/networkAgent.js index 276f1403c..48337dd5e 100644 --- a/js/ui/networkAgent.js +++ b/js/ui/networkAgent.js @@ -357,11 +357,9 @@ const NetworkSecretDialog = new Lang.Class({ } }); -function NetworkAgent() { - this._init.apply(this, arguments); -} +const NetworkAgent = new Lang.Class({ + Name: 'NetworkAgent', -NetworkAgent.prototype = { _init: function() { this._native = new Shell.NetworkAgent({ auto_register: true, identifier: 'org.gnome.Shell.NetworkAgent' }); @@ -384,4 +382,4 @@ NetworkAgent.prototype = { this._dialogs[requestId].close(global.get_current_time()); this._dialogs[requestId].destroy(); } -}; +}); diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 6a8ee4ad5..52169ce0b 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -87,11 +87,9 @@ const rewriteRules = { ] }; -function NotificationDaemon() { - this._init(); -} +const NotificationDaemon = new Lang.Class({ + Name: 'NotificationDaemon', -NotificationDaemon.prototype = { _init: function() { this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(NotificationDaemonIface, this); this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications'); @@ -474,7 +472,7 @@ NotificationDaemon.prototype = { if (source) source.destroy(); } -}; +}); const Source = new Lang.Class({ Name: 'NotificationDaemonSource', diff --git a/js/ui/overview.js b/js/ui/overview.js index 567775cfb..1f66d7531 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -46,11 +46,9 @@ const SwipeScrollResult = { CLICK: 2 }; -function ShellInfo() { - this._init(); -} +const ShellInfo = new Lang.Class({ + Name: 'ShellInfo', -ShellInfo.prototype = { _init: function() { this._source = null; this._undoCallback = null; @@ -95,13 +93,11 @@ ShellInfo.prototype = { this._source.notify(notification); } -}; +}); -function Overview() { - this._init.apply(this, arguments); -} +const Overview = new Lang.Class({ + Name: 'Overview', -Overview.prototype = { _init : function(params) { params = Params.parse(params, { isDummy: false }); @@ -811,5 +807,5 @@ Overview.prototype = { this._needsFakePointerEvent = false; } } -}; +}); Signals.addSignalMethods(Overview.prototype); diff --git a/js/ui/panel.js b/js/ui/panel.js index db5377611..a9344bc76 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -98,11 +98,9 @@ function _unpremultiply(color) { }; -function AnimatedIcon(name, size) { - this._init(name, size); -} +const AnimatedIcon = new Lang.Class({ + Name: 'AnimatedIcon', -AnimatedIcon.prototype = { _init: function(name, size) { this.actor = new St.Bin({ visible: false }); this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); @@ -139,13 +137,11 @@ AnimatedIcon.prototype = { if (this._timeoutId) Mainloop.source_remove(this._timeoutId); } -}; +}); -function TextShadower() { - this._init(); -} +const TextShadower = new Lang.Class({ + Name: 'TextShadower', -TextShadower.prototype = { _init: function() { this.actor = new Shell.GenericContainer(); this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); @@ -225,7 +221,7 @@ TextShadower.prototype = { child.allocate(childBox, flags); } } -}; +}); /** * AppMenuButton: @@ -692,13 +688,11 @@ const ActivitiesButton = new Lang.Class({ Mainloop.source_remove(this._xdndTimeOut); this._xdndTimeOut = 0; } -}) +}); -function PanelCorner(panel, side) { - this._init(panel, side); -} +const PanelCorner = new Lang.Class({ + Name: 'PanelCorner', -PanelCorner.prototype = { _init: function(box, side) { this._side = side; @@ -874,14 +868,12 @@ PanelCorner.prototype = { this.actor.set_size(cornerRadius, innerBorderWidth + cornerRadius); this.actor.set_anchor_point(0, innerBorderWidth); } -}; +}); -function Panel() { - this._init(); -} +const Panel = new Lang.Class({ + Name: 'Panel', -Panel.prototype = { _init : function() { this.actor = new Shell.GenericContainer({ name: 'panel', reactive: true }); @@ -1108,5 +1100,4 @@ Panel.prototype = { if (box && box._delegate instanceof PanelMenu.ButtonBox) box.destroy(); }, - -}; +}); diff --git a/js/ui/placeDisplay.js b/js/ui/placeDisplay.js index e8cec7164..9241ebf56 100644 --- a/js/ui/placeDisplay.js +++ b/js/ui/placeDisplay.js @@ -120,11 +120,9 @@ const PlaceDeviceInfo = new Lang.Class({ } }); -function PlacesManager() { - this._init(); -} +const PlacesManager = new Lang.Class({ + Name: 'PlacesManager', -PlacesManager.prototype = { _init: function() { this._defaultPlaces = []; this._mounts = []; @@ -355,7 +353,7 @@ PlacesManager.prototype = { _removeById: function(sourceArray, id) { sourceArray.splice(this._lookupIndexById(sourceArray, id), 1); } -}; +}); Signals.addSignalMethods(PlacesManager.prototype); const PlaceSearchProvider = new Lang.Class({ diff --git a/js/ui/polkitAuthenticationAgent.js b/js/ui/polkitAuthenticationAgent.js index 7fe03105b..ff2d35c08 100644 --- a/js/ui/polkitAuthenticationAgent.js +++ b/js/ui/polkitAuthenticationAgent.js @@ -335,11 +335,9 @@ const AuthenticationDialog = new Lang.Class({ }); Signals.addSignalMethods(AuthenticationDialog.prototype); -function AuthenticationAgent() { - this._init(); -} +const AuthenticationAgent = new Lang.Class({ + Name: 'AuthenticationAgent', -AuthenticationAgent.prototype = { _init: function() { this._native = new Shell.PolkitAuthenticationAgent(); this._native.connect('initiate', Lang.bind(this, this._onInitiate)); @@ -400,7 +398,7 @@ AuthenticationAgent.prototype = { this._reallyCompleteRequest(wasDismissed); } } -} +}); function init() { let agent = new AuthenticationAgent(); diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index a8d3384f6..5652fc4ac 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -771,7 +771,7 @@ const PopupSwitchMenuItem = new Lang.Class({ this.toggle(); } - PopupBaseMenuItem.prototype.activate.call(this, event); + this.parent(event); }, toggle: function() { diff --git a/js/ui/runDialog.js b/js/ui/runDialog.js index eed476684..69a0c26c8 100644 --- a/js/ui/runDialog.js +++ b/js/ui/runDialog.js @@ -30,11 +30,9 @@ const EXEC_ARG_KEY = 'exec-arg'; const DIALOG_GROW_TIME = 0.1; -function CommandCompleter() { - this._init(); -} +const CommandCompleter = new Lang.Class({ + Name: 'CommandCompleter', -CommandCompleter.prototype = { _init : function() { this._changedCount = 0; this._paths = GLib.getenv('PATH').split(':'); @@ -162,7 +160,7 @@ CommandCompleter.prototype = { return common.substr(text.length); return common; } -}; +}); const RunDialog = new Lang.Class({ Name: 'RunDialog', diff --git a/js/ui/search.js b/js/ui/search.js index 12a12e59d..52cd7a86a 100644 --- a/js/ui/search.js +++ b/js/ui/search.js @@ -242,11 +242,9 @@ const SearchProvider = new Lang.Class({ }); Signals.addSignalMethods(SearchProvider.prototype); -function OpenSearchSystem() { - this._init(); -} +const OpenSearchSystem = new Lang.Class({ + Name: 'OpenSearchSystem', -OpenSearchSystem.prototype = { _init: function() { this._providers = []; global.settings.connect('changed::' + DISABLED_OPEN_SEARCH_PROVIDERS_KEY, Lang.bind(this, this._refresh)); @@ -334,14 +332,12 @@ OpenSearchSystem.prototype = { } })); } -} +}); Signals.addSignalMethods(OpenSearchSystem.prototype); -function SearchSystem() { - this._init(); -} +const SearchSystem = new Lang.Class({ + Name: 'SearchSystem', -SearchSystem.prototype = { _init: function() { this._providers = []; this.reset(); @@ -429,5 +425,5 @@ SearchSystem.prototype = { this._previousResults = results; this.emit('search-completed', results); }, -}; +}); Signals.addSignalMethods(SearchSystem.prototype); diff --git a/js/ui/searchDisplay.js b/js/ui/searchDisplay.js index bd551e150..57478b76f 100644 --- a/js/ui/searchDisplay.js +++ b/js/ui/searchDisplay.js @@ -15,11 +15,9 @@ const Search = imports.ui.search; const MAX_SEARCH_RESULTS_ROWS = 1; -function SearchResult(provider, metaInfo, terms) { - this._init(provider, metaInfo, terms); -} +const SearchResult = new Lang.Class({ + Name: 'SearchResult', -SearchResult.prototype = { _init: function(provider, metaInfo, terms) { this.provider = provider; this.metaInfo = metaInfo; @@ -97,7 +95,7 @@ SearchResult.prototype = { else this.provider.activateResult(this.metaInfo.id, params); } -}; +}); const GridSearchResults = new Lang.Class({ @@ -179,11 +177,9 @@ const GridSearchResults = new Lang.Class({ } }); -function SearchResults(searchSystem, openSearchSystem) { - this._init(searchSystem, openSearchSystem); -} +const SearchResults = new Lang.Class({ + Name: 'SearchResults', -SearchResults.prototype = { _init: function(searchSystem, openSearchSystem) { this._searchSystem = searchSystem; this._searchSystem.connect('search-updated', Lang.bind(this, this._updateCurrentResults)); @@ -483,4 +479,4 @@ SearchResults.prototype = { resultDisplay.activateSelected(); Main.overview.hide(); } -}; +}); diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index 6a0a82731..9dd8bccef 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -66,11 +66,9 @@ const GnomeShellIface = ; -function GnomeShell() { - this._init(); -} +const GnomeShell = new Lang.Class({ + Name: 'GnomeShellDBus', -GnomeShell.prototype = { _init: function() { this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellIface, this); this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell'); @@ -230,4 +228,4 @@ GnomeShell.prototype = { this._dbusImpl.emit_signal('ExtensionStatusChanged', GLib.Variant.new('(sis)', [newState.uuid, newState.state, newState.error])); } -}; +}); diff --git a/js/ui/shellMountOperation.js b/js/ui/shellMountOperation.js index ba5f45e41..0fd149e3c 100644 --- a/js/ui/shellMountOperation.js +++ b/js/ui/shellMountOperation.js @@ -50,11 +50,9 @@ function _setLabelsForMessage(dialog, message) { /* -------------------------------------------------------- */ -function ListItem(app) { - this._init(app); -} +const ListItem = new Lang.Class({ + Name: 'ListItem', -ListItem.prototype = { _init: function(app) { this._app = app; @@ -86,14 +84,12 @@ ListItem.prototype = { this.emit('activate'); this._app.activate(); } -}; +}); Signals.addSignalMethods(ListItem.prototype); -function ShellMountOperation(source, params) { - this._init(source, params); -} +const ShellMountOperation = new Lang.Class({ + Name: 'ShellMountOperation', -ShellMountOperation.prototype = { _init: function(source, params) { params = Params.parse(params, { reaskPassword: false }); @@ -190,7 +186,7 @@ ShellMountOperation.prototype = { this._processesDialog.update(message, processes, choices); }, -} +}); const ShellMountQuestionDialog = new Lang.Class({ Name: 'ShellMountQuestionDialog', diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js index 7efa2e227..b95c8e3a3 100644 --- a/js/ui/status/bluetooth.js +++ b/js/ui/status/bluetooth.js @@ -353,7 +353,7 @@ const Source = new Lang.Class({ } })); - MessageTray.Source.prototype.notify.call(this, notification); + this.parent(notification); }, createNotificationIcon: function() { @@ -485,7 +485,7 @@ const PinNotification = new Lang.Class({ }, grabFocus: function(lockTray) { - MessageTray.Notification.prototype.grabFocus.call(this, lockTray); + this.parent(lockTray); global.stage.set_key_focus(this._entry); } }); diff --git a/js/ui/statusIconDispatcher.js b/js/ui/statusIconDispatcher.js index 33bd47bb7..d168d6d81 100644 --- a/js/ui/statusIconDispatcher.js +++ b/js/ui/statusIconDispatcher.js @@ -23,11 +23,9 @@ const STANDARD_TRAY_ICON_IMPLEMENTATIONS = { 'ibus-ui-gtk': 'input-method' }; -function StatusIconDispatcher() { - this._init(); -} +const StatusIconDispatcher = new Lang.Class({ + Name: 'StatusIconDispatcher', -StatusIconDispatcher.prototype = { _init: function() { this._traymanager = new Shell.TrayManager(); this._traymanager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded)); @@ -61,5 +59,5 @@ StatusIconDispatcher.prototype = { else this.emit('message-icon-removed', icon); } -}; +}); Signals.addSignalMethods(StatusIconDispatcher.prototype); diff --git a/js/ui/telepathyClient.js b/js/ui/telepathyClient.js index 6d717fcfa..08d6c8c44 100644 --- a/js/ui/telepathyClient.js +++ b/js/ui/telepathyClient.js @@ -72,11 +72,9 @@ function makeMessageFromTplEvent(event) { }; } -function Client() { - this._init(); -}; +const Client = new Lang.Class({ + Name: 'Client', -Client.prototype = { _init : function() { // channel path -> ChatSource this._chatSources = {}; @@ -479,7 +477,7 @@ Client.prototype = { return this._accountSource; } -}; +}); const ChatSource = new Lang.Class({ Name: 'ChatSource', @@ -694,7 +692,7 @@ const ChatSource = new Lang.Class({ }, notify: function() { - MessageTray.Source.prototype.notify.call(this, this._notification); + this.parent(this._notification); }, respond: function(text) { @@ -1113,7 +1111,7 @@ const ApproverSource = new Lang.Class({ this._invalidId = 0; } - MessageTray.Source.prototype.destroy.call(this); + this.parent(); }, createNotificationIcon: function() { diff --git a/js/ui/tweener.js b/js/ui/tweener.js index d68d66607..7d98a65b3 100644 --- a/js/ui/tweener.js +++ b/js/ui/tweener.js @@ -202,11 +202,9 @@ function registerSpecialPropertySplitter(name, splitFunction, parameters) { // time updates; even better is to pay attention to the vertical // vblank and sync to that when possible.) // -function ClutterFrameTicker() { - this._init(); -} +const ClutterFrameTicker = new Lang.Class({ + Name: 'ClutterFrameTicker', -ClutterFrameTicker.prototype = { FRAME_RATE : 60, _init : function() { @@ -261,6 +259,6 @@ ClutterFrameTicker.prototype = { this._startTime = -1; global.end_work(); } -}; +}); Signals.addSignalMethods(ClutterFrameTicker.prototype); diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js index dd70ca308..f7bf491c2 100644 --- a/js/ui/viewSelector.js +++ b/js/ui/viewSelector.js @@ -301,11 +301,9 @@ const SearchTab = new Lang.Class({ }); -function ViewSelector() { - this._init(); -} +const ViewSelector = new Lang.Class({ + Name: 'ViewSelector', -ViewSelector.prototype = { _init : function() { this.actor = new St.BoxLayout({ name: 'viewSelector', vertical: true }); @@ -565,5 +563,5 @@ ViewSelector.prototype = { removeSearchProvider: function(provider) { this._searchTab.removeSearchProvider(provider); } -}; +}); Signals.addSignalMethods(ViewSelector.prototype); diff --git a/js/ui/windowAttentionHandler.js b/js/ui/windowAttentionHandler.js index af31bdd1c..3c946ad2b 100644 --- a/js/ui/windowAttentionHandler.js +++ b/js/ui/windowAttentionHandler.js @@ -6,11 +6,9 @@ const Shell = imports.gi.Shell; const Main = imports.ui.main; const MessageTray = imports.ui.messageTray; -function WindowAttentionHandler() { - this._init(); -} +const WindowAttentionHandler = new Lang.Class({ + Name: 'WindowAttentionHandler', -WindowAttentionHandler.prototype = { _init : function() { this._tracker = Shell.WindowTracker.get_default(); global.display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention)); @@ -43,7 +41,7 @@ WindowAttentionHandler.prototype = { notification.update(title, banner); }))); } -}; +}); const Source = new Lang.Class({ Name: 'WindowAttentionSource', diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 4343a2012..637d842ea 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -31,11 +31,9 @@ function getTopInvisibleBorder(metaWindow) { return outerRect.y - inputRect.y; } -function WindowDimmer(actor) { - this._init(actor); -} +const WindowDimmer = new Lang.Class({ + Name: 'WindowDimmer', -WindowDimmer.prototype = { _init: function(actor) { if (Clutter.feature_available(Clutter.FeatureFlags.SHADERS_GLSL)) { this._effect = new Clutter.ShaderEffect({ shader_type: Clutter.ShaderType.FRAGMENT_SHADER }); @@ -75,7 +73,7 @@ WindowDimmer.prototype = { }, _dimFraction: 0.0 -}; +}); function getWindowDimmer(actor) { if (!actor._windowDimmer) @@ -84,11 +82,9 @@ function getWindowDimmer(actor) { return actor._windowDimmer; } -function WindowManager() { - this._init(); -} +const WindowManager = new Lang.Class({ + Name: 'WindowManager', -WindowManager.prototype = { _init : function() { this._shellwm = global.window_manager; @@ -627,4 +623,4 @@ WindowManager.prototype = { if (!Main.overview.visible) this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.DOWN, indexToActivate); } -}; +}); diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 97b0893a7..d7b61dfec 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -56,11 +56,13 @@ function _clamp(value, min, max) { } -function ScaledPoint(x, y, scaleX, scaleY) { - [this.x, this.y, this.scaleX, this.scaleY] = arguments; -} +const ScaledPoint = new Lang.Class({ + Name: 'ScaledPoint', + + _init: function(x, y, scaleX, scaleY) { + [this.x, this.y, this.scaleX, this.scaleY] = arguments; + }, -ScaledPoint.prototype = { getPosition : function() { return [this.x, this.y]; }, @@ -86,14 +88,12 @@ ScaledPoint.prototype = { return [_interpolate(this.scaleX, other.scaleX, step), _interpolate(this.scaleY, other.scaleY, step)]; } -}; +}); -function WindowClone(realWindow) { - this._init(realWindow); -} +const WindowClone = new Lang.Class({ + Name: 'WindowClone', -WindowClone.prototype = { _init : function(realWindow) { this.realWindow = realWindow; this.metaWindow = realWindow.meta_window; @@ -418,7 +418,7 @@ WindowClone.prototype = { this.emit('drag-end'); } -}; +}); Signals.addSignalMethods(WindowClone.prototype); @@ -427,11 +427,9 @@ Signals.addSignalMethods(WindowClone.prototype); * @parentActor: The actor which will be the parent of all overlay items * such as app icon and window caption */ -function WindowOverlay(windowClone, parentActor) { - this._init(windowClone, parentActor); -} +const WindowOverlay = new Lang.Class({ + Name: 'WindowOverlay', -WindowOverlay.prototype = { _init : function(windowClone, parentActor) { let metaWindow = windowClone.metaWindow; @@ -642,7 +640,7 @@ WindowOverlay.prototype = { this._parentActor.queue_relayout(); } -}; +}); Signals.addSignalMethods(WindowOverlay.prototype); const WindowPositionFlags = { @@ -653,11 +651,9 @@ const WindowPositionFlags = { /** * @metaWorkspace: a #Meta.Workspace, or null */ -function Workspace(metaWorkspace, monitorIndex) { - this._init(metaWorkspace, monitorIndex); -} +const Workspace = new Lang.Class({ + Name: 'Workspace', -Workspace.prototype = { _init : function(metaWorkspace, monitorIndex) { // When dragging a window, we use this slot for reserve space. this._reservedSlot = null; @@ -1518,6 +1514,6 @@ Workspace.prototype = { return false; } -}; +}); Signals.addSignalMethods(Workspace.prototype); diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js index a4883d459..58dd657a8 100644 --- a/js/ui/workspaceSwitcherPopup.js +++ b/js/ui/workspaceSwitcherPopup.js @@ -15,11 +15,9 @@ const DISPLAY_TIMEOUT = 600; const UP = -1; const DOWN = 1; -function WorkspaceSwitcherPopup() { - this._init(); -} +const WorkspaceSwitcherPopup = new Lang.Class({ + Name: 'WorkspaceSwitcherPopup', -WorkspaceSwitcherPopup.prototype = { _init : function() { this.actor = new St.Group({ reactive: true, x: 0, @@ -158,4 +156,4 @@ WorkspaceSwitcherPopup.prototype = { onCompleteScope: this }); } -}; +}); diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js index 504d32bc3..33059900a 100644 --- a/js/ui/workspaceThumbnail.js +++ b/js/ui/workspaceThumbnail.js @@ -25,11 +25,9 @@ const SLIDE_ANIMATION_TIME = 0.2; // placeholder exactly. const WORKSPACE_CUT_SIZE = 10; -function WindowClone(realWindow) { - this._init(realWindow); -} +const WindowClone = new Lang.Class({ + Name: 'WindowClone', -WindowClone.prototype = { _init : function(realWindow) { this.actor = new Clutter.Clone({ source: realWindow.get_texture(), reactive: true }); @@ -126,7 +124,7 @@ WindowClone.prototype = { this.emit('drag-end'); } -}; +}); Signals.addSignalMethods(WindowClone.prototype); @@ -144,11 +142,9 @@ const ThumbnailState = { /** * @metaWorkspace: a #Meta.Workspace */ -function WorkspaceThumbnail(metaWorkspace) { - this._init(metaWorkspace); -} +const WorkspaceThumbnail = new Lang.Class({ + Name: 'WorkspaceThumbnail', -WorkspaceThumbnail.prototype = { _init : function(metaWorkspace) { this.metaWorkspace = metaWorkspace; this.monitorIndex = Main.layoutManager.primaryIndex; @@ -469,16 +465,14 @@ WorkspaceThumbnail.prototype = { return false; } -}; +}); Signals.addSignalMethods(WorkspaceThumbnail.prototype); -function ThumbnailsBox() { - this._init(); -} +const ThumbnailsBox = new Lang.Class({ + Name: 'ThumbnailsBox', -ThumbnailsBox.prototype = { _init: function() { this.actor = new Shell.GenericContainer({ style_class: 'workspace-thumbnails', request_mode: Clutter.RequestMode.WIDTH_FOR_HEIGHT }); @@ -1028,4 +1022,4 @@ ThumbnailsBox.prototype = { onCompleteScope: this }); } -}; +}); diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index d99488539..fb45e217a 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -23,11 +23,9 @@ const MAX_WORKSPACES = 16; const CONTROLS_POP_IN_TIME = 0.1; -function WorkspacesView(workspaces) { - this._init(workspaces); -} +const WorkspacesView = new Lang.Class({ + Name: 'WorkspacesView', -WorkspacesView.prototype = { _init: function(workspaces) { this.actor = new St.Group({ style_class: 'workspaces-view' }); @@ -452,15 +450,13 @@ WorkspacesView.prototype = { _getWorkspaceIndexToRemove: function() { return global.screen.get_active_workspace_index(); } -}; +}); Signals.addSignalMethods(WorkspacesView.prototype); -function WorkspacesDisplay() { - this._init(); -} +const WorkspacesDisplay = new Lang.Class({ + Name: 'WorkspacesDisplay', -WorkspacesDisplay.prototype = { _init: function() { this.actor = new Shell.GenericContainer(); this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); @@ -852,5 +848,5 @@ WorkspacesDisplay.prototype = { break; } } -}; +}); Signals.addSignalMethods(WorkspacesDisplay.prototype); diff --git a/js/ui/xdndHandler.js b/js/ui/xdndHandler.js index 08f0b47f8..26f54322c 100644 --- a/js/ui/xdndHandler.js +++ b/js/ui/xdndHandler.js @@ -6,11 +6,9 @@ const Shell = imports.gi.Shell; const Signals = imports.signals; const DND = imports.ui.dnd; -function XdndHandler() { - this._init(); -} +const XdndHandler = new Lang.Class({ + Name: 'XdndHandler', -XdndHandler.prototype = { _init: function() { // Used to display a clone of the cursor window when the // window group is hidden (like it happens in the overview) @@ -125,6 +123,6 @@ XdndHandler.prototype = { pickedActor = pickedActor.get_parent(); } } -} +}); Signals.addSignalMethods(XdndHandler.prototype);