History log of /haiku/src/servers/app/Layer.cpp
Revision Date Author Comments
# 779ab335 09-Dec-2020 X512 <danger_mail@list.ru>

use .IsSet() instead if .Get() != NULL

Change-Id: Ia2b7a719fd398e78cc3b11d4f7b02cb81179f65f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3488
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 60d30785 27-Aug-2020 X512 <danger_mail@list.ru>

app_server memory management fixes: use BReference

Use BReference for more automated reference counting in app_server,
fixing some use-after-free and other problems.

Extracted from https://review.haiku-os.org/c/haiku/+/2695

Change-Id: I141bb248229405896b29feff3338447f7257b0b4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3175
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# e718dc91 12-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server: Clip alpha masks to canvas size

* Making the alpha masks independent of view size is a good thing,
however it turns out that I was too optimistic about the
consequences: webkit sometimes sets masks for the whole page, not
just the currently visible area. E.g. on Github diff views, it
was seen to set a clipping path which is about 1,000 x 10,000
pixels in size. Generating these huge masks eats up lots of memory
and time.

* We now clip the alpha masks to the current view size. This
introduces a dependency between mask and view again, however a
weaker one than it used to be before the mask rework. When the
view is enlarged, and the alpha mask was previously clipped during
rendering, we regenerate it at the new size. When the view is
shrunk however, we don't do anything and just keep the
now larger than necessary mask around (so we don't have to
regenerate again when the view is subsequently enlarged again --
except if it then becomes even larger than it used to be).
Changing the view origin is unaffected and still doesn't cause a
regenerate.


# 4bd6f322 09-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server/Interface Kit: add new clipping API

* Add new clipping API for rectangles (ClipToRect, ClipToInverseRect)
and shapes (ClipToShape, ClipToInverseShape)

* Works with affine transforms and automatically switches from fast
region-based clipping to alpha-mask based clipping as necessary.

* Always self-intersecting, i.e. no state push required to further
narrow down the clipping region. All of the 4 new methods can be
mixed in any order.


# 9b417f64 22-Aug-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server: rework AlphaMask, use bounds for mask pictures

* Refactor AlphaMask class to separate the mask from its source. This
allows use to not just a BPicture as source for a pixel alpha mask,
but also e.g. a BShape in the future (not yet implemented).

* For BPicture-based masks, use the PictureBoundingBoxPlayer to
determine the size of the resulting mask bitmap. The masks are now
drawn into bitmaps of this size (instead of the whole view size).

When alpha masks are stacked, their bounding rectangles intersect
(i.e. masks further up in the stack can never be larger than masks
lower in the stack). The bitmap of a mask always contains the state
of itself blended with all masks in the stack below it.

This also avoids frequent rerendering of the masks. They are now
independent of view size. When the view origin (in screen
coordinates) changes we only have to reattach the mask buffer,
without having to redraw it.

* The class UniformAlphaMask is used for simple masks with the same
alpha value in all pixels, it uses no mask bitmap at all.
Currently, it can only be used on its own and not be stacked
together with other mask types.


# 551438b9 25-Jul-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server: add new BView layers API

* Add new methods
BView::BeginLayer(uint8 opacity)
BView::EndLayer()

* All drawing between begin and end of a layer is redirected onto an
intermediate bitmap. When ending the layer, this bitmap is
composited onto the view with the opacity given when the layer was
started.

* Layers can be nested arbitrarily and will be blended onto each
other in order. There can also be any arbitrary interleaving of
layer begin/end and drawing operations.

* Internally, drawing commands are redirected into a BPicture between
BeginLayer and EndLayer (but client code need not know or care
about this). Client code can also start/end other BPictures while
inside a layer.

* Uses the PictureBoundingBoxPlayer to determine the size of the
layer bitmap before allocating and drawing into it, so it does not
allocate more memory than necessary and -- more importantly -- it
will not alpha-composite more pixels than necessary.

