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:
parent
2c8e405e27
commit
186f9b2e2c
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user