Re: new hint for EWMH
Tapani Pälli <[email protected]>
| Newsgroups | gmane.comp.gnome.wm-spec |
|---|---|
| Message-ID | <[email protected]> |
ext Lubos Lunak wrote: > On Friday 03 of August 2007, Tapani Pälli wrote: > >> ext Lubos Lunak wrote: >> >>> On Monday 30 of July 2007, Tapani Pälli wrote: >>> >>>> Hello, >>>> I would like to suggest a new hint '_NET_INPUT_AREAS' for EWMH to be >>>> used by window managers and toolkits. This hint would be a list of >>>> rectangles representing bounding boxes of the input methods on the >>>> screen. This allows a toolkit to place it's temporary windows (that >>>> might have input-entries) like popup-menu's so that they won't cover >>>> input-method areas and user can interact with those windows. >>>> >>>> I have suggested to have this patch for Matchbox window manager : >>>> http://bugzilla.openedhand.com/show_bug.cgi?id=333 >>>> >>> I'm not sure I understand the purpose of the hint correctly - why not >>> simply add a new window type for these windows? Could you post a >>> description for the hint as it should be included in the spec? >>> >> New Window type is fine for WM but a list of rectangles is much better >> toolkit-wise. Without this hint toolkit would need to go through whole >> window tree and pick input-method windows and then make collision >> detection logic. This is much heavier that having coordinates from the >> start. >> > > I see, I guess that makes sense. However that's only some kind of > optimization, I think a window type is still needed to find out which windows > create the regions. That's from somebody who has no clue about input methods > though - from your suggested description I wouldn't have any idea how to > actually implement the support. > Yep this is 'minor' optimization and makes toolkit code more clean, it's a bit 'ugly' to have these 'go through all windows' loops there. WM naturally knows the IM windows (hint needed for this aswell ... Maemo uses '_NET_WM_WINDOW_TYPE_INPUT' for this) and updates hint whenever such windows is (un)mapped, so implementation is quite trivial. // Tapani