gnome-shell/js/ui
Colin Walters 0af108211c apps: Ensure running apps override new .desktop file data
This patch fixes the "apps vanish from alt-TAB bug".

If a "package system" rips away and possibly replaces .desktop files
at some random time, we have historically used inotify to detect this
and reread state (in a racy way, but...).  In GNOME 2, this was
generally not too problematic because the menu widget was totally
separate from the list of windows - and the data they operate on was
disjoint as well.

In GNOME 3 we unify these, and this creates architectural problems
because the windows are tied to the app.

What this patch tries to do is, when rereading the application state,
if we have a running application, we keep that app around instead of
making a new instance.  This ensures we preserve any state such as the
set of open windows.

This requires moving the running state into ShellAppSystem.  Adjust
callers as necessary, and while we're at it drop the unused "contexts"
stuff.

This is just a somewhat quick band-aid; a REAL fix would require us
having low-level control over application installation.  As long as
we're on top of random broken tar+wget wrappers, it will be gross.

A slight future improvement to this patch would add an explicit
"merge" between the old and new data.  I think probably we always keep
around the ShellApp corresponding to a given ID, but replace its
GMenuTreeEntry.

https://bugzilla.gnome.org/show_bug.cgi?id=657990
2011-09-05 17:29:41 -04:00
..
status Revert "volume: Increase maximum by 50% for outputs with decibel support" 2011-09-05 11:48:37 +01:00
altTab.js apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
appDisplay.js appDisplay: Don't show NoDisplay items in the Applications tab 2011-08-29 15:56:07 -04:00
appFavorites.js overview: make shellInfo private 2011-08-28 12:29:41 -04:00
automountManager.js screenSaver: bugfixes 2011-07-14 12:51:18 -04:00
autorunManager.js autorun: use the new "media-removable" icon 2011-08-30 15:30:10 -04:00
boxpointer.js panelMenu: add a gap between the panel and its menus 2011-08-01 11:48:02 -04:00
calendar.js dateMenu: Make events list optional 2011-08-28 12:18:47 -04:00
contactDisplay.js search: Allow searching for people in overview mode 2011-08-29 17:43:30 -04:00
ctrlAltTab.js layout: new file handling shell layout 2011-07-06 08:38:35 -04:00
dash.js apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
dateMenu.js popupMenu: Hide settings menus outside user session 2011-08-28 12:31:34 -04:00
dnd.js dnd: Reparent drag actor to the uiGroup rather then the stage 2011-06-30 21:13:15 +02:00
docDisplay.js ShellApp: Change activation API 2011-08-11 05:35:23 -04:00
endSessionDialog.js Replace GdmUser with AccountsService 2011-08-29 22:53:41 +02:00
environment.js shell_global_set_property_mutable: Remove 2011-06-20 17:58:40 -04:00
extensionSystem.js extensionSystem: Don't try to make the user extensinons dir if it exists 2011-08-26 17:34:50 -04:00
iconGrid.js Setting StWidget::label-actor on some ui elements 2011-04-27 02:09:11 +02:00
keyboard.js main: grab the keyboard D-Bus interface at startup 2011-09-02 11:41:02 -04:00
layout.js keyboard: add an on-screen keyboard 2011-08-29 12:59:25 -04:00
lightbox.js Clean up unused includes 2010-07-19 01:46:01 +02:00
link.js Clean up unused includes 2010-07-19 01:46:01 +02:00
lookingGlass.js extensionSystem: Add a DOWNLOADING state 2011-08-24 13:58:22 -04:00
magnifier.js magnifier: Adjust for removal of 'show-magnifier' key 2011-02-17 16:09:07 +01:00
magnifierDBus.js Refactor Magnifier.ZoomRegion to avoid permanent Clutter.Clone 2010-12-03 14:21:57 -05:00
main.js Toggle mutter's unredirect features on/off depending on the situation 2011-08-30 00:15:52 +02:00
messageTray.js messageTray: Don't try to URL highlight an invisible actor 2011-09-02 17:23:14 -04:00
modalDialog.js modalDialog: add mode that leaves shell reactive 2011-08-28 12:36:57 -04:00
networkAgent.js Add a system modal dialog for network secrets 2011-08-29 18:11:50 +02:00
notificationDaemon.js messageTray: implement showing images in notifications 2011-08-29 13:46:47 -04:00
overview.js overview: Add API to remove search providers 2011-09-04 13:28:08 +02:00
panel.js apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
panelMenu.js panelMenu: Separate from ui chrome layer 2011-08-28 12:17:13 -04:00
placeDisplay.js overview: make shellInfo private 2011-08-28 12:29:41 -04:00
polkitAuthenticationAgent.js Replace GdmUser with AccountsService 2011-08-29 22:53:41 +02:00
popupMenu.js popup-menu: Allow updating combobox items with scroll wheel 2011-09-02 18:08:54 +02:00
runDialog.js runDialog: catch exceptions from Gio.app_info_launch_default_for_uri() 2011-07-20 00:25:11 +01:00
scripting.js layout: new file handling shell layout 2011-07-06 08:38:35 -04:00
search.js overview: Add API to remove search providers 2011-09-04 13:28:08 +02:00
searchDisplay.js overview: Add API to remove search providers 2011-09-04 13:28:08 +02:00
shellDBus.js extensionSystem: Add 'extension-status-changed' signal 2011-08-24 13:58:22 -04:00
shellMountOperation.js ShellApp: Change activation API 2011-08-11 05:35:23 -04:00
statusIconDispatcher.js statusIconDispatcher: fix trailing comma 2011-03-25 21:24:42 -04:00
telepathyClient.js telepathyClient: don't try to translate concatenations of strings 2011-09-01 09:20:11 -04:00
tweener.js tweener: remove tweens when target.actor is destroyed 2011-02-22 12:36:25 -05:00
userMenu.js user-menu: Keep track of current presence 2011-09-02 18:13:09 +02:00
viewSelector.js overview: Add API to remove search providers 2011-09-04 13:28:08 +02:00
windowAttentionHandler.js shell-global: add a "display" property 2011-08-03 09:09:55 -04:00
windowManager.js windowManager: use meta_window_is_attached_dialog() 2011-08-27 13:14:38 -04:00
workspace.js overview: Compensate for the window's invisible borders 2011-08-29 19:16:52 -04:00
workspacesView.js workspacesView: Only connect to nWorkspacesChanged after we've lazily inited 2011-09-01 16:25:03 -04:00
workspaceSwitcherPopup.js layout: new file handling shell layout 2011-07-06 08:38:35 -04:00
workspaceThumbnail.js Use Meta.BackgroundActor instances instead of cloning global.background_actor 2011-08-29 19:17:01 +01:00
xdndHandler.js xdndHandler: Correctly disconnect the window group visibility handler 2011-03-04 11:23:18 +01:00