Introduces PhoshToplevelManager and PhoshToplevel classes for managing and representing toplevel surfaces.
Thanks to that:
- it doesn't match the window to close via its title or app id, always trying to close the correct window instead
- it removes the window from the overview only after it really got closed - which is especially noticable in case of windows that refuse to be closed
- it updates the list automatically as the changes happen, without having to close and open the overview back again
Closes #37 (closed)
A thorough review will be appreciated - I haven't touched glib in ages :) The amount of stuff that went into
tests/phoshstub.c seems especially smelly.
BTW. I've seen some crashes and I believe they are caused by not disconnecting the signals when PhoshFavorites gets destroyed. Since we're going to let it live instead of recreating it each time user goes into overview, I haven't tried to fix it yet. Is that ok? (or should signals actually get handled properly in such case? I'll keep looking at it in case it's not actually what I think it is)