#
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
|