From 7bfeef352cc6ef83e9984c35c46a1e2c1d13a834 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 9 May 2014 22:49:10 -0400 Subject: [PATCH] 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 --- src/bin/e_client.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 17e5ac1d2..932ba220c 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -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)