Ah fun, based on some reading of the code I did it looks like this is a
race condition where a window is destroyed, and then we make a bamf call
on it, and during the time when we go to make that bamf call to fake re-
minimize the window (required), "Closed" has already been emitted but we
haven't yet gotten around to processing it, so the client side BamfView
* points to an object which has already been destroyed bamfdaemon side,
so bamfdaemon just doesn't return because the view doesn't exist.

Fun.

I see three solutions to this problem:

1) Hack around it and don't allow windowNotify to be called for destroyed 
windows in unity, that solution isn't perfect since another plugin could easily 
trigger the same effect if unity doesn't disable its windowNotify handler in 
time, and we may need to use the windowNotify handler in the destructor for 
other reasons..
2) Make libbamf use dbus_g_proxy_call_timeout to handle the situation where the 
server never replies
3) Make the server reply with an error if some client tried to make a proxy 
call with a proxy client that doesn't exist server-side because it was 
destroyed.

Out of all the three, solution 3 is the least hacky but might take some
co-ordination in the SRU to get right. Solution 1 is doable, but I
wouldn't recommend it for unity trunk.

** Also affects: bamf
   Importance: Undecided
       Status: New

** Changed in: bamf
     Assignee: (unassigned) => Jason Smith (jassmith)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/905417

Title:
  Freeze when minimizing windows

To manage notifications about this bug go to:
https://bugs.launchpad.net/bamf/+bug/905417/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to