* now with actual view layers inside the windows
* implemented the resize modes (from Adis code)
* windows have resize handles and more correctly
clip the views inside
* bringing windows to front or sending them behind all others
* one active window, the others are inactive
* with and without focus follows mouse mode
* bugs:
- the region marked dirty when views are
resized is not correct yet
* todo:
- move the dirty region from being managed by the
desktop to being managed in each window (and being
local too)
- scrolling
- hiding/showing of windows and views
I plan to extend this to fully simulate asynchronous
drawing from clients, to see any problems before
using this in the real server one day.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15132 a95241bf-73f2-0310-859d-f6bbb57e9c96
Layer no longer knows anything about its subclass WindowLayer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15131 a95241bf-73f2-0310-859d-f6bbb57e9c96
was no valid "_view_token" in the mouse event.
* _SanitizeMessage() will now only add the "be:transit" field for
B_MOUSE_MOVED messages. It will also now only update fLastMouseMovedView
for B_MOUSE_MOVED messages, and not for all mouse messages.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15124 a95241bf-73f2-0310-859d-f6bbb57e9c96
a bit:
* listeners are now managed per target (ie. per messenger) (by the Target class)
* therefore, the fFocusTokens/fLastFocusTokens lists are no longer needed; every
Target knows its listeners already.
* this also fixes the obvious bug that the focus window's views would get both
keyboard and pointer events, no matter which of them they originally wanted.
* renamed event_target to event_listener (there was actually a mix up in naming
before - to the outside it was "listener", and internally, "target" was used)
* WinBorder::MouseMoved()/MouseUp() now also add the view token to the message;
the messages weren't received by the target before (unless the view used
tracking via BView::SetMouseEventMask()...) - maybe the client should only
update fLastMouseMoved on B_MOUSE_MOVED events, and direct B_MOUSE_UP/DOWN
(plus wheel changes) always to fLastMouseMoved...
* some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15123 a95241bf-73f2-0310-859d-f6bbb57e9c96
client's token space.
* finding layers by token is now O(1) instead of O(n) (as they are looked
up in the token space).
* removed Layer::FindView() as it's no longer needed (or should be used).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15113 a95241bf-73f2-0310-859d-f6bbb57e9c96
NextChild() and PreviousChild() - the current WinBorder list is now rebuilt on every
change; this is not perfect, and only a temporary solution (but cleaner than the
previous one).
* Introduced Layer::PreviousLayer()/NextLayer() methods that return the previous resp.
the next sibling.
* Moved {show|hide}_winBorder() into {Show|Hide}WinBorder() and got rid of the former.
* Renamed Layer::fServerWin to fWindow.
* removed some unused stuff, minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15108 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added dummy support for glutKeyboardUpFunc(), glutSpecialFunc() and glutJoystickFunc().
To be implemented later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15099 a95241bf-73f2-0310-859d-f6bbb57e9c96
between letters of a word no longer hide that word. After testing,
the result seems to be a tighter spread of ratings when done in full
text plus header mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15098 a95241bf-73f2-0310-859d-f6bbb57e9c96
and introduced a RootLayer::_ChildAt() that is used instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15097 a95241bf-73f2-0310-859d-f6bbb57e9c96
closely: Inode::WriteAt() didn't call Inode::WriteBack() in case the
file size was enlarged - it was only written in case the file was closed
which a) could have not happened because of a crash, and b) would move
the change into the wrong transaction, and could therefore result in
an incorrect update, as seen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15094 a95241bf-73f2-0310-859d-f6bbb57e9c96
will no longer panic, but free its allocated pages.
I ran into this because BFS managed to create a file without data stream but
with a length larger than 0...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15093 a95241bf-73f2-0310-859d-f6bbb57e9c96