[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Other window managers
From: |
Eric Wasylishen |
Subject: |
Re: Other window managers |
Date: |
Mon, 8 Nov 2010 09:57:06 -0700 |
Hey Christopher/Wolfgang,
>> I'm trying to write my own window manager for Etoile :-). GNUstep
>> integration is extremely important, but the way we are trying do some
>> things, vs the way that GNUstep operates is causing some conflicts. I was
>> hoping that I might get some advice on these issues.
>>
>> The first thing is using GNUstep with click-to-focus mode. We need click to
>> focus in Etoile for normal application windows because we don't have title
>> bars and allow the user to move windows when they don't have the focus by
>> just dragging them (none of this applies for palettes or inspectors, which
>> are traditionally decorated).
>
> Just curious, how can you close or miniaturize normal windows if they don't
> have a title bar?
There's a mockup here of what Christopher is working on:
http://etoileos.com/etoile/mockups/document-interaction/
It's got minimize / close buttons in a toolbar. Admittedly, it's radical, but I
don't think this design is set in stone :-)
>> Secondly, I'm using EWMH window type hints to distinguish windows so that I
>> know how to decorate them. GNUstep really isn't distinguishing normal
>> windows from palette windows and inspectors (at least not in Gorm). I know
>> this is a difficult issue, and I spent some time looking into how we can
>> improve this. The Cocoa API makes it difficult, because it only allows
>> windows to configure how they look and behave, not what they are or what
>> they contain.
>
> Why don't you use the _GNUSTEP_WM_ATTR property to determine the window style
> and level? The EWMH hints are essentially derived from this information and
> trying to recover this information from the EWMH hints seems a wasted effort.
>
>> There are some things we could possibly use:
>> * Style masks - these say whether a window has a close button, title bar,
>> minimise etc. we could say that windows without minimise flags are "utility"
>> windows.
I think Wolfgang's suggestion will work - see
back/Documentation/Back/Standards.txt - that struct has a window_style field in
it we could look at. I implemented something similar for the Win32 GNUstep
backend - if the window style has the NSUtilityWindowMask bits set, it requests
a toolwindow type thin title bar.
NSUtilityWindowMask is the correct thing to look at to decide whether to give a
window a special "palette" decoration. It's optional to set this flag on an
NSPanel, and I think Gorm's panels just don't have it set. I turned it on a
while ago for the GS font and color panels, though.
-Eric