block desktop instance matching for clients which have a different pid from the startup id

these should get set more accurately in a followup test

fix T1237
This commit is contained in:
Mike Blumenkrantz 2014-05-09 22:49:10 -04:00
parent 982d843d53
commit 7bfeef352c
1 changed files with 13 additions and 2 deletions

View File

@ -1917,8 +1917,19 @@ _e_client_eval(E_Client *ec)
}
if (!ec->desktop)
{
ec->desktop = e_exec_startup_id_pid_find(ec->netwm.startup_id,
ec->netwm.pid);
E_Exec_Instance *inst;
inst = e_exec_startup_id_pid_instance_find(ec->netwm.startup_id,
ec->netwm.pid);
if (inst && inst->clients)
{
E_Client *ec2 = eina_list_data_get(inst->clients);
if (ec2->netwm.pid == ec->netwm.pid)
ec->desktop = inst->desktop;
}
else if (inst)
ec->desktop = inst->desktop;
if (ec->desktop) efreet_desktop_ref(ec->desktop);
}
if (!ec->desktop)