* Drawing mode is always set to B_OP_ALPHA, blend mode to
(B_PIXEL_ALPHA, B_ALPHA_COMPOSITE) while inside layers. This is
necessary for (a) correct compositing output and (b) for
redirection of drawing into the intermediate bitmap, which uses the
renderer_region offset (in B_OP_COPY, the Painter does not use the
AGG renderer methods, it directly accesses the pixel data. This
would access out-of-bounds without the offset, so B_OP_COPY cannot
be allowed.)
To ensure these modes aren't changed, BView::SetDrawingMode()
and BView::SetBlendingMode() are ignored while inside a layer.

* The main motivation behind this new API is WebKit, which internally
expects such a layers functionality to be present. A performant and
reusable implementation of this functionality can only be done
server-side in app_server.


# e83820ed5720395d39a1ff809991b4fd76326548 07-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Merged app_server_new_clipping branch changes r15290 to 15418 back into trunk.
Also fixed Jamfile for the test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f89b4c9a23a12a1bae426cc920dccfb6b0d022db 29-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Have I said input event handling is done?
* didn't realize that mouse events always go to the view under the mouse, not
only if its the focus window (FFM can really do harm, after all :-)).
* removed a TODO from the list: EventDispatcher::Target is now a public
class EventTarget, and every ServerWindow has one.
* as a result, EventDispatcher no longer manages targets itself, it
just maintains a list of them. You no longer set messengers, you
only set targets.
* customization of the message filters, they no longer inherit from
BMessageFilter (but EventFilter).
* a message target is no longer set explicetly anywhere, it's only
changed in the message filters if needed.
* therefore, no more locking mess in the EventDispatcher needed.
* this also made the EventDispatcher::fLastFocus stuff superfluous.
* moved the RootLayer::MouseEventHandler() into the message filter.
* Replaced RootLayer::_ChildAt() with WindowAt().
* WindowLayer now has an idea if it has focus or not, it no longer needs
to query the RootLayer for this - maybe we should rename "focus" to
"active", though (as far as layers are concerned).
* the "_view_token" data is now added from the EventDispatcher, not
the (Window)Layer class anymore.
* removed Layer::MouseWheelChanged() as we currently don't need it
(if the need arises, we can add it back later again)
* there is still no mouse moved message sent when opening a window
under the cursor, though...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15228 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8fc80f17d97550b5da5ee6ec72d525bd2661af1d 28-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

refactored a _AddChildToList() and a _RemoveChildFromList() out of AddChild() and
RemoveChild() (very similar to what BView does).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15206 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 23f32b1552ec6c1182eb2ab3cc1df82a3a083bfd 24-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

corrected and cleaned up coordinate conversion. conversion from or to parent coords doesn't actually require a parent, directly using fScrollingOffset, uses less stack memory now and should be faster (especially when converting regions, because those were offsetted twice)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15136 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1863b5b6a41fb94ca20b2cd8fba33063bfa6a6cb 24-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed the "owner" stuff from Layer - it already knows its window.
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


# 14e1abfe7d3e264bd7d93d8db6b9273f133a3e10 24-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Made Layer::_AllRedraw() virtual so that it doesn't need this ugly hack to
send _UPDATE_ messages (WindowLayer now overrides that method).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b813bf2670024494ff699a4a2ccb87ca3bccd61 24-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed WinBorder to WindowLayer, and OffscreenWinBorder to OffscreenWindowLayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15128 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bde8b9c6e0e93228febce69548748d26d62cb254 24-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Layers are now put into an application wide token space that mirrors the
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


# 343e4ff465e53564507679045cd5f20b475079e7 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Got rid of fAdFlags whatever that was meant to be.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5ed055623689cfd25cbf637f10339db204fcbc93 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the frightening Layer::fCurrent/RootLayer::fWinBorderIndex as well as
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


# 5a67ef66341c8c34b716b4ff37b39ff55b8c7617 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed broken Layer::LayerAt() semantics (for recursive == false),
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


