Fixes for previous ShellAppSystem patch a138f59c
Wasn't amended by mistake.
This commit is contained in:
parent
9ec2d5d609
commit
95e6eae23b
@ -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,
|
||||||
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user