Re: Hints for swallowed pagers and MacOS-style menus



>> Still, swallowing is very tricky thing to do and prone to hazardous
conflicts
>> whenever WM, swallower and/or owner app do manipulation to the window
being
>> swallowed at the same time. Does not happen very often - mostly on
>> startups/shutdowns, but can be dangerous nevertheless.
>
>This sounds worrying. Could you give me an example?

Most comon example is that: try running AfterStep with Wharf that has few
swallowed apps, and simple shut AfterStep down. You'll see lots of X error
messages, from those swallowed apps. Fortunately it is harmless in most
cases.

Problem happen becouse of multitasking of course. Most notable cause of
errors
ios buggy behaviour of swallowed apps, when they try to do something with
it's window when it has been destroyd/reparent by window manager, but
DestroyNotify
has not yet arrived to app. You can't really grab X server to avoid this
things,
since you'd have to do too much stuff with grabbed X resulting in very poor
system performance. The only way avoid it is to implement decent
XErrorHandler
that would allow gracefull app shutdown on such a error. You'd be surprised
thou,
as to how few apps even care about such things.

>> If panel is implemented poorly, effect of "window theft" can be seen in
such cases :

>This was the point of having the child window's _NET_SWALLOW_THIS_WINDOW
property
>set to its own window ID initially, and changed to None by the swallower
before
>swallowing the window. A value of None indicates that the window has been
claimed
>by some app and should not be swallowed. I should make that explicit.

Ok, I missed this, sorry.
Don't forget thou, that it has to be restored back if client in
unswallowed.

>> Actually it makes much better sence not to cary the list of window's
IDs,
>> but instead, have a configuration option in swallowing app, to define
what
>> windows to swallow by name or class of the window. that scheme is much
more
>> reliable, flexible and user friendly.
>
>Good idea. This would allow any app to provide a swallowable window
without linking
>with the panel. You could write applets which would work in the KDE panel,
the
>Gnome panel and the WindowMaker dock. Cool.

That is time-proven approach and I think WM Dock already does that, as well
as
AS Wharf.


>Michael


Sasha






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]