window-tracker: Fix pid based window/app association

The lookup table used by get_app_from_window_pid contained only pids of
apps launched by gnome-shell itself, but not pids of apps running before
gnome-shell was (re-)started. Also the pids in that table might not even
be the pid of the process that is actually showing the window if wrapper
scripts are used.

Instead use shell_window_tracker_get_app_from_pid which uses the pids
from the windows themselves.

This removes the only use of launched_pid_to_app which will be removed
in the following commit.

This fixes: https://bugzilla.gnome.org/show_bug.cgi?id=736527
This commit is contained in:
Sebastian Keller 2014-12-08 19:53:39 +01:00 committed by Jasper St. Pierre
parent 2c8e405e27
commit 186f9b2e2c

View File

@ -293,7 +293,7 @@ get_app_from_window_group (ShellWindowTracker *tracker,
* @window: a #MetaWindow * @window: a #MetaWindow
* *
* Check if the pid associated with @window corresponds to an * Check if the pid associated with @window corresponds to an
* application we launched. * application.
* *
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL * Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
*/ */
@ -312,7 +312,7 @@ get_app_from_window_pid (ShellWindowTracker *tracker,
if (pid == -1) if (pid == -1)
return NULL; return NULL;
result = g_hash_table_lookup (tracker->launched_pid_to_app, GINT_TO_POINTER (pid)); result = shell_window_tracker_get_app_from_pid (tracker, pid);
if (result != NULL) if (result != NULL)
g_object_ref (result); g_object_ref (result);