Re: [dwm] Java Saga Continues...

From: Anselm R. Garbe <arg_AT_suckless.org>
Date: Thu, 21 Dec 2006 12:41:03 +0100

On Thu, Dec 21, 2006 at 12:15:42PM +0100, Sander van Dijk wrote:
> On 12/21/06, Anselm R. Garbe <arg_AT_suckless.org> wrote:
> >I fear there is no simple solution unless Sun don't fixes the
> >JDK properly. Introducing frames for each client would mean much
> >more resource consumption of X, and the dwm codebase would get
> >more complex - one would need to change nearly all
> >resize-related stuff, manage() and unmanage(), besides extending
> >Client struct with Client->fwin.
>
> Just a (probably silly) idea: would reparenting to the parent help? I
> haven't read Sun's sources myself, but from what I understand these
> java progs discard all configurenotify's and resizes if they are not
> reparented (or rather, _until_ they are reparented). If one would
> reparenting such a window to what already is its parent, this java
> stuff might still react to the ReparentNotify this generates. For the
> rest nothing would change, so dwm's codebase wouldn't need to change
> any further. If this works, a nice "/* stupid hack to work around java
> issue */" above the code would suffice I think.
>
> Note that I don't really have a clue about this stuff, so this might
> all be nonsense; decided to share it anyway in case it isn't garbage
> though :-)

I checked this already a while ago, but no that won't help. In
the Java Odyssey discussion I pointed to the Insets method, which
performs an XQueryTree(3X11) to check the window hierarchy.
We need a real parent window which is not the root window.

One ugly trick which comes to my mind is, using a parent window
for all, which is not the root window. This could be a solution,
but I'm not sure about its impacts yet. Will investigate further
during 23c3 into this issue.

Regards,

-- 
 Anselm R. Garbe >< http://suckless.org/~arg/ >< GPG key: 0D73F361
Received on Thu Dec 21 2006 - 12:41:03 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 14:34:02 UTC