update E_Client->desk member upon focusing a sticky client
authorMike Blumenkrantz <zmike@osg.samsung.com>
Thu, 12 Nov 2015 22:38:58 +0000 (17:38 -0500)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Thu, 12 Nov 2015 22:38:58 +0000 (17:38 -0500)
a sticky window previously would always have the desk set for where
it was set as sticky, meaning that anything which tries to access it
will be reading wrong data here.
more useful information to provide is the last desk which the sticky
client was focused on, so update that upon focusing it

src/bin/e_client.c

index b305a290b1c6ac2e5038069d90b774968eb944f8..40a233af04b4ba287efa0710cc955667b5dbf05c 100644 (file)
@@ -3550,6 +3550,8 @@ e_client_focused_set(E_Client *ec)
 
    e_hints_active_window_set(ec);
    _e_client_event_simple(ec, E_EVENT_CLIENT_FOCUS_IN);
+   if (ec->sticky && ec->desk && (!ec->desk->visible))
+     e_client_desk_set(ec, e_desk_current_get(ec->zone));
 }
 
 E_API void