i've been using beryl for a while. for some time i was setting the AWT_TOOLKIT env var. now every time i do anything with swing, i simply switch window managers. it's annoying. i recently rebuilt/patched my copy of jdk6 but there are many situations where i still use java5.
what has me worried is a comment by an x window manager developer.. at this url:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775
the comment is a little too long to copy here but here's a fragment:
> why do you check for window managers at all? You don't have
> to, you don't even have to select for SubstructureNotify if no
> WM is running, there is no reason for a X client to check if a WM
> is present or not. You simply have to select for StructureNotify.
so apparently there's all this code in the java se codebase that makes java/swing do different things based on what window manager one runs. i'm no expert in this field but i agree wholeheartedly that it sounds like madness to try to handle each wm on a case by case basis, as in "if you're running metacity then do this, for kwin do that, for beryl do this, etc.." there are simply too many window managers to make sure that things render properly on each one. i also question why swing should render differently on different wm's.
i think a more serious look at this codebase is necessary before we can call this issue fixed. otherwise we're sure to get bitten by it again in the future.
Posted by: eitan on February 11, 2007 at 07:55 AM