Fixes for previous ShellAppSystem patch a138f59c

Wasn't amended by mistake.
This commit is contained in:
Colin Walters 2011-02-08 14:37:22 -05:00
parent 9ec2d5d609
commit 95e6eae23b
2 changed files with 8 additions and 7 deletions

View File

@ -1303,14 +1303,12 @@ _gather_pid_callback (GDesktopAppInfo *gapp,
gpointer data) gpointer data)
{ {
ShellApp *app; ShellApp *app;
ShellAppSystem *appsys;
ShellWindowTracker *tracker; ShellWindowTracker *tracker;
g_return_if_fail (data != NULL); g_return_if_fail (data != NULL);
app = SHELL_APP (data); app = SHELL_APP (data);
tracker = shell_window_tracker_get_default (); tracker = shell_window_tracker_get_default ();
appsys = shell_app_system_get_default ();
_shell_window_tracker_add_child_process_app (tracker, _shell_window_tracker_add_child_process_app (tracker,
pid, pid,
@ -1389,7 +1387,7 @@ shell_app_info_launch_full (ShellAppInfo *info,
shell_app_info_get_id (info)); shell_app_info_get_id (info));
ret = g_desktop_app_info_launch_uris_as_manager (gapp, uris, ret = g_desktop_app_info_launch_uris_as_manager (gapp, uris,
(GAppLaunchContext*) context, G_APP_LAUNCH_CONTEXT (context),
G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
NULL, NULL, NULL, NULL,
_gather_pid_callback, shell_app, _gather_pid_callback, shell_app,

View File

@ -393,6 +393,9 @@ get_app_from_window_pid (ShellWindowTracker *tracker,
pid = meta_window_get_pid (window); pid = meta_window_get_pid (window);
if (pid == -1)
return NULL;
return g_hash_table_lookup (tracker->launched_pid_to_app, GINT_TO_POINTER (pid)); return g_hash_table_lookup (tracker->launched_pid_to_app, GINT_TO_POINTER (pid));
} }
@ -844,18 +847,18 @@ _shell_window_tracker_add_child_process_app (ShellWindowTracker *tracker,
GPid pid, GPid pid,
ShellApp *app) ShellApp *app)
{ {
int pid_int = (int) pid; gpointer pid_ptr = GINT_TO_POINTER((int)pid);
if (g_hash_table_lookup (tracker->launched_pid_to_app, if (g_hash_table_lookup (tracker->launched_pid_to_app,
&pid_int)) &pid_ptr))
return; return;
g_hash_table_insert (tracker->launched_pid_to_app, g_hash_table_insert (tracker->launched_pid_to_app,
GINT_TO_POINTER (pid_int), pid_ptr,
g_object_ref (app)); g_object_ref (app));
g_child_watch_add (pid, on_child_exited, NULL); g_child_watch_add (pid, on_child_exited, NULL);
/* TODO: rescan unassociated windows /* TODO: rescan unassociated windows
* Very unlikely in practice that the launched app gets ahead of us * Unlikely in practice that the launched app gets ahead of us
* enough to map an X window before we get scheduled after the fork(), * enough to map an X window before we get scheduled after the fork(),
* but adding this note for future reference. * but adding this note for future reference.
*/ */