# a8d44b6feabf366f4c686b4db9924fe498462ea9 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Quick fix for the broken focus changing I introduced earlier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15096 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6450b76dd4cef8cf04e8d31471517b40a35fa09a 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Next big step in the event handling:
* RootLayer's mouse event processing is now at its minimum - the
EventDispatcher handles them now. As a result, a window will now
get only one message per event.
* RootLayer adds "_view_token" to mouse moved messages that specify
the view currently under the cursor.
* There is now a mouse event layer in RootLayer that gets preferred
when it's set - this is now used for the window moving instead of
the previous mechanism.
* changed the previous DistributeMessage() to an UnpackMessage()
method following Adi's suggestion.
* caveat: some things might be functionally broken in RootLayer now
because of removing the mouse notification stuff.
* "be:transit" handling is now done completely client side by
BWindow::_SanitizeMessage(() (similar to what the input_server does).
This should also make the mechanism pretty robust, since every
B_MOUSE_MOVED message can now trigger the view transit (in case a
message is lost). B_WINDOW_ACTIVATED messages should be generated
client side as well.
* renamed AS_LAYER_GET_MOUSE_COORDS to AS_GET_MOUSE as it's not a
layer specific command, and also gets the mouse buttons.
* B_MOUSE_* messages from the up server now contain only a "screen_where"
field; "where" (in window's coordinates) and "be:view_where" are
added in BMessage::_SanitizeMessage().
* messages that don't have a valid target in the looper are now
dropped instead of being sent to the looper - this should be done
in BLooper as well, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ece36066af9e1cf4023d1ecbdc6b94fba7ec4a62 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Removed third argument from calls to ServerWindow::SendMessageToClient() - it's predefined
to "false" anyway, and will be removed shortly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15041 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b223f7804125d5a1cc0f397085125930a7a93a22 20-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

fixes origin and scale handling, it behaves mostly like R5 now (it is used for drawing only, yes not mouse coords or anything else). Also fixes offscreen layers clipping rebuilding when the user defined clipping is added or changed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15040 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2899b880f6c1e9ba92bbd4e78f4dc63c720a5e24 19-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

Uncommented a correct piece of code. B_FRAME_RESIZED/MOVED are sent more accurately. Renamed AddToViewsWithInvalidCoords, SendViewCoordUpdateMsg into _AddToViewsWithInvalidCoords, _SendViewCoordUpdateMsg.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15036 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e81fc491916285e25c042081c5db22586033f89 19-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

Some cleanup. Removed do_Hide, do_Show and do_CopyBits

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15034 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa26723bb29d97b4bcb3437a60da21d59cd266b1 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Moved workspace keyboard switch and dump screen capability from RootLayer
into a Desktop keyboard filter.
* Removed keyboard handling code from RootLayer and Layer.
* Renamed Desktop::ActiveRootLayer() to RootLayer() as there is only one
root layer per desktop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15018 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a3090b0ed08185d68b81f8c61dc38d936d20d58 14-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

this fixes the problem Axel signaled with the OK button in terminal's about box

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14922 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a436bab2dab4a997d5bda383da62472c4f91f1ba 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed fVisible2 and fFullVisible2 to fVisible and fFullVisible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14921 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5df853ea79b44c49eb0722c8e95f422cd2c19b38 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Renamed Layer::GetWantedRegion() to GetOnScreenRegion().
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14920 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 618c515c4c100842178d66ab54c04450376429a8 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* pruned Layer::PruneTree()
* the Layer destructor now deletes all of the layer's children
* WinBorder no longer has to delete its top layer, as it's also its child.
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14919 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cfc480f5d340107b2ba291b8233395abe563c0f 12-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

no longer valid with new way of setting user clipping

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5522d81d844105096d3a23fd790acc1a943240d 10-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

* added SetUserClipping() and DrawingRegion(), which is used for
handling client defined clipping. The client clipping stays in local coords,
which greatly simplyfies things. We ought to find a way to reduce the number
of regions needed per Layer. I just added another one...
* renamed a few "lay"s to "child".
* used the new client added clipping in ServerWindow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76d68e8ad8aa86c83c94423c14623e84a6ac3ded 09-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

More cleanup.
* moved code from Layer::do_MoveBy/do_ResizeBy/do_ScrollBy into
Layer::MoveBy/ResizeBy/ScrollBy()
* removed do_Move/Resize/ScrollBy()
* removed WinBorder::_ResizeBy()




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14810 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3343885bbd0e2ea6733541ce936c8d818d58b7d 08-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Even if Adi really don't like it, it's perfectly okay to resize or move a layer before
adding it to its parent.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14784 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02414ebd4eb68af9e481ed7a8ed7900044451322 08-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

Cleanup.
* removed old Convert{To|From}{Parent|Top} methods. They were replaced by
Convert{To|From}{Parent|Screen}(type *data)
* removed some unused methods from Layer class.
* re-aranged Layer's class declaration - grouped methods
* made all Layer's members private.
* renamed a few private methods from method_name _MethodName




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14778 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a222bcbec465215bd22950f781ec940c3ad1d21 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Adi's changes broke layer resizing before they are attached to the layer hierarchy.
Also fixed a drop into the debugger when starting Tracker: fRootLayer is now NULL
in the constructor of WinBorder - which is not fatal, as we only wanted to get
the screen size (which was formerly managed by RootLayer).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 971ed3de1e9903f6c997fb61a1b42e8bb55ea879 07-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

* origin in DrawState is now the summed up origin, when setting it,
use the origin from the previous state as a start
* this fixes scrolling again (minus redrawing too much stuff,
this is left for Adi :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d4e4f29a420718c8ec346f37c84377c5638195bb 07-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

Cleanup after the old clipping code. Removed a few methods as others took their place. More cleanup to follow on tomorrow. :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14764 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c8cfe2dfcfc090dd49ff4d2a9e4d1bf36b29e83 07-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

Bye-bye old clipping codesvn update Some cleanup to follow.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14760 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9129d56a7b063fec7acaf27463c6d1d27635597 06-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

updated license header

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac4f06c5c62815850056e5cba836e2676ffc761f 06-Nov-2005 Adi Oanca <adioanca@nowhere.fake>

Fixed invalidation with new clipping code. Only what's needed is
redrawn/invalidated now, with a single exception which I am working
on(when changing the front window the whole window area is invalidated
not just the region that became visible). The old Clipping code is broken
now. I will remove it in the next days.

Actual changes:
* removed Layer::GetWantedRegion() - was badly implemented.
* made Layer::_GetWantedRegion public and renamed it to: you guessed! :-)

* introduced Layer::MarkForRebuild(), TriggerRebuild(). You want to
calculate the new clipping regions, mark an area and then call
TRiggerRebuild() which will rebuild the visible regions for the current
Layer and all its descendants.

* for a Layer to redraw some parts of it, use
RootLayer::MarkForRedraw() to mark a region and then
RootLayer::TriggerRedraw() to see the changes (or send _UPDATE_ message in
case of a WinBorder).






git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2f2cb62037a50b4c0dc6c1c7cd60506c3a03158 04-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

simplified coordinate conversion from/to screen by removing duplicated code, Adi was there a reason to check for RootLayer before conversion or was this left-over?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14709 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ed894182f5f5865f2f8a2b1c4dea7bf81324063 04-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

renamed DisplayDriverPainter.* to DrawingEngine.*

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 58468dfed0b7013c600aecb0a714194bc98eeecc 04-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

first step of geting rid of abstract DisplayDriver base class for less development overhead, DisplayDriverPainter is renamed to DrawingEngine

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e422da6973c6373c3223831ed69a80f14915cc0a 04-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

fix build for old clipping

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 962b688433a14c7a17a1cc08d1c42252af507261 04-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Forgot to update Layer::Scale(), too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aca4f50d1eefef8bf137cc16f5b707d223494377 04-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Merged DrawData and LayerData to one class DrawState.
Removed that ambiguous second copy constructor and moved push state functionality
into a separate PushState() method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14679 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5abd5613d678c3d5275e9a80e6a835d4a4fc898b 04-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

LayerData::prevState is now called fPreviousState and is now private. Added new method
PopState() to make this possible.
When a new layer is created, the font state of the desktop will now be set: this fixes
a bug I introduced when separating the font manager's default font and the desktop's
default font.
The scaling stuff looks pretty broken to me.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac89958f6ebac3a2f6500927a82f16ae98c10665 30-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Removed RootLayer::EnqueueMessage(). Added support for BWindow's EnableUpdates(), DisableUpdates(), NeedsUpdate() and SendBehind(). The last one does not work as expected, for the moment it sends the window to back, just as Activate(false) does.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14577 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31ec092be1241fbaaae055a4463cd44a50f86cdf 29-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Introduced Layer::Activated() hook function. Moved some functionality from RootLayer to WinBorder

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14565 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc9c02aa4f8c68f1e2535e9a4665c75abaa145aa 28-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Made the new clipping code to use a single message to update client frame/bounds. ACTIVATED new clipping code! If someone notices problems please write to any list

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28d42d6e7597e89b30fb2f3890e2d9f6477c3d96 25-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

RootLayer thread receives BMessages only. Changed ViewHWInterface to send BMessages for input events

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14520 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b19c4531df23c1c5e4ea162eaae97dc83d8cfda 24-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Introduced Layer::KeyDown/KeyUp/UnmappedKeyDown/UnmappedKeyUp/ModifiersChanged hooks. Simplified a bit RootLayer::KeyboardEventHandler().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9e5c5747036adc5103c3ff8851ebfac8b47b59ab 24-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Layer::SendUpdateMsg() will tell us if sending _UPDATE_ message succeded. We'll use that information to clear WinBorder::fCumulativeRegion(server per-window dirty region) only on success.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 182db85c0c66d7a260844e6b63e5925bfd465cd6 24-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Introduced Layer::MouseWheelChanged(). Cleaned up RootLayer::MouseEventHandler::case B_MOUSE_WHEEL_CHANGED.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da4a68b7f567c3f81bcc633b6d56520f551dd4b4 24-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

RootLayer thread only handles input messages now. All other actions (move/resize/scroll/invalidate/etc) are performed by locking the RootLayer object and taking the respective action from the calling thread(usulay a ServerWindow one).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eead807371cff0824982470ccadd962370603763 24-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

removed Layer::fClassID

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd79576b10cb2e91433329afafe23f2ab5f3ca6a 20-Oct-2005 Stephan Aßmus <superstippi@gmx.de>

* fixed scrolling for the current clipping code, it brings
up a new problem, maybe Adi has an idea for the fix, see
comment in the code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33691ce0acf7a04ad8dea37ffa304a537fabd586 11-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

Removed NEW_INPUT_HANDLING define and the old code

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b961b59696ca4e9db3c0f92cda795a080cef0b55 07-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

- replaced Layer::get_user_regions with _GetWantedRegion()
- replaced Layer::alter_visible_for_children with _ReserveRegions()
- simplified a bit Layer::rebuild_visible_regions()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14335 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bbf8c95b5a306580f4303ea8771c00287a6cf397 01-Oct-2005 Adi Oanca <adioanca@nowhere.fake>

* added Layer/WinBorder::WorkspaceChanged() hook.
* make RootLayer::SetWinBorderWorkspaces() work under NEW_INPUT_HANDLING
define. Soon I think I'll move this method under WinBorder's hood.
* RootLayer::change_winBorder_feel() is also working under this define

** NEW_INPUT_HANDLING define is active.
If someone discovers something bad happening after this checkin please
notify me on app_server list. If in one week no major problems appear,
I'll remove this define and the old code.
Thanks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8285d6b3c0e19b94803b48340ad12286a528b65d 28-Sep-2005 Adi Oanca <adioanca@nowhere.fake>

* implemented/fixed RootLayer::SetActiveWorkspace() under
NEW_INPUT_HANDLING define.
* added Layer/WinBorder::WorkspaceActivated()



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b65556d662b8ffbc251791433c58112eac398b4 18-Sep-2005 Adi Oanca <adioanca@nowhere.fake>

more work on the input handling. I let Layer/WinBorder handle the MouseDown/Moved/Up instead of doing this in RootLayer::MouseEventHandler(). I did this because I felt it's more clean and in the near future RootLayer may have other children than WinBorders, for example simple Layers representing tooltips/bubbles/etc.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b94d5ecdd346ade922feda81dc6588ae4ef243d 15-Sep-2005 Adi Oanca <adioanca@nowhere.fake>

Work in progress for the new input handling stuff...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14191 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2138d632a6ea8a98434e9b207d8f3adb421326d7 08-Sep-2005 Adi Oanca <adioanca@nowhere.fake>

In adding support for BView input events I got to rework/refractor the mouse input handling. This should be ready in a few days, so don't worry about the code being #ifdef-ed :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14131 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ca990b801e091941b2e828207313e4612f69283 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the RootLayer::LayerRemoved() call from the ServerWindow destructor to RootLayer::RemoveWinBorder().
ServerWindow printed the title in its destructor after freeing it (with debug output turned on).
Calmed it down a bit, too (disabled "listening on port...").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 642467d0771f3c0c025dfcc847197d36e3e3703f 10-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

renamed the tree parsing/child iteration functions, I think it is much clearer now what they do, more likely to find bugs too

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13572 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 39e4b4ada6d498a9d3000cb02dd3bc04995b8cee 08-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

quick fix to have Tracker display icons, hope this still reaches you, Axel

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 359c905c57c9d43ce84badcaef859fa94322897c 05-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

offscreen bitmaps work, tested on Haiku as well, supports all colorspaces that BBitmap::ImportBits() supports. It uses a fallback for non-B_RGB(A)32 bitmaps. Added support for B_SUB_PIXEL_PRECISION view flags, though it is a bit hacky, since I had to add it to LayerData, even though it is not a true part of stack data. Added Layer::SetFlags() to enforce code path and update fLayerData. Cleaned up DisplayDriverPainter and DisplayDriver API (changed some const BRect& rect to simply BRect rect in order to be able to reuse it in the code), moved Painter.h, the test environment only draws the changed part of the frame buffer again - this causes a lot less CPU overhead, Painter special cases stroke width of 1.0 to use square caps, which is similar to R5 implementation and removes a lot of problems with non-straight line drawing, ServerWindow uses the DisplayDriver from it's WinBorder instead of the one from the Desktop (needed for offscreen windows, which have their own DisplayDriverPainter), it also checks for GetRootLayer() == NULL, because offscreen layers are not attached to a RootLayer, there was a fix for scrolling which worked at least in the test environment, it is now defunced, because Adi moved _CopyBits to Layer... I need to reenable it later, LayerData has no more fEscapementDelta, also fixed fFontAliasing (which was thought to overriding the font flags, and now works as such again), Desktop initialises the menu_info and scroll_bar_info stuff, which makes ScrollBars work actually... hope I didn't forget something.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13448 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be2eea8cf96eb45da805d3a826b58d0ed734b34b 02-Jul-2005 Adi Oanca <adioanca@nowhere.fake>

implemented hooks for resizing and moving operations. BViews now resize corectly in Playground app. Ignore the Convert*() stuff.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13399 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 24a146d4f62f4391e8de46f10295375813b6817c 01-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Small hack to get to know the code a bit better.
A view-only workspaces window support (with lots of drawing flicker) - this
means you see what happens in the workspaces, but it doesn't do anything if
you click on it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13378 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f97b5cb5864f348b7f4160d2031e35ff21054983 28-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

Moved CopyBits from ServerWindow to Layer. Also, made CopyBits code execute in RootLayer's thread

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13029492045d186efa6d8960875b65cd352348cf 28-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

Layer::Show/Hide now works. Improved some invalidating calls. fixed some potential problems

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13317 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ecf3bc3eb477fe375e52446ba01e1cbcc523265c 27-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

moving and resizing windows works with the new clipping code. scrolling BViews also works.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13311 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 08d9a6e30d49aac2ac85f0d141408bb66f7712c5 26-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Some minor work on minimum window sizes. A WinBorder now makes sure it has
a valid size on construction; DefaultDecorator should do that as well.
ServerApp AS_CREATE_WINDOW now makes sure it passes a valid rectangle to
ServerWindow's constructor.
Smaller default size for Layers that have been created with an invalid frame.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13291 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3fbc7752f92b6549e6be14934fcbc5514471f7c 25-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

integration of the new clipping code continues

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e603410b82dea0c0cf4a474dfa055b4bc87de5e6 25-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

- simplified a little the update code/process.
- moved part of the update code from Layer to WinBorder. Fits better
there.
- renamed a couple members.
- some cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13273 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4801a9a97dea3f4a3721c45420f7cd0792bd64c1 23-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

Fixed the problem Axel signaled with hidden views

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13246 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8734d03e145f242216c702776c821e30baedd335 23-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

removed 3 printf(s) that I intruduced in my last checkin

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13244 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a38e46a046cbb27fef680a1c9f93b000663d70c9 23-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

ServerApp now maintains a list of all windows, ServerWindow's AS_DELETE_WINDOW
will update it automatically.
Renamed ServerWindow::fName to fTitle, made it a pointer - it will now just
adopt the title pointer that came from AS_CREATE_WINDOW.
Just another cleanup round: renamed Layer::GetName() to Name(), no
more layer->fName->String() accesses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3df649ecb33bb25aeb4ecb3cee6184eef4451081 21-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

managed to show/hide empty windows with the new clipping code

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13221 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fcce1f54ba464dfb7339cdaafe1ac6349f1fe2c 16-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

renamed a few members so that I don't have problems later. removed more methods/members

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0911bbb29bc283db0ee3e0737bcddeb87137944 16-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

yes, yes... removing unneeded methods/members.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83265d84dbb1e02ea9cccca6d1746ef5444024cc 16-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

More work for integrating the new clipping code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99b9d5ac8a6a1fa22e162b433e258f3d048bf6eb 15-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

a new state begins life as a copy from the previous state, fixed Scale(). Note that BoundsOrigin() (and therefor Scale()) is called _a lot_ so we should cache the value! I started to work on this, but our lack of encapsulation strikes again... Layer::fLayerData is used directly all over the place.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13172 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d41a1e80b8bab52b8cb07aba5320399970d37cd3 15-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

Integrated the new clipping code. It compiles but it does not work yet. Do not worry, it's guarded by a #define :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13161 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f0232c767bdcd3a37520ef3cfdf15ea984334ee 15-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

Started adding new clipping code - not active ATM. Removed Virtual prefix

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 524c020956f0ff69fc25d83933e25638498c93fb 15-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

Bounds() takes into account previous pushed states

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337fd005a67a4947714fdeecf2121485b91d 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b81c5513c575d21f43b15bc8660968b9e0e703fe 10-Jun-2005 Adi Oanca <adioanca@nowhere.fake>

addapted code as a result of removing viewColor, background and overlay bitmap members from LayerData

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13051 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7cb5e7b1460dc0fb830332a8d0e4f331396757d7 10-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

removed another friendship

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13045 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1bc5f2def8279236805363b5dd1ca88ac94a6dd 10-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added Layer::Push/PopState() and moved their implementation from ServerWindow.cpp. We definitely need more encapsulation

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13043 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 457820a6ef5e43ddfbf1f2bafc81c49a26f9d6c4 05-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

quick fix for windows resizing/moving at fractional offsets, fix for bitmap drawing placement, small clean ups

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12961 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a2575c9d2790ec47e009d33602fd582cfd33482 04-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

fixed resizing of hidden windows

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12953 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 59345e264fccac812b03a49a1e4466f10133a309 03-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45ca1c948cba0471b3107e037489e54500215c50 03-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Simplified code for BView::ClipToPicture() a lot (both server side and client side). Regions passed with that method should take the place of regions passed with BView::ConstrainClippingRegion(). Note that the needed server support hasn't yet been implemented.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d593ad8f06534e5366cfbb22734d3c139f3c6e1f 25-May-2005 Stephan Aßmus <superstippi@gmx.de>

added a little debugging facility for printing on-screen debugging info on Haiku. For those like me without serial debugging... also made RootLayer use the desktop background color.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12819 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad6b480400e921f46a444359fc92be5251ab6ac4 16-May-2005 Stephan Aßmus <superstippi@gmx.de>

Work in Progress. The server keeps the client window up to date on layer movement/resizing. This fixes quite a few problems and brings support for FrameMoved and Resized hooks. But implementing it this way has its own set of problem, most importantly: When a BView calles Window()->CurrentMessage() in its FrameMoved/Resized hooks, it will see something very different from what it would see in R5. This needs to be fixed, but I have not had a good idea how to do this other than faking the current message in BWindow, which I didn't look into.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fbf48e64370ade7c175a58c03739847074be3d66 04-May-2005 Stephan Aßmus <superstippi@gmx.de>

Enabled HW acceleration for CopyRegion(). Tested on Haiku and it works. I also implemented FillRegion and InvertRegion. But using different acceleration hooks after one another freezes Haiku, app_server, the accelerant or whatever. I have no clue about accelerants, so if a knowledgable someone would have a look at AccelerantHWInterface.cpp, that'd be great. The software cursor stuff has a cosmetical bug with regards to CopyRegion() too, I don't understand it yet. I also tried to improve StringWidth() and DrawString() preformance. I confirmed that the glyph cache is actually used, but AGGTextRenderer::RenderString() is a dog.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 24bc7597ebc9343281f7ba76e5e6dac63e517dcb 03-May-2005 Stephan Aßmus <superstippi@gmx.de>

cosmetic

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1596a167c0c7cd591f8817db58c6ef0d02f9375e 28-Apr-2005 Stephan Aßmus <superstippi@gmx.de>

work around for layers not being moved that have not yet been added to the tree. See WinBorder::MoveTo for the explaination. The same problem should be at other places and most likely for normal views as well. This fixes BWindow::MoveXX() when it is not yet Show()n

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 609b465638367388fdc3970fd9ca4b90cdf77700 28-Apr-2005 Stephan Aßmus <superstippi@gmx.de>

fixed BView::MoveTo() and BView::ResizeTo(), fixed typo

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db7226db9d3de3be44b52085559b68ef6ad69514 27-Apr-2005 Stephan Aßmus <superstippi@gmx.de>

work in progress to get scrolling working, so Adi can have a look, no changes to existing functionality, cleanup in Layer.cpp

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d53639ce2e27b02b8fd5f6b320495f6361314cce 21-Apr-2005 Adi Oanca <adioanca@nowhere.fake>

Implemented support for BWindow::SetFeel()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12456 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e742e3e106eb77f506e827b18f4a35e015e55f61 18-Apr-2005 Stephan Aßmus <superstippi@gmx.de>

refactoring and cleanup in LayerData and friends, it shows what I mean by "forced code paths" for example in coupled font size and view scale, added a couple TODOs, disabled decoupled frame buffer transfers, it is buggy and deadlocks for some reason...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81d71c74c887d02143e332a01c4f99190f708577 06-Apr-2005 Adi Oanca <adioanca@nowhere.fake>

Update requests are sent only after the last one has been received an processsed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12268 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0cb3fdda9344257562d51672eea63f0977e294a3 05-Apr-2005 Adi Oanca <adioanca@nowhere.fake>

Nothing special. Just some cleanup to the update code. There is still a problem with layers not being properly updated sometimes when you move windows arround. The same problem occurs a lot more often when resizing windows. I'm traking it... :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12259 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2bc7be9eda8764b5abaf364eb465574fa041ee3 31-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

This fixes up the last known remaining issues with the update code. It works perfectly now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12197 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4c6f8b572ef6ab4090238722bdcc741d015a3455 30-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

This fixes up those update request being lost.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12172 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f694c0e30e986c3a4a19ce452dfc3c6c4941ac91 30-Mar-2005 Adi Oanca <adioanca@nowhere.fake>

This may be a quick and dirty fix to the problems we've been having with the update code. However this requires something from DisplayDriver. I'll write about this in a moment on app_server list.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45c0cd28d8e7f49683dd8f180eba5385b16591dc 30-Mar-2005 Stephan Aßmus <superstippi@gmx.de>

scrolling BViews now works, tested with MiniTerminal, added lots of TODO stuff, maybe Adi or DarkWyrm should have a look, maybe they can clear some stuff up for me.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12161 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33bbe223914093509b4bc56bea8a90c81af80a37 24-Mar-2005 Axel Dörfler <axeld@pinc-software.de>

Moved app_server files to app/.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11972 a95241bf-73f2-0310-859d-f6bbb57e9c96