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)
{
ShellApp *app;
ShellAppSystem *appsys;
ShellWindowTracker *tracker;
g_return_if_fail (data != NULL);
app = SHELL_APP (data);
tracker = shell_window_tracker_get_default ();
appsys = shell_app_system_get_default ();
_shell_window_tracker_add_child_process_app (tracker,
pid,
@ -1389,7 +1387,7 @@ shell_app_info_launch_full (ShellAppInfo *info,
shell_app_info_get_id (info));
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,
NULL, NULL,
_gather_pid_callback, shell_app,

View File

@ -393,6 +393,9 @@ get_app_from_window_pid (ShellWindowTracker *tracker,
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));
}
@ -844,18 +847,18 @@ _shell_window_tracker_add_child_process_app (ShellWindowTracker *tracker,
GPid pid,
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,
&pid_int))
&pid_ptr))
return;
g_hash_table_insert (tracker->launched_pid_to_app,
GINT_TO_POINTER (pid_int),
pid_ptr,
g_object_ref (app));
g_child_watch_add (pid, on_child_exited, NULL);
/* 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(),
* but adding this note for future reference.
*/