gnome-shell/js/ui
Carlos Garnacho 3db52155dd appDisplay: Reduce g_app_info_get_all() calls
Whenever the AllView needs (re)populating, we used to do one general
g_app_info_get_all() to get all GAppInfo, plus one per app folder in order
to check the ones that fall within that category. This calls results in a
fair amount of I/O blocking the main loop.

In order to ease this, keep the GAppInfo list around in AllView, and make
the AppFolders use it when figuring out the contained apps. Since reloading
the AllView results in AppFolders regenerated from scratch, the app info
list is ensured to be up-to-date for any later change within the AppFolder
(eg. through the GSettings key changing).

As the list was already filtered in the first place, we can also remove
the try{}catch() in AppFolder in order to discard desktop files with
invalid encoding.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/issues/832
2019-01-26 16:40:48 +01:00
..
components networkAgent: Advise the user to push a WPS button on their router 2019-01-25 15:25:26 +01:00
status cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
accessDialog.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
altTab.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
animation.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
appDisplay.js appDisplay: Reduce g_app_info_get_all() calls 2019-01-26 16:40:48 +01:00
appFavorites.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
audioDeviceSelection.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
background.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
backgroundMenu.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
barLevel.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
boxpointer.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
calendar.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
checkBox.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
closeDialog.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
ctrlAltTab.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
dash.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
dateMenu.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
dialog.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
dnd.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
edgeDragAction.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
endSessionDialog.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
environment.js cleanup: Remove obsolete Lang imports 2019-01-22 21:33:46 +00:00
extensionDownloader.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
extensionSystem.js cleanup: Remove obsolete Lang imports 2019-01-22 21:33:46 +00:00
focusCaretTracker.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
grabHelper.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
ibusCandidatePopup.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
iconGrid.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
inhibitShortcutsDialog.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
kbdA11yDialog.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
keyboard.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
layout.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
lightbox.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
lookingGlass.js lookingGlass: Don't import Lang by default 2019-01-25 14:02:44 +00:00
magnifier.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
magnifierDBus.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
main.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
messageList.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
messageTray.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
modalDialog.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
mpris.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
notificationDaemon.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
osdMonitorLabeler.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
osdWindow.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
overview.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
overviewControls.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
padOsd.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
panel.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
panelMenu.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
pointerWatcher.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
popupMenu.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
remoteMenu.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
remoteSearch.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
runDialog.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
screencast.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
screenShield.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
screenshot.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
scripting.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
search.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
sessionMode.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
shellDBus.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
shellEntry.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
shellMountOperation.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
slider.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
switcherPopup.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
switchMonitor.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
tweener.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
unlockDialog.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
userWidget.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
viewSelector.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
windowAttentionHandler.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
windowManager.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
windowMenu.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
workspace.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
workspacesView.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
workspaceSwitcherPopup.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
workspaceThumbnail.js cleanup: Port GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00
xdndHandler.js cleanup: Port non-GObject classes to JS6 classes 2019-01-25 14:02:44 +00:00