89d652d5e0
RegionAt() just gets a point and returns which region was hit. This is in order to move behavioral code to [Default]WindowBehaviour. I'm not happy with this solution either, but to do it properly one would have to break the Decorator interface into separate look and feel interfaces and reorganize the interaction with WindowBehaviour. A task for the so-inclined reader. :-) * Adjusted the Decorators implementations, but really tested only the default one. * DefaultWindowBehaviour: - Replaced _ActionFor() method by a _RegionFor() which interprets the region returned by Decorator::RegionAt() and converts it to a "functional" region, i.e. combines cases we handle the same way. - MouseDown(): - Handle the click region cases more in detail, disentangling the mouse button cases. With the following effects: - The middle mouse button has no effect anymore. - Left and right mouse buttons no longer share common behavior. A right click on a decorator button will send the window to the back. - The window key window management modifier combo does now have precedence, i.e. Cmd-Ctrl-click on the decorator buttons will have the same effect as clicking anywhere in the window. - When modifiers change between the clicks, reset the click count. Prevents a standard click in the window followed by a Cmd-Ctrl-click from being recognized as a double-click. - Mouse*(): Introduced a fMinimizeCheckOnMouseUp which works similar to fActivateOnMouseUp, just for double-clicks. The decision whether a double-click minimizes the window is postponed until releasing the mouse button. After moving the mouse sufficiently far or waiting half a second without moving the mouse the window will no longer be minimized. Fixes #6868. - MouseUp(): Moved the primary mouse button check without the "decorator != NULL" block. I suppose this fixes issues with the Cmd-Ctrl actions and decoratorless windows (if those actually exist). I can't wait to hear what things I've broken. :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39602 a95241bf-73f2-0310-859d-f6bbb57e9c96 |
||
---|---|---|
.. | ||
BeDecorator | ||
MacDecorator | ||
SATDecorator | ||
WinDecorator | ||
Jamfile |