#
b5ba4bad |
|
12-Feb-2023 |
X512 <danger_mail@list.ru> |
app_server: clear background immediately on expose Reduce stamping artifacts when application slowly responds to redraw requests. This fixes and reintroduces logic previously removed in hrev53711. Previous logic was incorrect as it didn't take the possibility of multiple invalidations of different kinds (expose, update request) into account. Now separate update and expose regions are maintained and only expose region is cleared immediately. Change-Id: I0fd98cb1b45ccec285154e8c0d8e3a1400d156d7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6067 Reviewed-by: Jérôme Duval <jerome.duval@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
85b82f85 |
|
19-Jul-2022 |
Dale Cieslak <dcieslak@yahoo.com> |
BFont: allow loading of user fonts from disk or memory This patch adds an API call to BFont, called LoadFont, that takes a string path to a font file. The user fonts are managed via a new class called AppFontManager that inherits from the base class FontManagerBase but adds the methods to add and remove user fonts from disk or memory. There is also a new method called UnloadFont to remove a user font, but on exit of an app all user fonts should be automatically cleaned up. Global/system fonts are managed by the GlobalFontManager, which is a new class that also inherits from the base class FontManagerBase, replacing the old "FontManager" class. A maximum of 128 user fonts may be loaded, and memory fonts may not exceed 20MB. There's also an overloaded version of LoadFont that accepts an area_id and loads the font from memory. A size and offset may optionally be provided to allow for an area that contains more than just a font. Change-Id: I6add42bdf0c0cefc0e2e2a4984fd848c3e7269e5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4790 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
241f109c |
|
01-Nov-2022 |
Máximo Castañeda <antiswen@yahoo.es> |
View: provide the transform between different coordinate spaces There's currently no way for an application to convert between view and drawing coordinates with a drawing states stack without keeping track of all the transformations itself, which is not very convenient for helper or library functions. Handle other spaces too, for good measure. Change-Id: Ic8404a1c111e273fff1eebf2f9f59f58246b796c Reviewed-on: https://review.haiku-os.org/c/haiku/+/5775 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
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>
|
#
d99d8dbd |
|
27-Aug-2020 |
X512 <danger_mail@list.ru> |
app_server memory management: use ObjectDeleter to mark ownership Make object ownership explicit by use of ObjectDeleter where possible. Change-Id: I499a00aa3390d1510ae284419e73faffa5166430 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2695 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.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>
|
#
4399ec51 |
|
10-Jun-2020 |
X512 <danger_mail@list.ru> |
BPicture: add fill rule support Change-Id: I068e1c2e8659f7b90c6d7c7331a8bb25ae343fe9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2922 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
90ab1a44 |
|
27-May-2020 |
X512 <danger_mail@list.ru> |
BPicture: add gradient support Fixes #9680. Change-Id: I0013326559cc40ff26cf7b44794c0b32aea832ba Reviewed-on: https://review.haiku-os.org/c/haiku/+/2829 Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
|
#
2899294c |
|
28-Jun-2020 |
Kacper Kasper <kacperkasper@gmail.com> |
app_server: Fix assert in DrawStringDry Change-Id: I58b86860367df86b77bbdffadeff9843c9c8ab11 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2958 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
111247c8 |
|
07-Jun-2020 |
X512 <danger_mail@list.ru> |
app_server: match behavior when drawing to BPicture Change-Id: I7676e73bda0eb02a1905888706aab6bb1db401d5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2892 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Axel Dörfler <axeld@pinc-software.de> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
2e499128 |
|
07-Jun-2020 |
X512 <danger_mail@list.ru> |
app_server: fix transformations in BPicture Fixes #16122, #16147. Change-Id: Iee7aa8a2325d34a526578a58507ea3690459c8d7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2898 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
2d69e313 |
|
09-Jun-2020 |
waddlesplash <waddlesplash@gmail.com> |
Revert "app_server: fix transformations in BPicture" This reverts commit b8e5671d5318e59ad4e36f047940521d18d1f5ed. Reason for revert: Broke all builds. Change-Id: Ie7c5b4a3c877894a1dc49a9de7a19f79e7eb2ab7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2897 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
b8e5671d |
|
07-Jun-2020 |
X512 <danger_mail@list.ru> |
app_server: fix transformations in BPicture Fixes #16122, #16147. Change-Id: I16a38919d25836546389aff6093415eda781668f Reviewed-on: https://review.haiku-os.org/c/haiku/+/2889 Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
|
#
9692db62 |
|
08-Jun-2020 |
X512 <danger_mail@list.ru> |
app_server: use BStackOrHeapArray Change-Id: Ieb335d51923bf28b0e4f830535f74dede42933a3 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2893 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
cc7e3a05 |
|
24-Nov-2019 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
app_server: fix another unchecked out-of-memory case BString initialization can fail, even when it's allocated on the stack. Use a const char* to make this code simpler. We lose the ability to differenciate unknown opcodes, but these should not happen, or the function should be extended to handle them all.
|
#
d46af307 |
|
13-Sep-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
app_server: Catch drawing (AGG) allocation exceptions. Since _DispatchViewDrawingMessage sends single B_ERROR replies in a number of generic cases, doing so here is probably fine; it's much better than crashing, anyway. This is the generalized case of PulkoMandy's earlier patch, which only applied to one drawing operation. This now affects all AGG calls. Change-Id: I751439e43cc300b964ac4cf41c48c1df30baf0a3 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1863 Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
|
#
954a0a0c |
|
02-Jan-2019 |
Stephan Aßmus <superstippi@gmx.de> |
Fix some cases of updating draw state while recording a BPicture * Also implemented recording DrawString(string, length, BPoint[] locations), which was previously not recorded at all. * Also implemented playing back recently added drawing commands in PicturePlayer.cpp. I don't quite understand what this is actually used for, but it seemed it was forgotten. I just followed the pattern already established in the code. * The other important bit in this change is to update the pen location when it is needed while recording a BPicture. Often the BView will use PenLocation() in order to transmit drawing commands to the app_server which use absolute coordinates only. This isn't actually so nice, since it means the client has to wait for the server to transmit the current pen location. If there were dedicated link-commands for pen-relative drawing commands, the client could just keep sending without waiting for the server. In any case, the app_server needs to update the pen location in the current DrawState and even the DrawingEngine even while recording a picture, because some next command may need up-2-date state information, such as the font state and the pen location. * I have not yet tried to find /all/ instances where the DrawState needs to be updated while recording. This change should repair /all/ font state changes, all versions of drawing a string, and all versions of StrokeLine(). Change-Id: Ia0f23e7b1cd058f70f76a5849acb2d02e0f0da09 Reviewed-on: https://review.haiku-os.org/c/817 Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
|
#
cb0d7a1e |
|
09-Sep-2018 |
JackBurton79 <stefano.ceccherini@gmail.com> |
app_server: make a copy of the passed BPicture Like the AS_DRAW_PICTURE case, make a copy of the passed BPicture also for AS_CLIP_TO_PICTURE Change-Id: Id9a0adc48d73e5ec9c0d37e2ed85e30aa48369ab
|
#
d1311300 |
|
09-Sep-2018 |
JackBurton79 <stefano.ceccherini@gmail.com> |
app_server: local variable was shadowing the outer variable In the AS_CLIP_TO_PICTURE case, the "picture" variable was shadowing the outer "picture" variable. Change-Id: I3b9de2432f93a683aaccdb899051a14ebf9b7e6e
|
#
7f9368ca |
|
09-Dec-2015 |
looncraz <looncraz@looncraz.net> |
Set*UIColor, etc. The inseparable changes necessary to support live color updating across the system in a sane, safe, and performant manner. BView gains: HasSystemColors() HasDefaultColors() AdoptSystemColors() AdoptParentColors() AdoptViewColor(BView*) SetViewUIColor(color_which, float tint) SetHighUIColor(... SetLowUIColor(... ViewUIColor(float* tint) HighUIColor(... LowUIColor(... DelayedInvalidate() BWindow gains a simple helper method: IsOffscreenWindow() BMessage gains: AddColor() FindColor() GetColor() HasColor() * allegedly this API is deprecated, but I implemented it anyway ReplaceColor() SetColor() Previous private ColorTools methods are made public and moved into GraphicsDefs: mix_color, blend_color, disable_color These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup of BeOS example code under the OpenTracker license. In addition, four new colors are created: B_LINK_TEXT_COLOR B_LINK_HOVER_COLOR B_LINK_ACTIVE_COLOR B_LINK_VISITED_COLOR These changes are documented in their proper user documentation files. In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit. On the app_server side, the following has changed: Add DelayedMessage - a system by which messages can be sent at a scheduled time, and can also be merged according to set rules. A single thread is used to service the message queue and multiple recipients can be set for each message. Desktop gains the ability to add message ports to a DelayedMessage so that said messages can target either all applications or all windows, as needed. Desktop maintains a BMessage which is used to queue up all pending color changes and the delayed messaging system is used to enact these changes after a short period of time has passed. This prevents abuse and allows the system to merge repeated set_ui_color events into one event for client applications, improving performance drastically. In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message to each BWindow. This is done to improve performance over having the app_server independently informing each window. Decorator changes are live now, which required some reworking. Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
|
#
6b56f7d2 |
|
14-Nov-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
app_server: add a few missing std::nothrow
|
#
b54b3ae5 |
|
13-Nov-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
app_server: add a cache for AlphaMasks * If the same shape alpha mask is set again and again, we now keep the rendered masks in a cache. On certain websites, WebKit sets the same shape for clipping hundreds of times, which uses a lot of time to render the masks. * When a shape mask was generated, we put it into AlphaMaskCache. The constructor for ShapeAlphaMask is made private and a factory method is used for instantiation instead, which transparently looks up in the cache whether a suitable mask was already generated before (so the entire caching is encapsulated inside the AlphaMask class). * When taking a mask out of the cache, we still create a new AlphaMask instance. However, the new instance will share the mask bitmap with the previously generated instance (aside from the rendering of their bitmap, AlphaMask instances are pretty lightweight). Shape masks are only seen as identical when their shape is the same, the inverse flag, and they have the same parent mask. * Cache is limited to a fixed size of currently 8 MiB, using a simple random replacement scheme. An LRU scheme can be added in the future if necessary. Counting of bytes for the cache size includes parent masks of masks in the cache, even if the parent itself is not cached. A reference counter for "indirect" cache references keeps track of which masks are not part of the cache, but still need to be added to the cache byte size. * For now, only for ShapeAlphaMasks, other mask types can be added as necessary.
|
#
10df1544 |
|
13-Nov-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
app_server: plug leak of layers when empty clipping * If there is an empty clipping region (invalid clipping) for the current view, a new layer could still be started, but not ended anymore. That's because unlike begin layer, end layer is handled in _DispatchViewDrawingMessage (because it can do actual drawing) and this method checks whether the clipping is valid and bails out if it isn't. * Add an exception for the AS_VIEW_END_LAYER command code to still process it even when the clipping is invalid. The layer itself can after all set a valid clipping later on when its command list is played back. And even if it doesn't, we still have to play it to make sure nested layers are cleaned up. * Fixes the memory leak in #12460 where webkit creates said situation: it had a layer open and then the closing was ignored due to empty clipping. All subsequent layer calls created nested layers in that one, hundreds of them, and their BPictures contained bitmaps, quickly eating up and leaking hundreds of MiB in app_server.
|
#
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.
|
#
25dbf74b |
|
10-Nov-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
BView: add methods for affine translation/scaling/rotation * BView::TranslateBy(), BView::ScaleBy() and BView::RotateBy() allow to conveniently modify the current affine transformation. This makes it unnecessary to first read the current transform, modify it, and then set it again. Uses the new Pre...() methods of BAffineTransform. * Also, remove setting the transform "through" to the BView even while recording a BPicture, as this now results in transforms being applied more than once.
|
#
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.
|
#
1cd452ea |
|
22-Aug-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
app_server: Drawing mode fixups * TODO: squash commit before merge into master
|
#
c77b945a |
|
03-Aug-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
app_server: allow drawing mode changes in opaque layers * For better performance, we allow doing drawing mode changes (and thus, B_OP_COPY) again when inside an opaque layer which has only other opaque layers below it in the layer stack. As soon as the first non-opaque layer turns up in the stack, the drawing mode will be locked to alpha composite mode, until this layer stack is ended entirely. This allows using B_OP_COPY in many cases as used by WebKit. * In the long term it would be nice to get rid of the drawing-mode lock altogether, however that would need some larger refactoring work in Painter (i.e. remove the offsetting from renderer_region again and instead implement an "exit-level transform" (support for offsets is enough) in Painter which is applied after all other transforms).
|
#
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.
|
#
6f2a446e |
|
06-Apr-2015 |
Julian Harnath <julian.harnath@rwth-aachen.de> |
app_server: extract coordinate conversion class * Move coordinate conversion into a new class SimpleTransform. It supports scaling and translation which is sufficient for conversion between screen, local and pen (drawing) coordinates. * Because all the overloaded methods for converting BPoint/BRect/BRegion/etc are now within the single SimpleTransform class, the interfaces of Canvas, View, DrawState, etc. are slimmed down. These classes have too many responsibilities, so some will be factored out into separate classes, this being the first.
|
#
ce27f961 |
|
05-Sep-2015 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implement ClipToPicture inside a BPicture. Not working yet. BView::ClipToPicture doesn't work anymore, when nested inside a BPicture, This happened when its implementation was moved server-side.
|
#
a48ef9e8 |
|
11-Aug-2015 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
AppServer: check for NULL bitmap. Consistently check for NULL the ServerBitmap pointer. There seems to be cases where BView::DragMessage could pass an invalid Bitmap token to app_server. Maybe it's when a client only bitmap is passed, I don't know. Anyway, this is defensive programming, and at least we check for NULL consistently now. This fixes #11681. Note that SuperFreeCell still crashes, but at least app_server doesn't crash.
|
#
442e7caa |
|
04-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Reset current view also when deleting a parent view. The check that was in place only ensured that the current view was reset if the current view itself got deleted. Since deleting views works by token it is possible that a view other than the current view gets deleted. When a parent of the current view was deleted, which also deletes all its children, the current view pointer was not reset and the stale pointer would still be accessed.
|
#
35965e58 |
|
04-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Fix 64 bit build with ServerWindow tracing on.
|
#
eb431663 |
|
11-Mar-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
app_server & interface kit: support fill rules. * BView gets SetFillRule/FillRule methods. The fill rule is part of the view state. * The B_NONZERO rule is the default. This is what we implemented before. * The B_EVEN_ODD rule is the other common possibility for this, and we need to support it to help WebKit to render properly.
|
#
c54e7ddb |
|
26-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Fixed build with tracing enabled.
|
#
99d23e51 |
|
24-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Apply scale to round corner radius.
|
#
a6db6bd4 |
|
04-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
Added WIP support for affine transformations to BViews. Everything untested, but compiles, so it must work. The idea is to introduce BAffineTransform additionally to the existing Origin and Scale properties of BViews. One may use it in parallel or as an alternative. Painter in app_server is not yet aware of the additional transformation. It is however already used to transform drawing coordinates. It probably needs to work differently, perhaps only in Painter and AGGTextRenderer.
|
#
77214b5a |
|
03-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Implemented nested clipping paths * The alpha mask is no longer stored with 75% more memory than needed, resolving a TODO. * AlphaMasks are now BReferenceables. * AlphaMasks are transferred to a pushed DrawState. * When an AlphaMask is set on a DrawState, it sets the previous state's mask to the AlphaMask. That one now takes care of updating not only itself, but the previous mask as well (which works recursively). * In AlphaMask::Generate(), a combination happens with the previous state's mask, which again works recursively in case the previous mask also needs to be updated. This step is combined with extracting the alpha channel from the UtilityBitmap used to play the ServerPicture. * Fixed some out of bounds access to memory in the "outside" case in agg_clipped_alpha_mask.h. This happened when the requested region was both before and after where the mask has data.
|
#
6a6060d8 |
|
01-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
ServerWindow: Fix converting the clip picture origin The current view state is already used for the picture playback, the remaining conversion needs to take into account screen location and scrolling offset of the view. This may need further investigation: a) When is this updated? It needs to be whenever a View changes screen location, size or scroll offset, which may not be the times when this method is called. b) I am not sure if the scrolling offset is indeed part of this conversion...
|
#
ad17bccf |
|
28-Jan-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Implemented caching and updating the alpha mask.
|
#
215119a1 |
|
28-Jan-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Move AlphaMask management into DrawState. * Give DrawState a real copy constructor, handle deriving in PushState(). (Although clipping region and alpha mask are not cloned, which is on the other hand just what's needed for now.) * Combining alpha masks from previous states is not yet handled. * Remove SetAlphaMask() from DrawingEngine and Painter. It is now done in SetDrawState().
|
#
d0fa6c78 |
|
28-Jan-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
BView: Allow resetting ClipToPicture Just like for regions, ClipToPicture(NULL) removes any picture clipping at the current state level (clipping in pushed states are not undone).
|
#
fd9ceef8 |
|
22-Jan-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Memory allocation fixes.
|
#
e0d1cc18 |
|
22-Jan-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
BView: move ClipToPicture code to app_server Now that DrawingContext makes it possible to draw on a ServerBitmap without the need for a BView, we can replay pictures on app_server side, avoiding the cost of creating a BBitmap, offscreen BWindow, and BView from the application side. The offscreen drawing context gets the same state as the view it's rendering the picture for, so font size, drawing mode, etc are used. The implementation is still the suboptimal one, converting the BBitmap to a BRegion, and using that for clipping. Changing that comes next.
|
#
59347b7f |
|
13-Aug-2012 |
Ryan Leavengood <leavengood@gmail.com> |
Reverse the meaning of BWindow fShowLevel to match BView. This also matches the client_window_info.show_hide_level field used in Deskbar and other applications. While doing this, keep fShowLevel fully in sync between BWindow and app_server, use one message type for both hiding and showing, and make the decision to show and hide the window in the app_server. Lastly make minimize behave as described in the Be Book: hidden windows cannot be minimized, and minimized windows which get hidden become unminimized.
|
#
96cabf58 |
|
12-Aug-2012 |
Ryan Leavengood <leavengood@gmail.com> |
Sync BWindow fShowLevel with the app_server. Implementing the window_info.show_hide_level in terms of this solves the problem of minimized windows also being considered hidden, when really they are just hidden in the app_server. window_info.show_hide_level is still defined backwards with a comment making that clear. Also removed sending fShowLevel in the minimize request since it is now maintained in the app_server. Fixes #4127.
|
#
4b8a51c3 |
|
09-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Fixed incorrect sizeof in LinkReceiver::ReadRegion. The type of BRegion::fCount is long, and ServerLink sends/receives it with sizeof(long), but LinkReceiver was using sizeof(int32). Due to long being 64 bit this was resulting in a mismatch. This fixes the drawing problems on x86_64.
|
#
3fed1a15 |
|
05-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Get app_server working on x86_64. With this commit, app_server now compiles and runs at boot! Nothing particularly interesting happens, just the blue background and a mouse pointer. Remote backends are broken and not compiled in, see #8834. Note that it won't be possible to build this quite yet, need to get the FreeType package uploaded.
|
#
5b1742af |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Remove another assert that fails. In this case the access from ServerApp is fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
54fff0c4 |
|
08-Mar-2011 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed resource leak in error code path. CID 5888. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
17925a35 |
|
06-Feb-2011 |
Stephan Aßmus <superstippi@gmx.de> |
* The app_server leaked the BGradient objects on each drawing operation related to gradients. This was for example very noticeable when running MediaPlayer which redraws the slider a lot. With three movies running, app_server would leak at about 100KiB per second. Might be related to #7071 or even fix it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40364 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c9f72f43 |
|
28-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
Applied patch from stimut (#6353), thanks! In ServerWindow::_DispatchViewDrawingMessage(), for AS_DRAW_STRING_WITH_OFFSETS, the string length rather than the number of UTF8 glyphs is used, thus leading to an app_server crash. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40310 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9ff327de |
|
19-Nov-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Make MessageForListener a bit more flexible, passing a fix ServerLink is sometimes not enough and a separate sender and receiver is needed. - Add communication part to restore and save S&T groups. - Fix call of GetDecoratorSettings listener hook. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39534 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
43eea4c2 |
|
23-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Apparently it does not work... convert to TODO. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39100 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76d9e053 |
|
23-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Introduce a new flag for drawing BBitmaps, B_WAIT_FOR_RETRACE which triggers waiting on the retrace semaphore in app_server just before drawing the bitmap. This potentially removes any additional delay when doing this client side. Completely untested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39097 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
08a79ab2 |
|
19-Sep-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix size limits function name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38725 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dcbc4af5 |
|
16-Sep-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Add size limit changes to the listener interface. - Update size limit constraints in S&T only if necessary. - Header style fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
45db9a20 |
|
31-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Made the logic behind the locking in the outer and inner message loop more clear, both in the code and also via comments. I get the occasional drop into the debugger because MultiLocker says the Readlock has been acquired twice. I don't see how it is possible from the code and it could be another bug in the MultiLocker debugging facilities, but the code should be clearer now anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee9246d5 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Remove unused communication port, pointed out by Axel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c0494bc5 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Add facility to communicate with the desktop listener over an app server link. The ServerWindow dispatch the message to the DesktopObservable which dispatch it to the correct listener. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38169 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
032a8371 |
|
06-Aug-2010 |
Michael Pfeiffer <michael.w.pfeiffer@gmail.com> |
As per Stephans request re-added comment that I removed in r37939. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37944 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab7c7773 |
|
05-Aug-2010 |
Michael Pfeiffer <michael.w.pfeiffer@gmail.com> |
* With blessing from Stefano applied my alternative patch from ticket #6415: the drawing offset of a BPicture becomes the new drawing origin. * This should also close ticket #6008. * Also the Preview printer does the clipping now correctly outside the "printable rectangle". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37939 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd06a41c |
|
02-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Cleanup of the some header includes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37856 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb69cd65 |
|
02-Aug-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Basically revert r37824 (minus restoring the origin), since it causes other problems (#6415 for example). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
568bdbf7 |
|
30-Jul-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Convert the BPoint to screen coordinates respecting the scale (using ConvertToScreenForDrawing()) before drawing a BPicture, both directly and inside another BPicture. Restore the drawing origin when drawing a nested BPicture (like we already do when drawing it directly). Fixes #6008. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
860dfc9a |
|
28-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Introduce a DesktopListener interface to the Desktop class (needed for SAT). - Add a minimize method to desktop. - Make _CurrentWindows public. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37800 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e711c79 |
|
25-May-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Patch mostly by jackburton: The global offset for drawing a BPicture needs to be applied before pushing a drawing state, otherwise it is not preserved throughout playing the picture data. I've added the comment and resetting the drawing origin to the previous value. Fixes ticket #6070, thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36933 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8ce4644f |
|
26-Mar-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
If SetFullScreen() was called on a hidden BDirectWindow, it wouldn't be set to fullscreen (since that code checks for a Screen object, and is null in that case). So we also call ResizeToFullScreen() in ServerWindow::_Show(), if needed. Fix ticket #4456. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35959 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76ab3f88 |
|
18-Mar-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Basically, this changeset implements BShape::ArcTo(). In more detail: * Added BShape::ArcTo() and BShapeIterator::IterateArcTo(), using a previously unused virtual slot. (Added the symbols for binary compatibility for GCC2 and GCC4.) * Added operator=(), operator==() and operator!=() to BShape. * Added BShape::BezierTo() version taking three points, which is sometimes more convenient. * Added the four new shape data ops OP_LARGE_ARC_TO_CW, OP_LARGE_ARC_TO_CCW, OP_SMALL_ARC_TO_CW and OP_SMALL_ARC_TO_CCW. For a single arc, provided the radius is large enough, there are four possibilities to draw the arc, these are controlled by the two boolean flags to ArcTo() and mapped to the new commands accordingly. * Some style cleanup in Shape.cpp (sorry for mixing it up, but it gets worse below...) * Added ShapeTest to src/tests/servers/app. * Changed the way BShapes are transformed from view to screen space in the app_server. For arcs, it would be nontrivial to apply a proper transformation, it's much easier to let AGG take care of it. This affects ServerPicture as well. * Wrapped iterating the BShape into try/catch blocks in ShapeIterator. But I really don't understand the purpose of the class in the first place. Maybe it can now be dropped, since coordinates don't have to be transformed in place anymore. * Refactored copy&paste shape iteration code in Painter. The transformation to screen space happens there. * Since RemoteDrawingEngine needed to be adopted anyway, I also updated it for the new DrawString() with offsets version. But the client still needs to be adapted. * Style cleanup in Painter.h git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35905 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
77e5acc0 |
|
15-Mar-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Extended the BView drawing API by a DrawString() version that takes an array of locations, one for each glyph. * Added a test for the new functionality. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35865 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
606105c6 |
|
21-Feb-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Reduced the maximum lock time to roughly a quantum (a little less might even be better, though). * This might help further with #4709. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35548 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
87e7b978 |
|
15-Feb-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed race conditions in the server's bitmap/picture handling: the objects are now removed from the maps as soon as the client deletes them. This also makes the "client reference" mechanism superfluous I introduced earlier. * ServerApp::SetCurrentCursor() must always call Desktop::SetCursor(), since it is also called whenever the current application changes. This fixes the cursor almost never changing. * Renamed ServerPicture::Usurp()/StepDown() to PushPicture(), and PopPicture(). * Also, they now acquire a reference to the picture in question (ie. the picture you get from PopPicture() also owns a reference you need to free). * ServerApp::CreatePicture() may fail, too. This case is now handled in the code that calls it. * Previously, the ServerWindow tried to process up to 70 messages in one go. That obviously caused bug #4709. Now, we have the additional requirement to not hold the desktop lock for longer than 25 ms. I haven't tested it with Kaleidoscope yet, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35472 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b576468 |
|
01-Dec-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed (incorrect) check in ServerWindow::NotifyMinimize() for B_NOT_MINIMIZABLE; it should still be possible to hide an application programmatically. * The decorators now honor this flag, though. * And the Deskbar overrides BWindow::Minimize() to ignore all minimize requests. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34404 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac628ead |
|
30-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved the B_NOT_MINIMIZABLE flag check into ServerWindow::NotifyMinimize() as this fixes some more incorrect minimizations on the app_server side. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34361 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
121ce643 |
|
24-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Don't allow to show windows that don't have a top level view yet. This fixes bug #5022. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34209 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
289d85d2 |
|
18-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* BWindow::SendBehind(NULL) will now send the window to back. * Added shortcuts ctrl-alt-F to get a window to front, and ctrl-alt-b to move it to the back. * Updated the user guide with these shortcuts, and also explained the missing "single click to bring window to front" behaviour. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34108 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea0ba618 |
|
07-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* "bitmap" can actually be NULL at that point, so calling ReleaseReference() on it unconditionally is not a good idea. This fixes bug #4904. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33935 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4b0459b2 |
|
04-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Refactored ServerBitmap a bit: it now inherits from Referenceable instead of roling its own solution. * Also removed BitmapManager::DeleteBitmap() - you only call ServerBitmap::RemoveReference(), and that one will notify the manager if needed. * Some more cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85a7877f |
|
04-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* ServerApp's bitmap and picture handling was completely broken, as it ignored concurrency as well as reference counting, causing occasional crashes and memory corruption. * ServerPicture now subclasses Referenceable, and will notify its owner when it's going to be deleted. This might bring some regressions, although I couldn't spot anything wrong yet. * ServerBitmap will now also notify its owner when it's going to be deleted as well. * Switched from the former picture/bitmap lists to a std::map. This also solves the issue of not checking whether or not the bitmap/picture actually belongs to the ServerApp (before, all apps could access and delete all pictures/bitmaps) * Introduced a new fMapLocker that guards the new maps. * ServerWindow now uses GetBitmap()/GetPicture(), and gives up its reference after use. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33876 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85d512ed |
|
30-Oct-2009 |
Philippe Houdoin <philippe.houdoin@gmail.com> |
Revert Stack & Tile patch (r33814) and first fixes done by axel (r33824, r33826) The stack & tile feature developement & fixes would be done in branches/features/stack-and-tile branch, until it's ready enough to be merge into trunk. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33840 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23e00a25 |
|
29-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed millions of coding style violations introduced by the stack & tile patch. Grmbl. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ef831a1d |
|
28-Oct-2009 |
Philippe Houdoin <philippe.houdoin@gmail.com> |
Applied Stack & Tile patch by Hong Yul Yang, formely by Christof Lutteroth. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33814 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
926e63c8 |
|
22-Oct-2009 |
Brecht Machiels <brecht@mos6581.org> |
* added click to focus mouse mode; right-click for bring-to-front and send-to-back (might cause some regressions in FFM) * made accept first click user configurable * updated the Mouse preflet to use the layout kit * removed the warp and instant warp modes from the Mouse preflet * changed internal representation of mouse modes (warp modes moved) * coding style fixes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33732 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
68667bf4 |
|
04-Oct-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Adding a remote desktop interface that operates on app_server drawing primitives by providing a RemoteDrawingEngine and a RemoteHWInterface. Not really optimized yet, still a bit WIP. * Adding corresponding infrastructure like a blocking ring buffer and network sender/receiver that are attached to the buffers to feed/drain them as well as a RemoteMessage helper that provides a message based interface. * Adding target screen concept to request an app to be run on a specific screen. It's controlled by the TARGET_SCREEN environment variable which is added on the app side and sent to the app_server. * Right now only remote target screens are supported, in which case a new RemoteHWInterface is created that tries to connect to the given host:port. * Fix shape bounds when drawing, they need to be translated by the pen position and converted to screen like the points as well. Wasn't visible though as the bounds weren't used in the normal DrawingEngine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
edb62548 |
|
03-Sep-2009 |
Michael Lotz <mmlr@mlotz.ch> |
When an app is going down and the windows are destroyed, all views are detached. On detaching the views remove themselves from the app local token space. Since the ServerApp only waits for all ServerWindows to be removed from the window list and not for their actual destruction, it can happen that the ServerApp is deleted before the window destruction and hence the view detaching has finished. The views would then access a stale ServerApp pointer and try to remove their token from the deleted token space. To avoid that we set the ServerApp pointer to NULL when the window is removed from the app (as after that the app can be gone any time) and check for that case when detaching. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32927 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2a0cda50 |
|
28-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added proper locking to _ResizeToFullScreen(). * Desktop::{Move|Resize}WindowBy() could be called with zeros in which case it doesn't have to do anything. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32775 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e5c25980 |
|
28-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Someone (like the screen_blanker) could call BDirectWindow::SetFullScreen() before the window is shown. The app_server didn't like this, since in that case, Window::Screen() is NULL. I added a check to ServerWindow::_ResizeToFullScreen() to handle that case. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32774 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a5a64d54 |
|
27-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed DirectWindowSupport/Data to DirectWindowInfo. * Cleanup of the fullscreen stuff. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32743 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78ca6157 |
|
27-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed AS_GET_SCREEN_ID_FROM_WINDOW as well as AS_SCREEN_GET_MODE to no longer hold the window lock. There is now a lock that guards screen changes in particular. This fixes the deadlocks seen in apps using BDirectWindow. * All direct window handling now sits in the Desktop class - ServerWindow::HandleDirectConnection() is never called from anywhere else anymore. Furthermore, it's now only called when actually needed. * Resize/move actions now always send a B_CLIPPING_MODIFIED flag, too. * When the screen changed, the driver state is supposed to be B_MODE_CHANGED, not B_SCREEN_CHANGED (which is a message constant). * Direct windows are no longer suspended too late on screen changes. * Removed unused members of DirectWindowData, and cleaned it up a bit. * Made MultiLocker's default, and copy constructors private - I accidently used them, causing the ASSERT_MULTI_*LOCKED() macros to fail. * Added Unlock() to AutoWriteLocker as well. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d9135957 |
|
26-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Disabled BDirectWindow mode for the time being. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32694 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe9c291b |
|
24-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Since ServerWindow::Window() can also be NULL in case the window hadn't been added to the Desktop yet, we better make sure in AS_GET_SCREEN_ID_FROM_WINDOW that this is not the case. * Removed the now superfluous ServerWindow::IsOffscreen() again. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32653 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
899d1454 |
|
23-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerWindow needs only to call DirectWindowData::SetState() now, since it does all the work to sync with the client itself. Made DirectWindowData::SynchronizeWithClient() private and renamed it accordingly git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32644 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d3b6a35a |
|
23-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Some server side debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32640 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f6ad8d5a |
|
23-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
More encapsulation of directwindow stuff into DirectWindowData. I changed lot of code (while trying to fix ticket #4311), reverted some old changes and probably messed up a lot. It's very much a work in progress. Anyway, DirectWindowStars still work correctly, but Chart (and GLTeapot) do not. I suspect a race condition between the DirectWindow creation and the activation of the direct mode on the server, maybe exposed more easily by the changes in the scheduler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32625 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
467c2e8c |
|
22-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved DirectWindow support classes into a separate DirectWindowSupport.h/cpp. No functional change. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32613 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f277acc9 |
|
22-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Don't crash the app server if the user calls BScreen(BWindow *) supplying an offscreen window (Magnify does that, and that's the cause of ticket #4304). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3b33d630 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Fixed B_READ_WRITE -> B_READ_AREA | B_WRITE_AREA problem. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32575 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d3ae6ef6 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
use DIRECT_BUFFER_INFO_AREA_SIZE instead of B_PAGE_SIZE, even if they are the same, but it's more correct. Also memset the buffer_info struct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7d9dfe90 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
fixed style violations git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32571 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f1400a31 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
More refactoring of the DirectWindow server code. No new bugs introduced (hopefully), and now I could enable the B_SCREEN_CHANGED notification since it works a bit differently git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32570 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe7f167d |
|
21-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Resolved a TODO and got rid of Desktop::ActiveScreen(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32566 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0eed9183 |
|
20-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Rewrote screen configuration management: VirtualScreen doesn't have anything to do with the configurations now, instead, there is a separated ScreenConfigurations class that maintains all known screen_configurations per workspace (and the Workspace::Private class has two of them, one for the current modes, one for the stored modes). * Added Desktop::{Get|Set}ScreenMode() methods, ServerApp now only calls those. * Getting and setting of anything else than the current screen is now supported. * This change also fixes that a temporarily set screen mode was not being restored on workspace switch. * Also, the Deskbar now seems to have the wrong location a lot, which is something that should be easily fixable therefore. I will look into this next. * Got rid of the unhandy screen_id structure server side, and in BPrivateScreen; we now just use an int32 - the next API break should definitely replace the screen_id with a simple typedef. * Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32541 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1bcb09b |
|
17-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Added a ServerWindow::ScreenChanged() hook, which takes care of resizing an eventual offscreen directwindow and sends the direct window notifications (not yet, though, since a BDirectWindow on a non-visible workspace would get the B_DIRECT_START notification and start drawing on a different workspace). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32455 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
701dae79 |
|
15-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Squashed a TODO: Added a View::InitCheck() and use it after construction. Removed the check for View->CurrentState() == NULL. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32412 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2a2d0f1d |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
After a B_DIRECT_STOP notification, the app_server could trigger a B_DIRECT_MODIFY with, for example, B_CLIPPING_MODIFIED. This was ignored, though. Now we combine this notification with the next ones, so that on B_DIRECT_START, the client is informed of all the things which have changed. Chart was relying on receiving the B_CLIPPING_MODIFIED notification to exclude some stars from being erased, in case the window went offscreen. Anyway, the net result is that Chart doesn't crash now, and we follow more closely the original BDirectWindow protocol. Fixed ticket #1939. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32392 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7c167db |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
This check is no longer needed, since the case is covered by the one in DirectWindowData::SetState(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32375 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e20b062 |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Work in progress towards cleaning up the directwindow server code: Renamed direct_window_data to DirectWindowData and turned it into a class. Encapsulated some functionality inside the DirectWindowData class. No functional change (yet). More to come. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32374 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
07e13b5f |
|
11-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed superfluous ReplaceDecorator() method. * Cleanup, no functional change. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32243 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bd49667 |
|
03-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Now also hide/show the cursor when BDirectWindow::SetFullScreen() is called. in the handler, instead of checking if the window is an offscreen one, check if fDirectWindowData is NULL, and do nothing if it's the case. When setting a clip region in ServerPicture, also invalidate the clipping. To do so, I added a public ServerWindoow::UpdateCurrentDrawingRegion() which just calls the private function. Please review and see if it can be done better. This fixes the problem with BPicture and the ConstrainClippingRegion() op (see ticket #1389) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32087 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4695f670 |
|
01-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Completed the server part of BDirectWindow::SetFullScreen(). The window is now resized and moved correctly. Moved this functionality to its own method. Should fix bug #4168. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32062 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9c1f8bf0 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Reverted r32012 which reopens #4127 - the fix causes strange behaviour with CL-Amp which is a bit worse than seeing TrackerStatus in the Deskbar. Will search for a proper solution later. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32026 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23046a39 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* No longer maintain the Window::fMinimize member for hidden windows; this seems to be what happens in BeOS, at least, and fixes bug #4127. * Hopefully diver will also find any negative consequences of this change :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32012 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
19e179ca |
|
19-Jun-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Moved the implementation of SetViewCursor from the thread of the window of the view into the application thread. This solves the race condition with asynchronous SetViewCursor and deleting the cursor immediately afterwards for real. * The ServerApp now requires a reference to the current cursor, just in case... * Added TODOs for caching the BView token, it's currently resolved for every single BView call that talks to the server... not good! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31133 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f680cfe2 |
|
02-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The direct connection update in ServerWindow::{_Show()|_Hide()} is superfluous since Korli's change in r30440. * 80 character per line limit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30579 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fc235d55 |
|
20-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Patch based in large on work done by Philippe Saint-Pierre: * When a BApplication is created, the interface kit globals for this team are initialized, including be_plain_font, be_bold_font and be_fixed_font. The plain font specifically is assumed the default font for all BViews. A BView is not required to every set the font, it will then just be the plain font, because the app_server already assigned it when the view is created. Here is where the problem starts. When the system fonts change, they change on the app_server and are picked up by new applications. Old applications will run with the old fonts, because the values remain the same and are stored in the already initialized be_*_font globals. So this was never a problem. What was a problem is that the app_server would use the current plain font for applications which were already initialized before the font was changed, so the values in their be_plain_font would not match the values in the server side font used when creating new views. * This patch already prepares for the situation in which client applications want to update their be_*_font globals. This needs to be a manual act of the client applications, otherwise we would break existing apps. Maybe we could automate this for BWindows with the B_AUTO_UPDATE_SIZE_LIMITS flag and any child views with B_SUPPORTS_LAYOUT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30282 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4fba3522 |
|
11-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed src/kits/tracker/OpenHashTable.h. The shared version in headers/private/shared is newer, though with small interface changes. * Removed the unnecessary Debug.h include in headers/private/shared/ObjectList.h. * Adjusted sources using these headers, mostly by adding missing includes. * Lots of automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30123 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ffdb0ccf |
|
09-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Also improve the BPicture version of drawing line arrays. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30066 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f99d546d |
|
07-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed incorrect comment. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30004 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
86990636 |
|
05-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Avoid using the heap allocator for most string drawing when reading the command from the link. My benchmark measuring is inconclusive, the numbers are sometimes very different. At first sight, it looks like string drawing can be up to double as fast with this change, but sometimes, the numbers are about the same. Hm. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29965 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12349c7d |
|
05-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Begun to use structs for the BView<->app_server communication. This makes the protocoll less prone to errors, reduces possible points of failure and most importantly, reduces the number of function calls to the link API. I only know the numbers for StrokeLine(), which I tested via the Benchmark test app. With this change, drawing random colored and positioned lines actually doubled in speed. On the BView side, the calls to ServerLink::Attach() only halfed, while on the app_server side, the number of calls to ServerLink::Read() is now 1/4th. It will also be worth investigating why the link stuff is so slow at all. I also optimized BView::DrawString() a lot in this change, but I don't have any numbers yet. Some other commands which used multiple Attach()/Read() calls were also optimized, at least the most important ones. Begin/EndLineArray() was also pretty bad on the app_server side. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8ee34f96 |
|
28-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
When setting view flags which toggle the B_DRAW_ON_CHILDREN flag, immediately trigger a recalculation of the view clipping region (it will now include children). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29755 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ce5d6472 |
|
19-Jan-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Renamed the drawing functions in DrawingEngine to remove the *Gradient part. In general, there is a lot of code duplication now, also in Painter. I will need to find a way to elliminate this again. Also, all the stroking functions should be gradient enabled as well. * Improved the look of the DefaultDecorater, inspired by the patch from Dennis Washington. I did not adopt the changes which give backwards compatibility problems, though, like changing the window border width or the single border decorator color. But I reckon these changes are overall even a bit smoother. * Fixed a long standing decorator bug, where the resize area of the border was visually different than the click recognition. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28951 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2ea5e5e8 |
|
18-Jan-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* We should not ignore the minimize request completely when the window is hidden, but at least set it to minimized. * Also, we shouldn't show minimized windows, but keep them hidden. This prevents the app_server/BWindow to go out of sync wrt the show level. This also fixes bug #3258. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28938 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3dc4e7fa |
|
15-Jan-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The move/resize window protocol now uses absolute coordinates rather than relative ones. This fixes bugs #2658, and #3213; in BWindow::ScreenChanged() the window does not yet know that it moved on the new screen (when it already had a position on that workspace). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28908 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0a3f410f |
|
16-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a Desktop::BroadcastToAllWindows() method that sends all ServerWindows a message. * The DesktopSettings class is now using that to send the new AS_SYSTEM_FONT_CHANGED message to all windows. * The ServerWindow now propagates font changes to its decorator, causing it to update its drawing. That means changing the bold font in the "Fonts" preferences application will instantly change all window titles. * Factored out a _RebuildAndRedrawAfterWindowChange() out of several Desktop methods, simplifying some code. * The DefaultDecorator no longer calls _DoLayout() twice (through SetLook()), but instead calls the new _UpdateFont() method now also called by FontsChanged(), and SetLook(). * BWindow::GetDecoratorSettings() now also includes "tab frame" BRect with the exact footprint of the tab, allowing apps to know the size of the tab to position itself accordingly. * Automatic white space cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28664 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e98ee141 |
|
06-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* big cleanup of the tracing support, output useful information for most messages, use debug_printf(), cleanup line breaks * check return code of last link method in a lot more places * changed some printf() and fprintf() into debug_printf() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28537 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bda802b2 |
|
05-Nov-2008 |
Jérôme Duval <korli@users.berlios.de> |
now uses DIRECT_BUFFER_INFO_AREA_SIZE as the direct_buffer_info area size git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28526 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca89b8ff |
|
04-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* The app_server implementation of BView::GetClippingRegion() was using the wrong check to see if the view was currently visible. This fixes the problem that tool tips would popup for windows that are located on other workspaces. * Removed commented out code that is no longer needed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28498 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21b40edd |
|
03-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented respecting B_LOCK_WINDOW_FOCUS that a view can set using SetMouseEventMask() from within it's mouse hooks. Among other things, scroll bars won't stop scrolling in FFM mode now if you accidentally leave the window with the mouse, something which is very likely. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28481 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c2a8fd9b |
|
17-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* AS_ACTIVATE_WINDOW must not hold a window lock when calling Desktop::ActivateWindow(), or Desktop::SendWindowBehind(). * This fixes a potential deadlock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28217 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bf3a2064 |
|
16-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed r28168, which introduced an app_server deadlock. Functions which call into Desktop methods which in turn grab the window write lock are never supposed to hold this write lock themselves already, since the Desktop code takes care to not hold the lock when for example calling EventDispatcher methods, which would cause a deadlock (as in this example). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28175 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96c6ee95 |
|
15-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* _Show() and _Hide() must now be called with having all windows locked (it would do that internally anyway). * AS_MINIMIZE no longer calls _Show() when being unminimized, but Desktop::ActivateWindow(), as this will also bring the window on the screen if it's on another workspace (according to its flags). * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28168 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
431dc47d |
|
15-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Artur Wyszynski with some changes by myself: * Resolved TODO: The type of the gradient is no longer encoded twice in the app_server link protocoll. * Moved instantiation of the BGradient into the LinkReceiver::ReadGradient() method. * Check success for (at least) ReadGradient() in ServerWindow. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28150 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
991547ef |
|
14-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Artur Wyszynski: * Implemented BGradient, BGradientLinear, BGradientRadial, BGradientDiamond, BGradientConic and BGradientRadialFocus new Interface Kit classes. * Implemented all the (AGG-based) backend necessary in the app_server to render gradients (Painter, DrawingEngine) * app_server/View can convert a BGradient layout to screen coordinates. * Added BGradient methods of the Fill* methods in BView. * Implemented a test app and added it to the image as a demo. * Adopted Icon-O-Matic and libs/icon in order to avoid clashing with the new BGradient class. Re-use some parts where possible. Awesome work, Artur! Thanks a lot. Now a more modern looking GUI has just become much easier to implement! :-) TODO: * Remove the need to have gradient type twice in the app_server protocol. * Refactor some parts of the patch to remove duplicated code (Painter, DrawingEngine). * Adopt the BPicture protocol to know about BGradients. * Review some parts of the BArchivable implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28109 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
54f92239 |
|
08-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The ServerWindow now memorizes the original BDirectWindow feel when switching to full screen. Since BDirectWindows can have any feel, this does now correctly restore it instead of always reverting to B_NORMAL_WINDOW_FEEL. * This fixes part of bug #2808. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27920 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5f8c1a02 |
|
09-Sep-2008 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Remove unused RamLinkMsgReader. Its functionality was integrated inside LinkMsgReader/Sender by Julun. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27387 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2982ae5d |
|
08-Sep-2008 |
Karsten Heimrich <host.haiku@gmx.de> |
* comment the code that prevents programmatically resize events during a user resize, this makes ArtPAint's tool pallete window resize properly Thanks Stephan for explaining me two time what to look for :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27384 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bc4dacf |
|
27-Aug-2008 |
Karsten Heimrich <host.haiku@gmx.de> |
* We need to update the drawing state in case SetHighColor, SetDrawingMode etc. is called after BeginPicture on a freshly created view. This is necessary because a second invocation on this view with BeginPicture would have caused ServerPicture::SyncState to write the default drawing state into the picture. This happens because to BView had now cached the values and therefor won't go to the app_server and tell about the change. The first call did not change anything as picture recording is handled in _DispatchPictureMessage while view changes that modify drawing state are handled in _DispatchViewMessage, thus leading to default draw state values beeing written. This fixes invalid ticket #2534. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27218 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44cd4a02 |
|
12-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Deskbar's Switcher had an explanation what the window_info::layer field is about. ServerWindow::GetInfo() now fills in that value following this logic as well as further testing. * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26942 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
162a7f5f |
|
28-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Implemented new BView drawing functions DrawBitmap[Async]( const BBitmap* bitmap, BRect bitmapRect, BRect viewRect, uint32 options). Only option so far is B_FILTER_BITMAP_BILINEAR. * BView::DrawBitmap[Async](const BBitmap* bitmap, BRect viewRect) was accessing the bitmap pointer without checking it. Would therefore crash when passing NULL, unlike the other methods. * The BPicture code already reserved room for the BBitmap flags, but did not store the actual flags and neiter use them for anything. Since the bitmap data is stored anyways, the bitmap creation flags do not matter. So I reused this for the new bitmap drawing options. * Rewrote Bitmap.h and removed the B_BITMAP_SCALE_BILINEAR flag again. * Tried to optimize Painter::_DrawBitmapBilinearCopy32() a little by giving the compiler better hints. There seems to be a marginal, possibly imagined speed increase < 0.05 ms. ;-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26665 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f592fcef |
|
01-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
stippi + bonefish: Fixed race conditions when a ServerApp or ServerWindow is created. The reply to the client that the object has been created successfully was sent in the thread creating it. Preempted at the wrong time (right after writing the message to the port) could lead to the object's thread using the link at the same time, which would screw up all subsequent communication via that link. This fixes the problem that mimeset would sometimes fail when building Haiku in Haiku (can't find the ticket). It probably also fixes #2331, and the bug that sometimes when a window is opened (Terminal, crash alert, shutdown window, etc.) it would come up with huge width/height and tiny other dimension (can't find the ticket). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26192 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f24652cb |
|
21-Jun-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Fix two wrong debug output messages and add one for AS_SYNC. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26063 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f27659f5 |
|
04-Apr-2008 |
Jérôme Duval <korli@users.berlios.de> |
* GRAY8 is 8 bits * typo git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24798 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d81827b |
|
30-Mar-2008 |
Karsten Heimrich <host.haiku@gmx.de> |
* push the states on the server instead on the client side * DrawState::SetOrigin needs to take the view scaling into account * set the orgin in BPrintJob, to be able to print more then one page properly Note: This would make printing work on HAIKU as on BeOS, but still it does not because of 1; BPortLink size limit and 2; because we can only print/ draw the visible region of a view? I had to resize StyledEdit to a i.e 10000 to test and to be able to print the full syslog. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
97d6a051 |
|
11-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
GetClippingRegion() was implemented wrongly on the app_server side. It needs to take the current effective drawing region of the view, but converted to local coordinate space. Untested as of yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24361 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
582b3d5a |
|
08-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* When allocating a new Window, check the allocation of the DrawingEngine instance by introducing Window::InitCheck(), use new (nothrow). * Window is responsible for the DrawingEngine instance, but forgot to delete it. * OffscreenWindow is no longer special, every Window owns a DrawingEngine, no need to delete it anymore, but since it already deletes the HWInterface instance, it needs to detach the DrawingEngine from it. * Use new (nothrow) in OffscreenWindow as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24308 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c7a77521 |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed all *LAYER* constants to *VIEW*. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24306 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
437b1927 |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed severly outdated DebugInfoManager. * More "layer" cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
953d895e |
|
07-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Got rid of the "Layer" part of WindowLayer, ViewLayer, WorkspacesLayer (now WorkspacesView), OffscreenWindowLayer. * Renamed ServerScreen.cpp/h to Screen.cpp/h (the class was already called Screen). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24303 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c184b20 |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The Desktop is now maintaining a list of workspaces views, and supports more than one of them at the time. * Changed ViewLayer::FindView() to FindViews() that collects all views with the given flag set, not just the first one. * Made ViewLayer::AttachedToWindow() and DetachFromWindow() virtual, WorkspacesLayer now overloads them to register itself with the window and the desktop. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24300 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cebfa7dc |
|
06-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
I was trying to fix Firefox redraw problems, but this change does not help. However it appears I might have fixed the GL apps drawing over other windows. Cannot reproduce this problem anymore, but it may be that this bug doesn't show on my new setup (32bit double buffered VESA). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24267 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f9bbab88 |
|
24-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* First steps towards a more flexible workspaces view handling: the workspaces view can now be any view in the hierarchy. * Added private view flag kWorkspacesViewFlag that identifies such a view - note though, that you must not remove a view before closing or hiding its window for now (and that you still need to set the kWorkspacesWindowFlag, too). * Fixed Workspaces check for valid screen coordinates; after a crash, it managed to open its window offscreen for me. * Added a ViewLayer method FindView() that finds a view with the specified flags set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24090 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d755e1c0 |
|
19-Feb-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented Enable/DisableUpdates again on the app_server side. Untested. It should prevent the app_server to send any update messages to the client. It should just keep adding to the pending update sessions region until the client enabled updates again. If anything is already in the pending session, an update request will be send immediately. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24029 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
511c231b |
|
24-Jan-2008 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
remove unnecessary code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
48882cec |
|
08-Dec-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* lock pattern drawing to the true view origin, independend of the views position on screen (fixes drawing glitches in patterns when the view was moved on screen (for example because the parent window got moved)) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23089 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dd84f111 |
|
18-Oct-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed a few potential deadlocks: * in r22410 the unlock/relock was removed accidently from ServerWindow::_Hide() before calling a desktop method. * Desktop::ActivateWindow() no longer calls SetWorkspace() with the window lock held. * WorkspacesLayer::MouseUp() now uses the asynchronous version of SetWorkspace(). * AFAICT AS_HIDE_WINDOW, AS_SHOW_WINDOW, and AS_MINIMIZE_WINDOW don't need the all window lock, reverted to standard single window lock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22614 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4d1c4228 |
|
02-Oct-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added a way for the ServerWindow message loop to determine the required type of locking before processing the message (single/all window lock) -> in most message cases, I could comment out the unlocking/locking which switched to the different lock, because the required lock is now already held, this removes some race conditions which were commented in the code already * EventDispatcher::SetDragMessage() didn't lock the object, this would have been bad if multiple windows tried to set a drag bitmap at once * the Desktop object keeps track of mouse position and pressed buttons, so that it doesn't need to lock the EventDispatcher for sending fake mouse moves to windows on show/hide of windows (solves some cases of possible dead locks with the new locking strategy) * the keyboard EventFilter switches the current workspace asynchrnously from the Desktop thread (another source of possible deadlocks) * the "reader is trying to become writer" check in MultiLocker is only used in DEBUG mode now As a summary: It would be nice if ServerWindow used a readlock for all messages it processes itself, and forwards all messages for which it needs a write lock to the Desktop thread. All cases where either the Desktop or the ServerWindow mess with the EventDispatcher are possible sources of deadlocks. This is solved right now by making sure that the lock is released before using the EventDispatcher. I have not observed any deadlocks while switching workspaces and launching many apps anymore, neither crashes. But I have not tested extensively except for in the test environment. That being said, I could reproduce the problems on first try before in Haiku. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22410 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
72c9d31e |
|
11-Sep-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* transmit correct type in BView::BeginRectTracking() * put message codes for Begin/EndRectTracking() into giant switch... not actually implemented though git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22220 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c5c3b078 |
|
22-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* clarified comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22036 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7e1df75 |
|
16-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* get rid of RGBColor usage where it is not needed, this simplified many things, possibly making them a little faster too * mess with decorator button size calculation to make the whole layout scale more agreeable with the font size (no more fixed offsets/insets), but it is work in progress * DefaultDecorator no longer allocated the border color array, it is part of the object now * small memory footprint optimizations in ViewLayer, Decorator and WindowLayer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22003 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
253d42a6 |
|
14-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented SetClipping op, but it's not working yet (looks like it's never written into the data stream) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21947 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e503a70 |
|
14-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Also set the font properties for BPictures. Some of them, at least. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21938 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37033892 |
|
14-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented SetPattern op. Reduced the buffer size to 4096 again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38daa5cd |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Also upload/download subpictures git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21926 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
690c7474 |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented BPicture's SetPenLocation() op, also nested AppendToPicture() (but still doesn't work :( ). Moved some functions around in PictureDataWriter.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
edac8f06 |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented drawing of pictures inside pictures. Thanks to Marc Flerackers for clarifying some things. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21920 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ed5de868 |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented the following BPicture ops: fill region, stroke/fill arc, stroke/fill polygon, stroke/fill bezier. some work towards drawing of nested pictures. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21918 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5a626bd9 |
|
12-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* removed code duplication in BView::check_lock() and do_owner_check(), * revised use of check_lock() versus do_owner_check() (do_owner_check() is supposed to drop you into the debugger if there is no owner, otherwise it behaves like check_lock()) * ConstrainClippingRegion() no longer transmits empty regions to the app_server. I would have thought that my fix to ServerLink would have solved the issue I was investigating, but only this commit fixes it. Maybe the last commit would have fixed it if I did a "jam clean"... * WonderBrush draws the icons again on mouse over... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21910 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8c1a98d8 |
|
12-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* there was a complete mixup of "drawing origin" and "scrolling offset" in the BView implementation (client side) * introduced some private methods for _Convert*(BPoint*) methods which avoid doing the check_lock() thing in the recursion, also Origin() would likely have communicated with the app_server all the time, since the origin bit was needlessly invalidated, so some speedup should be achieved * this should fix ticket #98 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21900 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe914c98 |
|
09-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added a version of SetFont() that takes a DrawState* to DrawingEngine and Painter, that is needed to be able to tell if anti-aliasing is to be used, since the flags in the font can be overruled by the flags in the view... * fixes aliased fonts reliably, tested with FontDemo git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21869 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bbc42477 |
|
08-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* convert shape coordinates to screen at the time of playing the picture (fixes ticket #1367, stefano I thought you knew that I meant this in an earlier mail) * move_pen_by() looked wrong in ServerPicture, have not tested though * make sure the pen location is adjusted after stroke_line() and draw_string() in ServerPicture * set_pen_location() does not need to update the Painter drawing state * ServerWindow AS_LAYER_SET_PEN_SIZE needs to set the resulting pen size of the drawing state stack, not the one set on the current state * ServerWindow AS_LAYER_GET_PEN_SIZE needs to return the current state's size, not the result of the stack * small cleanups git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21855 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90ad4da3 |
|
06-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* small cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21842 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e9d1494d |
|
06-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Nevermind Stephan, in the end I found it out. Fixed shape drawing inside a BPicture, though I'm not yet sure if I should do it there on when playing the picture... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21836 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1f8ea6a9 |
|
06-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Set the origin before playing the picture, so DrawPicture() with an offset works correctly. Drawing a BShape using a BPicture is currently broken. Stephan, any insight on what it's changed about shape drawing ? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21835 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2671c0bf |
|
04-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Since AS_DRAW_STRING doesn't attach the escapement delta anymore, drawing a string inside a picture and then playing that picture triggered a debugger call. Fixed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21823 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
94a48ae2 |
|
04-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* use a different message code for DrawString() with escapement delta and DrawString() without * this change also includes adding the penlocation to the shape to-screem coordinate conversion (temporarily breaks shape rendering, will be fixed in next commit) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21821 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38287e02 |
|
22-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* completed my changes to DrawState handling, the current DrawingState of the active ViewLayer is now always mirrored in the Painter instance of a ServerWindow, so that it doesn't need to be synced on every drawing command, this was previously incomplete for font handling * removed the DrawState parameter from all the DrawingEngine functions * adjusted ServerWindow and ServerPicture accordingly * made sure that string related functions used by non-drawing related parts (ServerApp, Decorator) don't interfere with the current drawing state * moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage, it is actually a window message and doesn't require fCurrentLayer to be valid * fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was deleted by client request which happened to be fCurrentLayer (I am now handling it so that the parent becomes the current layer, could be wrong) * AGGTextRenderer is no longer using it's own scanline, which should save a few bytes RAM, the Painter already had such an object * StringWidth() in AGGTextRenderer is now taking the escapement_delta into account * Painter::StrokeLine() doesn't need to check the clipping as much, since that is already done in DrawingEngine * if a ServerWindow message is not handled because fCurrentLayer is NULL, a reply is sent in case the messages needs it (client window could freeze otherwise, waiting for the reply for ever) * removed unused AS_SET_FONT and AS_SET_FONT_SIZE * added automatic RGBColor -> rgb_color conversion to RGBColor.h * minor cleanup for 80 char/line limit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
582da173 |
|
19-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* complete reimplementation of BRegion and it's backend I "ported" the region implementation from XOrg to work on BRegion data. This resulted in pretty much the same code structure as before, with RegionSupport.cpp containing the messy details. Only now it _is_ really messy from a code beauty point of view. I didn't exactly feel like cleaning it up right now... but I guess I will have to. So what does this mean - our BRegion implementation was very slow (no offense!), and on top of that it scaled very badly with more and more rects. The new implementation seems to be on par with the very fast R5 implementation and the data looks exactly the same too. BRegion is very performance critical for the app_server, and I cannot wait to try this on my slow computer... Some changes are noteworthy: The right and bottom coordinates of BRegion internal data are now exclusive! I inherited that from the XOrg implementation and didn't feel like changing the code, seeing it is probably tested quite well. The conversion is handled transparently. Secondly, constructing a BRegion with just one rect is not invoking malloc anymore for the member data, this makes it much more efficient to use temporary BRegions with just one rect, both externally and internally in the BRegion implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21665 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6369b909 |
|
18-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* fix comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41b487e4 |
|
18-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* accidentally left the profiling on in last commit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21647 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
67f3be42 |
|
17-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added ProfileMessageSupport.h/cpp to translate server message codes to a string * fixed profiling of message processsing in ServerWindow (didn't take batch processing into account) * accelerated ViewLayer::RebuildClipping() by a factor of two by avoiding BRegion::Exclude(clipping_rect) for each child, and instead building one region with all children, and excluding that. RebuildClipping() is quite a common operation and is quite slow for views with many children git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21646 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0896fce5 |
|
18-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* since every window has it's own Painter instance, the drawing state does not need to be "set" (transfered from the "current" view to the painter) for each singly drawing command. Now, painter is synchronized whenever the client changes the drawing state of the current view, or when the current view changes. * the screen offset of the current view has become part of the Painter state, in the PatternHandler. This fixes a bug in which moving or scrolling a view which used patterns for drawing, resulted in visual glitches (seams in the pattern). NOTE: this patch is a bit work in progress, most importantly, it is not complete with regards to text rendering. More specifically, the server applications and other parts of the appserver might set a font on the Painter and this might mess up the synchronization. But this happens on the Desktop's Painter instance (only?), and so it is not a problem. I did observe some drawing bugs with this patch though, so bug reports are welcome, particularily how to reproduce these bugs reliably. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21643 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0d478eeb |
|
07-May-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Avoid sending an extra (useless) B_DIRECT_MODIFY notification to the client, when the connection is stopped. But cache the "reason" of the notification, and join it with the next one, when B_DIRECT_START is notified. Experimental, could be reverted. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21063 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ff32e515 |
|
03-May-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerPicture now uses a BPositionIO object as internal storage instead of BMallocIO. Added an additional constructor to handle a file. This is in preparation of implementing BView::SetDiskMode(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20996 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2617d83e |
|
26-Jan-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Damn, forgot to include these two in r19968. This should fix the build again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19973 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ccf137b8 |
|
06-Jan-2007 |
Axel Dörfler <axeld@pinc-software.de> |
BWindow::IsFront() was implemented incorrectly - we actually need to query the app_server for this; added a new AS_IS_FRONT_WINDOW command for this. For example, clicking on the menu bar to bring windows to front in FFM mode does work now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19725 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2cfe93e7 |
|
04-Dec-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* renamed HWInterface locking to LockParallelAccess() and LockExclusiveAccess() (meaning more or less access to the frame buffer) * extracted the AGGTextRenderer to be a global instance used by each Painter instance (currently, it is thread safe because of the global font lock, so there is some work left in this regard) * gave every ServerWindow it's own DrawingEngine instance, this is work in progress. So far, there doesn't seem to be a regression, but less fighting over the exclusive access to the frame buffer, now each ServerWindow thread can draw in parallel. There is room for improvement, plus I think I'm leaking the DrawingEngine... * changed the locking for the software cursor. ShowSoftwareCursor() can only be called if HideSoftwareCursor(BRect) returned true, or if you called the generic HideSoftwareCursor(), since it needs to keep the cursor lock and unlocks in Show...! * some clean up and renaming in Decorator and friends * moved PatternHandler.h to live along with the .cpp git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19427 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
420fe80e |
|
12-Nov-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved picture data writing to its own class, thus simplifying code in various places. Implemented SetLineMode op for BPicture, fixed shape drawing (I accidentally broke it in the previous commit). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19264 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab757c7a |
|
09-Nov-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
our BPicture stream format wasn't compatible with R5 one. Hopefully fixed all the problems. Reported by Marc Flerackers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8f387530 |
|
31-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ReadString() actually allocates memory... fixed that and another memory leak git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34633cab |
|
30-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
patch by Lucasz Zemczak which adds BShape drawing support to BPicture. Actually we should use a ShapeIterator subclass (like Lucasz did here) in Painter too instead of having duplicating code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19153 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7430a5be |
|
26-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Removed the superfluous (doubled) AS_MOVEPENTO as well. Also removed those old constants from the ServerProtocol.h header. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19132 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0e683ed9 |
|
26-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerPicture was using the wrong StrokeRect call (the one which ignored the pen size). Added scale handling. Removed duplicated AS_SETPENSIZE handler in ServerWindow git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19130 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
467dbaa9 |
|
23-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Fill/StrokeArc support for BPicture, courtesy of Lucasz Zemczak git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19103 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c40a637 |
|
23-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
added part of a patch by Lukasz Zemczak which adds ellipse filling/stroking support to BPictures. Thank you!" git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19102 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3a44e6e3 |
|
19-Jun-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed a big race condition in the server code: * ServerApp was accessing ServerWindow::Window() (while having the app window lock held), but in fact, there was no guarantee it already existed, or was added to the Desktop. * Therefore, the Window() semantics have changed to only return a window in case the window exists *and* has been added to the desktop (the latter constraint might be lifted again, though). Therefore, it doesn't work for offscreen windows, and should not be used within ServerWindow code anymore. * This fixes bug #686 and maybe others as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
66e114c4 |
|
12-Jun-2006 |
Axel Dörfler <axeld@pinc-software.de> |
BView::SetEventMask() had no effect when called before AttachedToWindow(). This also fixes bug #620. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17802 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82584ab9 |
|
09-Jun-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented AS_DIRECT_WINDOW_SET_FULLSCREEN so that it sets kWindowScreenFeel when enabled, and B_NORMAL_WINDOW_FEEL when disabled. IOW when enabled, no other windows can interfere. * Therefore, it's no longer necessary to have the screen_blanker window use kWindowScreenFeel - it will set its window to full screen as long as the blanker runs. * Added a AS_APP_CRASHED notification in the app_server that will remove all kWindowScreenFeels from the windows of the crashed app. * This is now used by the debugger to ensure that the debugger alert will be visible. * Factored out a DesktopLink class out of the BRoster::_ActivateApp() method. This class is now also used in the new BRoster::_ApplicationCrashed() method as used in the debug_server (via BRoster::Private). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17785 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b30e9021 |
|
24-May-2006 |
Stephan Aßmus <superstippi@gmx.de> |
added a way for BWindow to store and restore arbitrary decor settings, currently those include only the tab location git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17583 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7dc5469 |
|
24-May-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
The drawstate is now synched when the recording of a BPicture starts. Some reordering of the function calls, implemented B_PIC_SET_BLENDING_MODE, some other cleanups git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17580 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
da09cca4 |
|
04-May-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed the way the overlay_view|window is maintained - it's now in Overlay. * The overlay options as part of BView::SetViewOverlay() are now passed over to the graphics driver - looks like the color key stuff cannot be turned off (at least not via the Be API). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17323 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe19cff6 |
|
04-May-2006 |
Axel Dörfler <axeld@pinc-software.de> |
No longer invalidates the view when an overlay bitmap is updated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17319 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d96389c1 |
|
03-May-2006 |
Stephan Aßmus <superstippi@gmx.de> |
fixed BView::Stroke/FillPolygon(), the bounds were not converted to screen and the clipping decision was based on it git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17310 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9ac741b2 |
|
29-Apr-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* small cleanup in AS_DIRECT_WINDOW_GET_SYNC_DATA * added handling of AS_DIRECT_WINDOW_SET_FULLSCREEN (returns B_ERROR for now) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
621a8324 |
|
23-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed ViewAux.h header to ViewPrivate.h. * Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17210 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0ac013e6 |
|
23-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Some refactoring: renamed OverlayCookie to Overlay and put it in its own source file. * An overlay is now also hidden in case its is removed from the window. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17209 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7c7883b |
|
23-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* We now have working video overlay - even though the overlay_token handling is currently broken, mode switches probably fail or result in sudden death (didn't try) it's good enough for Radeon cards and VLC (might work with others as well). * Implemented follow modes for view bitmaps (wasn't taken into account at all before). * Switched to a darker overlay color for now (dunno what exactly makes a good candidate there, but this one is good enough for now). * Added TODO about a race condition in AS_LAYER_SET_VIEW_BITMAP. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17208 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f33610f8 |
|
21-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed number 1 (or the only one? ;-)) crashing bug #306 in the app_server: Since ServerWindow removed itself from its ServerApp in _PrepareQuit(), it could happen quite easily that the ServerApp was deleted before the ServerWindow - and since deleting WindowLayer as part of that referenced the ServerApp, it crashed. Now, adding/removing is both done by the ServerWindow in Init() respectively the destructor. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17198 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6aa4743b |
|
16-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Added TODO comments about some race conditions in the code because of unlocking the desktop. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17139 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39cdae74 |
|
10-Apr-2006 |
Michael Lotz <mmlr@mlotz.ch> |
First steps at getting drag & drop to work properly. Simple drag & drop (draging Tracker items) should work now. Not sure about the negotiated version (with mimetype exchange). Fixed left behind drag bitmaps. Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17058 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39c9925f |
|
07-Apr-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* implemented a BRegion pool per WindowLayer which is supposed to cut down on BRegion related allocations, cannot really tell if it speeds things up * used the new BRegion pool in WindowLayer and ViewLayer whereever a BRegion was used on the stack * fixed the debugging stuff in MultiLocker - it will get you into the debugger if you - try to nest read locks - try to write lock when your are a reader already - don't match up nested locks when your a writer -> but only if you #define DEBUG 1 in the .cpp, is off by default now * went over WindowLayer, ServerWindow, Desktop and a few other places and fixed the locking for use with the MultiLocker, the "a reader can not become a writer" is especially tricky, feel free to review the changes * activated the MultiLocker, I tested this quite a bit, if there are problems simply turn on DEBUG and you should drop into the debugger right where the problem is... hope all is good git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17046 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
903936bc |
|
03-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Added the scrolling offset when a view is created. This lightens the problem in bug #98 a bit, but doesn't completely fix it; you still don't see any items in that list on the switch, but they now appear again when you scroll around there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16997 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
600fbd78 |
|
01-Apr-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* BView::FillRegion() sends the BRegion data instead of decomposing it and rebuilding it on the server side (that causes a huge speed up for regions containing many rects) * There is a method in ServerLink that could have been used, but I actually needed to add the direct BRegion support to LinkReceiver * added LinkReceiver as a friend to BRegion class * ServerApp and ServerWindow keep the CursorManager locked after they have retrieved a cursor until they have called Acquire() on the cursor. (Axel: what good is using atomic* stuff in Acquire() and Release() if we have to protect this by a lock anyways?) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16957 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38a6ea1d |
|
18-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the old AS_AREA_MESSAGE stuff - it's currently not used at all, and even though we might need something similar, we can't use it (since it was based on BGet++). * Removed BGet++, it's not used anymore. * Removed ServerMemIO class, was never used. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16830 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
420379ae |
|
15-Mar-2006 |
Stephan Aßmus <superstippi@gmx.de> |
I should have finally fixed those app_server crashes in HWInterface::_DrawCursor(). Axel, even though we understood the problem, we didn't really fix it back then: When the sync flag was set to true in BView::SetViewCursor(), the link was only flushed, which means that the function still returned before the ServerWindow thread processed the message. This means that the race condition (the cursor being immediately deleted after SetViewCursor returns, which might be processed in ServerApp thread before the SetViewCursor request in ServerWindow thread) still existed. I changed SetViewCursor now to do a real sync (wait for the ServerWindow reply) before returning. The alternative would be to set the fPendingViewCursor flag in either case. Anyhow, I could reproduce the error quite reliably before this change, and now it is gone... here is to hoping! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16809 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f025cd8b |
|
12-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
While the user resizes a window, programmatical resize operations are ignored, likewise, while the user moves a window around, programmatical moves are ignored as well. This fixes bug #264. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16743 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bdbd1cb4 |
|
11-Mar-2006 |
Michael Lotz <mmlr@mlotz.ch> |
Removing the USING_MESSAGE4 define. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16710 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1e766d46 |
|
10-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Moved the ViewUnderMouse() functionality from the EventDispatcher to the Desktop; this saves us some locking headaches and solves a possible deadlock in ServerApp::Activate(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16688 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
73bc0d62 |
|
10-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed a possible locking bug in Desktop::WindowAction(). * Cleaned up locking a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16686 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9ce4e5b4 |
|
09-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* The ServerApp now has the concept of a current cursor: this is either the cursor of the view currently under the mouse, or the application cursor, if the view doesn't have its own cursor (ie. it will no longer set the wrong cursor in certain situations). * AS_DELETE_CURSOR has no longer an influence on the application cursor, as this grabs a ref for its own use - this fixes bug #275. * AS_SET_CURSOR no longer sets the cursor when the application is not active. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16678 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e89843e |
|
08-Mar-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* when the client constrained the clipping on a view, the server used to take an empty region as an indication to remove the clipping, but on R5, this is actually valid... this patch fixes the problem * the ViewState::clipping_region is now consistently used to memorize the user defined clipping of the view state instead of being sometimes used to cache the current view clipping git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16656 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f19839c2 |
|
01-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Some groundwork for overlay support. If someone wants to finish this, feel free to continue (it would be nice to be notified before, though, in case I get to it again in the next weeks). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16561 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bfe69873 |
|
28-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented private do_window_action() function, used by the Deskbar to bring windows to front (or minimize them). * Desktop::ActivateWindow() no longer crashes in case the window to be activated is not on the current workspace - instead, it doesn't do anything at this point. IOW it doesn't handle workspace activation at all, yet. * Renamed ServerWindow::GetWindowLayer() to ServerWindow::Window(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16550 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9b5a1835 |
|
27-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed BWindow::Show()/Hide(): fShowLevel was changed and checked without holding the window lock. * Run() is now called before creating the window in the app_server when Show() is called for the first time (which is now checked with fRunCalled instead of some thread arithmetics). * Minimize() now sends the show level of a window to the app_server, so that it can actually determine if minimizing or maximizing the window should have any effect. This fixes bug #225. * fShowLevel's meaning is now reversed; when it's above zero, it now means the window is shown (before, a level less than 1 meant shown). This definitely better fits its name :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16536 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f8d8085d |
|
27-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Quitting a non-hidden window no longer deadlocks the app_server (_Hide() was called without a lock). * Renamed private methods to start with the '_' symbol. * Removed superfluous SetLayer[Font]State() and moved back those one-liners into their AS_* handlers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16535 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
588259b6 |
|
26-Feb-2006 |
Stephan Aßmus <superstippi@gmx.de> |
various changes to handling custom cursors: * all cursors owned by a team are visually different, or (iaw) an already existing cursor is reused when it is set by the client again * changed various occurances of cursor data from "int8*" to "uint8*" * ServerCursors also remember the R5 data from which they were created * the reference counting and destruction of ServerCursors changed: The cursor knows it is attached to a CursorManager and one can simply use ServerCursor::Acquire() and Release() and the reference counting and everything is being taken care of * destroying a ViewLayer will now correctly release a set ServerCursor * fixed a race condition when setting a cursor through BView::SetViewCursor(): If the client code looks like this: BCursor cursor(cursorData); someView->SetViewCursor(&cursor, false); there is a relatively high chance the BCursor destructor told the ServerApp thread to destroy the cursor before the ServerWindow thread got to "acquire" the cursor for use by the view layer. The very same problem is likely the reason that SetViewCursor works to unreliably on R5, even when the "sync" flag is set to "true" (although it should theoretically work in that case). all these fixes make WonderBrush work fine again with the new support of custom cursors.... coded by axeld and myself (the joys of pair programming :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
45a93d5d |
|
16-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Fix for a bug I introduced with the last change: views were no longer removed at all! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16440 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
62b5f42b |
|
16-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed view deletion: _CreateSelf() and RemoveSelf() are now symmetrical, removing all those error output from the app_server. * AS_LAYER_DELETE now gets a token, no longer frightening choice of parent. * Removed locking in RemoveChild(); it has to be called locked now. * Removed AS_LAYER_DELETE_ROOT as it's no longer needed. * Removed support from BView for being PR3 compatible. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16424 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1afee826 |
|
11-Feb-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Even more BPicture support. We should have the basic to draw every picture used in our tree (for example, Tracker's navigator's buttons) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16350 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f06f67c5 |
|
10-Feb-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented more BPicture related stuff. With this change, at least buttons can be drawn in pictures almost perfectly git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16344 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f877af82 |
|
09-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented private functions do_minimize_team(), and do_bring_to_front_team() used by the Deskbar (for "Hide All" and "Show All"). The latter doesn't work correctly yet, though, it just maximizes all windows of that application. * Added a TODO to ServerWindow AS_MINIMIZE_WINDOW on how to make it work correctly. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
995ab7b3 |
|
09-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
The server now differentiates between hidden and minimized - that concept somehow got lost, before. It might not work 100% correctly yet, but it works good enough to hide the Tracker status window from the Deskbar, and thus, fixing bug #133. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16314 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d365e203 |
|
09-Feb-2006 |
Stephan Aßmus <superstippi@gmx.de> |
small cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16310 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb160ab5 |
|
06-Feb-2006 |
Stephan Aßmus <superstippi@gmx.de> |
change the way the _UPDATE_ message is used: it is now a mere notification that some views need updating. The BWindow will then pull data from the server which views exactly and the update rect. Therefor, the server can append regions to the current update session even if an _UPDATE_ message has already been sent to the client. If multiple views are invalidated in the client, only one update session will be triggered instead of two with the old implementation. Some drawing defects can be observed, but I know how to reproduce them so I hope to fix them soon. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16245 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aa1f5437 |
|
05-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Some work on cursors: * Fixed a myriad of bugs all over the place, ranging from locking errors to deleting objects that don't belong to the one deleting them (hello HWInterface!) * Almost all ServerWindow cursor stuff was broken; I've replaced all commands to set a cursor with a single one AS_SET_CURSOR. * Renamed some cursor commands. * Changed the (broken) way ServerApp::fAppCursor was maintained - the application cursor is now NULL as long as possible. * Removed superfluous ServerCursor app signature stuff. * The BApplication will no longer duplicate the default/I-beam cursors, it will just reuse the default ones which now have fixed tokens. * As a result, changing the cursor is now working as expected, closing bug #102. * Rewrote Cursor.h, renamed private members to match our style guide. * Minor cleanup. What's still left to be done is reference counting the cursor objects to make them work right and reliable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16237 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ff3abf4d |
|
02-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Started a naive implementation of BView::SetViewCursor() server-side - doesn't work though, as HWInterface can only draw B_RGB32 cursors... * More build fixes for libbe_test target - it defines __HAIKU__ as well, now git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16211 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
92071609 |
|
18-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
extended support for BPicture, still not working git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16006 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af675e2c |
|
18-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
implemented some more stuff for bpicture support. In theory StrokeLine, Stroke/FillRect should work but in practice they don't. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16005 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7afc7c50 |
|
08-Jan-2006 |
Stephan Aßmus <superstippi@gmx.de> |
ServerFont: * fixed weird pointer conversion in SetStyle() * fixed a potential mix up in operator=() in case the other ServerFont has fStyle == NULL ServerWindow: * the WindowLayer fTopLayer cannot be deleted by client request, just for safety reasons * the link is flushed if there is no drawing engine, but this case is theoretical only * deleting the ServerWindow object syncs with the client, so that when BBitmaps are deleted, they can be sure there are no pending messages (which would be executed in a nother thread) * there is no timeout anymore when sending messages to the client, which made absolutely no sense AGGTextRenderer: * renamed fFontManager to fFontCache, because that's what it really is * fLastFamilyAndStyle defaulted to the system plain font and therefor that font was never loaded when the font never changed meanwhile DrawingMode: * I'm not quite sure but I think there was the potential of a division by zero, at least I had crashes with "divide error" HWInterface: * fix update when the cursor shape changed in double buffered mode ViewLayer: * since the top layer is never really deleted before its time has come, it is not necessary to set it to NULL in the ViewLayer destructor ViewLayer/WindowLayer: * added a function to collect the view tokens that are affected by an update session EventDispatcher: * use the importance of the message for the timeout in _SendMessage() * drop mouse moved events in the server if we're lagging behind more than 5 ms (Axel, maybe review) View: * there were some problems with the locking of the BWindow looper in RemoveSelf(), since this is called from the window destructor, also of BWindows from BBitmaps, which have never been run (this might need review), at least I seem to have solved the crashing problems introduced by actually deleting the view hirarchy in the BWindow destructor * fixed _Draw() for being used non-recursively, temporarily disabled DrawAfterChildren, which didn't work yet anyways (because views cannot draw over children in the server yet) Window: * small cleanup when deleting shortcuts * sync with the server when having send AS_DELETE_WINDOW (see ServerWindow above) * fixed locking in Begin/EndViewTransaction() * removed folding of _UPDATE_ messages, since there is only one ever in the queue * set the fInTransaction flag during an update, I plan to use this in BView later to flush the link when drawing outside of an update * BView::_Draw() is now called by view token, this gives the next leap forward in speed, the overhead because of drawing clean views was considerable git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8f3f25cf |
|
03-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Merged the four AS_LAYER_DRAW_BITMAP handlers into just one handler git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15842 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee6bcb7d |
|
04-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Initial support for recording (some, for now) drawing events into a BPicture git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15838 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cba9e9ec |
|
03-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved picture handlers to DispatchViewMessage, otherwise they are never called as the view can be hidden git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15818 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1c33148d |
|
02-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented handlers needed for Begin/EndPicture, and a handler for DrawPicture(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15816 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a5e82db0 |
|
02-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Commented out AS_LAYER_***_PICTURE handlers, as they don't do anything and can block the client git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15792 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4c66abd6 |
|
29-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented basic server side BView::SetViewBitmap() support. Things like B_TILE_BITMAP or even the resizing mode isn't done yet, though. See TODOs. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15720 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93052717 |
|
29-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed AS_LAYER_GET_{DRAW|BLEND}_MODE to *_{DRAWING|BLENDING}_MODE. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cd2b129d |
|
29-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
* removed superflous LockSingleWindow() from WindowLayer::MoveBy() and ResizeBy() * WindowLayer::SetSizeLimits() needs to be called with the AllWindows lock held * I was observing weird behaviour with "unclickable" windows that I might have fixed by explicitly excluding invisible windows from Desktop::WindowAt(), there might be something wrong with the "current" window list though, Axel would know * finally found the problem with "delayed background clearing" * enabled delayed background clearing and removed unnecessary code. It should be more efficient, since it clears larger areas at once, and it solves the problem of views unable to draw into regions that are pending for another update - among other things, updates in resizing windows are more fluent, especially for B_FULL_UPDATE_ON_RESIZE views. "Cut off" scroll bars should no longer appear when the view being scrolled takes too long to redraw. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d909e25 |
|
25-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
first simplistic implementation of drag bitmaps, drawing modes need more work, drawing text into offscreen bitmaps seems to be broken for some weird reason, B_OP_COPY actually copies the alpha value of the color as well git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15671 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf434f8e |
|
23-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a07317fc |
|
20-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
correctly figure out bits per pixel in the direct window info code, this fixes direct windows in the Accelerant test environment, added a note about how the all windows lock seems to be grabbed for the entire duration of a client update on R5, which cannot quite be the truth, because apps crashing in BView::Draw() would take lock up the app_server, added skipping the processing of drawing messages if the current drawing region is empty, added currently disabled code for clearing the view right before the client draws it... doesn't work for some reason unfortunately git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15625 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1bcc09f2 |
|
19-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
small improvements here and there git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15594 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
54527a9a |
|
12-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The ServerWindow now keeps the desktop (read) lock for up to 70 messages at once. This should make drawing a bit smoother. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15515 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58290b7b |
|
12-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
WindowLayer::ProcessDirtyRegions() no longer deadlock in case it can't send the AS_REDRAW message. The AS_REDRAW message is now only used as a notifier - it's arrival is not critical anymore, IOW it's simply dropped when the queue is full. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
61fed21b |
|
12-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed Write[Un]lockWindows() to [Un]lockAllWindows(), and Read[Un]lockWindows() to [Un]lockSingleWindow(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15509 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bff84e78 |
|
11-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
This enables BDirectWindow support again. It also fixed a bug in the old code - the handshake semaphores were created acquirable, causing the BDirectWindow::DirectDaemonFunc() to call DirectConnected() with an uninitialized buffer and way too early - this probably didn't show up before since it called it before the BDirectWindow constructor ran through, so that DirectConnected() would still point to the BDirectWindow version, and not to the implemented one of its subclass... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15505 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
71b55088 |
|
10-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Moved dw_sync_data to a private header DirectWindowPrivate.h and renamed it to direct_window_sync_data. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab6a6bed |
|
10-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed direct window commands * Removed unused cruft from ServerProtocol.h git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15468 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fc70d6db |
|
10-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed AS_LAYER_INVAL_{REGION|RECT} to *_INVALIDATE_*. * Removed unused AS_LAYER_INVALIDATE. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15467 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ea966ee |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some cleanup, removed some remaining RootLayer references. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15453 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ccfb624b |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34227d2c |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A couple of changes related to modal and floating windows: * Desktop::SetWindowFeel() is now working, but doesn't respect the window position yet (ie. floating windows would have to be moved to front). * WindowLayer::Workspaces() now always reflects exactly the lists it's in (at least after Desktop::AddWindow() has been called). WindowList::AddWindow() and RemoveWindow() now update this flag to be correct at all times. * Fixed Desktop::_ChangeWindowWorkspaces() to not set the current workspace for windows that are not on the current workspace, and vice versa. It also would hide windows that were already hidden, and tried to show windows that actually were hidden (did no other harm than triggering a rebuild of the global clipping). * Floating windows now work as expected. * Desktop::SetFocusWindow() won't give a window focus that has a modal. * Renamed OnWorkspace() to InWorkspace(). * ServerApp::InWorkspace() now works correctly, added ServerApp::Workspaces() as well. * WindowLayer::SubsetWorkspaces() returns the workspaces mask this modal or floating window should be in. * New window flag B_SAME_POSITION_IN_ALL_WORKSPACES should work as well. * Floating and modal windows now have always set this flag. * Added a WindowList::HasWindow() method. * Desktop windows (windows with the desktop feel) can now have focus again (I accidently broke that before). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15434 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
939fb407 |
|
08-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fix scrolling of BViews that rely on app_server painting the background, remove a forgotten debug output in ViewLayer, reimplemented setting the window title during runtime, fix Decorator redraw on pressing buttons - though I was lazy on that one... it works, but as the TODOs say, it would be better integrated directly in the Decorator class than being handled by WindowLayer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15429 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e83820ed |
|
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
|
#
c072e9f1 |
|
02-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* BWindow::AddToSubset()/RemoveFromSubset() no longer send their team ID; this is known by the server, anyway. * B_MODAL_SUBSET_WINDOW_FEEL now also works as expected. * Renamed AS_REM_FROM_SUBSET to AS_REMOVE_FROM_SUBSET. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15285 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
42e1c25d |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
"Oops, I did it again": AS_SET_FLAGS returned B_BAD_VALUE on valid flags and B_OK on invalid. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aecd5eef |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the check for a valid feel was wrong, reported by Michael Lotz. * also followed Michael's suggestion (more or less) and moved the look/feel/flags checks into separate methods. * on construction, invalid look/feel/flags values are now corrected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15269 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
57be2866 |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* when moving/resizing windows on another workspace, the Workspaces window has to be udpated anyway. * some work towards being able to set a window's look/feel/flags on-the-fly. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85096c8a |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some cleanup: * look/feel are now window_look/window_feel instead of int32. * removed the level stuff, I don't think this is needed. * some other minor stuff. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15261 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
19d801a6 |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Moving/resizing is now routed over the desktop as well. This also allows the workspaces layer for these actions, which is now done as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15258 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ed656a3a |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
You must not have RootLayer locked when calling any method from EventDispatcher; just another case of troublesome generic RootLayer locking in ServerWindow (I'm looking forward to get rid of this). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15249 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a631158a |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Reenabled most of the workspaces functionality - the Workspaces window doesn't show any windows, but everything else seems to work fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
15918e4f |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* new windows now get a fake B_MOUSE_MOVED message in case they are opened directly under the mouse cursor. * Added Desktop::ShowWindow() and HideWindow(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15238 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f89b4c9a |
|
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
|
#
27adb969 |
|
28-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Massive RootLayer & Workspace tearing: * workspace switch and subset windows functionality temporarily removed (away with that mess!). * no more RevealWMState() - we now have methods like ActivateWindow() and SendWindowBehind() that do all the work - just a little cleaner and with less overhead. * Workspace is now a pretty passive class - it only stores configurations of the windows and screens. * added an evil work-around for a locking problem (in RootLayer::_SetFocus()). * I'll plan to move pretty much all of the remaining root layer functionality to Desktop - so that the all regions lock is only held in case clipping regions are affected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7b93468 |
|
26-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
SendMessageToClient() now gives a little more info in case sending failed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15174 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fa2c53ed |
|
25-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added very simple and annoying profiling mechanism to ServerWindow's message processing (enabled when PROFILE_MESSAGE_LOOP is defined). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15150 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
67e79bf4 |
|
25-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A message looper can now have a death semaphore, ServerWindow now uses them. ServerApp now waits up to 3 seconds for windows before killing them - it now waits on the death semaphore, and only kills a window if it didn't quit fast enough. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15147 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1863b5b6 |
|
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
|
#
4b813bf2 |
|
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
|
#
5d29bfa5 |
|
24-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved change_winBorder_feel() into GoChangeWinBorderFeel() and removed the former. * Renamed GoChangeWinBorderFeel() to ChangeWinBorderFeel(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15114 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bde8b9c6 |
|
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
|
#
6450b76d |
|
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
|
#
4ceb1e51 |
|
20-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* reverted Adi's premature changes to BWindow and restored _DetermineTarget() and task_looper() again. * removed BMessenger::fPreferred - whenever you had to specify "usePreferred" separately, you don't have to do that anymore - use B_PREFERRED_TOKEN instead. * fixed BTokenSpace::GetToken() semantics: it will no longer touch the "object" argument in case of failure. * Introduced a BWindow::_DistributeMessage() that will be part of the event dispatcher counterpart to the app_server (the other will be _DetermineTarget()). * Made it easier to use Michael's Message4 implementation: just add the following line to your UserBuildConfig: AppendToConfigVar DEFINES : HAIKU_TOP src : USING_MESSAGE4 : global ; * Introduced ServerWindow::HandlerMessenger() and FocusMessenger() - the first will target the client handler, while the other will target the preferred handler of the client looper (usually the view having focus). * Fixed dano message unflattening in the Message4 code. * Changed BMessage::PrintToStream() to no longer use macros in the Message4 implementation. * I hope that's all - it's a huge change, but it's all connected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15046 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b223f780 |
|
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
|
#
55d6d70e |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* EventDispatcher::AddListener() now honors the BView semantics and will only update the options in case the specified eventMask was zero. * Added missing EventDispatcher::RemoveTemporaryTarget(). * Layers setting their event mask are now added to the EventDispatcher. * The RootLayer is no longer contacted for SetEventMask() - it still handles SetMouseEventMask(), tough - as a result, SetEventMask() temporarily doesn't work anymore. * Added Layer::ViewToken() method. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15023 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6b95c59b |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed myRootLayer variable to rootLayer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15019 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fa26723b |
|
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
|
#
f6859878 |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the keyboard events are now using the new EventDispatcher, B_KEYBOARD_EVENTS don't work yet, though, as the dispatcher is not yet notified about those. * no more mouse cursor jumping - the cursor will now start in the middle of the screen; this should be part of the initial input_server handshake, though. * ServerWindow can now return a BMessenger of its client window. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15017 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d8f5950 |
|
17-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some cleanup, mostly GetHWInterface() to HWInterface(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15016 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aabcf639 |
|
16-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
When using "Message4", we don't need to flatten the BMessage into another buffer anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14956 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8f90c77d |
|
15-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
a quick fix for offscreen layers drawing region, ie BitmapDrawing works again git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be05d56c |
|
14-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the app_server now uses a global token space - this should later be changed to have different token spaces depending on the scope of its objects. * removed TokenHandler - we're now using BTokenSpace instead. * removed unused IPoint.cpp - if we ever need it again, it can still easily be resurrected from the dead. * some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a436bab2 |
|
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
|
#
5df853ea |
|
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
|
#
618c515c |
|
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
|
#
d9525baa |
|
13-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Forgot to update Screen.h with the last commit... * Introduced and implemented AS_GET_SCREEN_ID_FROM_WINDOW - it only returns B_MAIN_SCREEN_ID, though. * renamed ServerWindow::fHandlerToken to fClientToken. * The BScreen(BWindow *) constructor now really asks the server for the screen ID. * ServerApp::fWindowList is now a BObjectList. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14910 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf10934e |
|
13-Nov-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Introducing Message4. The changes to the related sources are ifdefed with USING_MESSAGE4 which is defined in Message4.h. To use Message4 the Message4.cpp, Message4.h, MessageUtils4.cpp, MessageUtils4.h and MessagePrivate4.h have to be linked to their counterparts without 4 suffix. Then MessageBody.cpp and MessageField.cpp have to be commented out in the app kit Jamfile and r5_message.cpp has to be added. There remain some bugs to be found. Feel free to change that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14882 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
758b1d0e |
|
12-Nov-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixes that make Haiku build with gcc 4. Mainly out of the following categories: * Missing includes (like <stdlib.h> and <string.h>). * Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so. * Local variables shadowing parameters. * Default parameters in function definitions (as opposed to function declarations). * All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported explicitly from the std:: namespace now. * "new (sometype)[...]" must read "new sometype[...]", even if sometype is something like "const char *". * __FUNCTION__ is no longer a string literal (but a string expression), i.e. 'printf(__FUNCTION__ ": ...\n")' is invalid code. * A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes" is an invalid expression. * "friend class SomeClass" only works when SomeClass is known before. Otherwise the an inner class with that name is considered as friend. gcc 4 is much pickier about scopes. * gcc 4 is generally stricter with respect to type conversions in C. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25922abe |
|
12-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
reduced the directwindow semaphore timeout to half a second. Now we checks for < B_OK in the semaphore acquisition, to handle every error condition git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14860 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b7b3ade |
|
11-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added more or less empty "begin/end transaction" handling in ServerWindow. Right now, only the updates are disabled as a start. I am not sure what else we can do here, but there probably is something :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14855 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dfd5b499 |
|
11-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* last change set window title to "Unnamed Window" if the title was empty - but that's probably not wanted, as a window without a title is perfectly okay. * AS_CREATE_WINDOW will now return a proper error code on failure. * The title read from the link is no longer adopted by the ServerWindow constructor, but copied - while the previous version was a bit faster, this is a lot cleaner. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14851 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
df555388 |
|
10-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Don't look for bugs in other people's code. The bug is in your code. IOW BDirectWindow apps now work fine :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14848 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c5522d81 |
|
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
|
#
0d660a96 |
|
10-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
handle errors when reading from the link, at least for the bigger items, it should be enough to just check the error in the last call to Read(), since previous errors are kept in the Link git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14819 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b97fe88 |
|
09-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
now updates BView::PenLocation() correctly after DrawString(), stuff like DrawChar('a') is working nicely now, for rotated text much better then in BeOS in fact because of subpixel precision in pen location git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14794 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f8e33ed5 |
|
09-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed current pen position, thanks to Stefano for spotting this one, I looked very hard in the same place, but didn't see it :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14787 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8fbbd37f |
|
08-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Added some code for notifying client BDirectWindows that the window was moved or resized. Currently commented because of other problems. Looks like the windows bounds are not changed if a MoveBy() is called before the window is shown. Removed unneeded includes. Small changes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14783 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
02414ebd |
|
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
|
#
0266d3fd |
|
08-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Made ServerWindow::_HandleDirectConnection() a public method. It will be called from WinBorder too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14773 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
971ed3de |
|
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
|
#
d4e4f29a |
|
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
|
#
2c8cfe2d |
|
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
|
#
b574c741 |
|
06-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
opList is uint32 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14733 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac4f06c5 |
|
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
|
#
428ebf6d |
|
04-Nov-2005 |
Jérôme Duval <korli@users.berlios.de> |
myRootLayer can be NULL for offscreen bitmaps, fixes crash on Media preferences git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14711 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e7869c4c |
|
04-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
renamed DisplayDriverPainter to DrawingEngine, removed tons of duplicated code, and - guess what - found some bugs while doing so... but nothing critical. This patch removes the former DisplayDriver API from libappserver.so, which I think breaks Decorator plug-ins for now git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14707 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ed89418 |
|
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
|
#
58468dfe |
|
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
|
#
13cff625 |
|
04-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
cleanup and removable of large portions of code duplication, fCurrentLayer and fCurrentLayer->CurrentState() are checked in _DispatchMessage already, so _DispatchGraphicsMessage() assumes they are valid git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14691 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb24f13b |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The current graphics state of a Layer can now be retrieved by the new CurrentState() method. ServerWindow is now using that method instead of directly accessing a Layer member. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14684 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c2fd7b2 |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed scale calculation. The scaling is still ignored for the drawing coordinations. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aca4f50d |
|
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
|
#
5abd5613 |
|
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
|
#
f3aa24ed |
|
01-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Corrected the clipping region for BDirectWindow. The stripped down Stars demo now works. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14621 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c378a57 |
|
01-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Thanks to latest changes, BDirectWindow now draws something. Though, looks like either the clipping region is wrong, or the app_server overwrites what the BDirectWindow app writes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14610 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
094efed4 |
|
31-Oct-2005 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
restored 14604 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14606 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
051d07f0 |
|
31-Oct-2005 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
no longer free() a title pointer that wasn't malloced, but instead came from the outside (right from the middle of some port link stuff) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14605 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
959a5a68 |
|
31-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Removed global gDesktop variable - there is now an sDesktop variable in AppServer.cpp, but that will go away, too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14590 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac89958f |
|
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
|
#
9f0d28e9 |
|
29-Oct-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Fixed a stupid bug when checking if the window order changed. Added support for BWindow::Activate(false). Added some debug support for Workspace::WMState. Simplified a bit code for sending a window to back. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14563 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
66156adf |
|
24-Oct-2005 |
Adi Oanca <adioanca@nowhere.fake> |
In case SendMessageToClient() fails, it's good to know why git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
da4a68b7 |
|
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
|
#
77e79df0 |
|
12-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Added a comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14363 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dea7a63c |
|
11-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Some changes in _HandleDirectConnection(). Not tested. Could even fix the relative crashing bug. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14358 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1fbd158e |
|
11-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
_HandleDirectConnection() now fills the direct_buffer_info structure. Clipping info is probably wrong. dw_info works, direct_window_test crashes for some reason git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14356 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ef064448 |
|
10-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented basic server side support for BDirectWindow. It doesn't fill the direct_buffer_info struct correctly, it just sends B_DIRECT_START/STOP messages on show/hide for now. Tested with dw_info git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14347 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
88ef6ce8 |
|
06-Oct-2005 |
Adi Oanca <adioanca@nowhere.fake> |
- fixed build for NEW_CLIPPING define - implemented RootLayer::SetActive(WinBorder*). - added support for BWindow::Activate(). I realize now that I only added support for Activate(true). :-D In the next days I will add support for Activate(false). - removed a few cases from ServerWindow as they are not needed. - addapted WinBorder::MouseDown() to work with the new RootLayer::SetActive() implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14318 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2138d632 |
|
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
|
#
ffd509fd |
|
05-Sep-2005 |
Adi Oanca <adioanca@nowhere.fake> |
more code for input events. refractored some code in RootLayer class git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14119 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
144022be |
|
03-Sep-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Started to properly implement support for BView's events mask git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14106 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f2fd1298 |
|
30-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
now uses delta escapement improved GetBoundingBoxesAsString (just for fun, keep in mind we'll use AGGTextRenderer in the end :) ) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14091 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c6a25272 |
|
24-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Split ServerWindow::Quit() into two parts, and moved the generic one to the MessageLooper class - the other part is called from there as virtual _PrepareQuit(). Moved the class documentation to the source file. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89ab121e |
|
23-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Factored a MessageLooper class out of ServerWindow and ServerApp. Could still be improved a bit (Quit() and _MessageLooper() are empty right now). Removed ServerApp::PingTarget(). Hopefully cleared some confusion about ServerApp::fClientLooperPort and fClientToken (previously fHandlerToken), even if it's currently unused. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13807 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39d30137 |
|
18-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A call to SetSizeLimits() can change the window frame, so it's now updated, too (a separate FrameResized() message is sent anyway). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2ca990b8 |
|
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
|
#
3f319b33 |
|
10-Jul-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Some cleanup, some removed typos, some unification, some fixes and some added todos. Most of it related to client-server communication. Apps that rely on BFont stuff should work now (StyledEdit, Fonts, Keymap, Menu, ...). Or should not hang/quit at startup at least. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13625 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39e4b4ad |
|
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
|
#
a5ca645e |
|
07-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
when a Layer or WinBorder is deleted, the RootLayer gets a chance to set some important pointers it keeps arround to NULL. It is not unlikely that this improves stability a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13534 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ed0f438 |
|
06-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
checks rootLayer Pointer, since offscreen windows are not attached to RootLayer. This shouldn't have been a problem though since Offscreen windows were never Show()n git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13515 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
806767ec |
|
06-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
It now deletes its message port (it was previously incorrectly deleted by the client). Now handles it gracefully if someone deletes its message port (it will try to close the client and quit). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c3f99cf |
|
06-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
the clipping in fLayerData is in screen space, so when getting/setting the user defined clipping, we need to convert to/from view space git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13505 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34ce0e42 |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
As it turns out, window_info::type is really the window's "feel". Basic support for the desktop window feel: WinBorder will now resize a window with kDesktopWindowFeel to span over the whole screen. Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13462 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b1246d9 |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed AS_WINDOW_TITLE to AS_SET_WINDOW_TITLE. Fixed handling in ServerWindow as stippi's latest commit broke it. It's now properly done with a separate ServerWindow::SetTitle() method, that will also take care to rename the window's thread. Changed naming the window thread in the app_server to "w:<team>:<title>". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13461 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4902831a |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed the newly introduced hang when a menu item was selected (which was only one of the consequences): a forgotten rootLayer->Lock()... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13458 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6a0a0a80 |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented AS_GET_WINDOW_LIST and AS_GET_WINDOW_INFO. Renamed Desktop::FindWinBorderByServerWindowTokenAndTeamID() to FindWinBorderByClientToken(). Every ServerWindow now gets a server token. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13455 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
359c905c |
|
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
|
#
f5d8fa6e |
|
04-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
AS_LAYER_GET_CLIP_REGION missed a Flush() in case the view was not hidden, and that put apps that used it to sleep (for example, Tracker is using it). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13433 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc1a7f9f |
|
01-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Now prints out a message when the window title should be set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13392 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37fa302a |
|
01-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Also commented some unimplemented message handler to not break the reply mechanism. The ServerWindow did not even have such a mechanism anyway... (it now has). Minor cleanup, replaced some "delete" with "delete[]" where appropriate. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13382 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
24a146d4 |
|
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
|
#
f598d348 |
|
01-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A window thread is now called "w:<title>" instead of just "<title>". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13376 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7596f59 |
|
28-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
AS_LAYER_GET_STATE no longer sends stuff that doesn't belong to the layer's state. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13335 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
80a230b1 |
|
28-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Rewrote the push/pop state and ViewAttr stuff: - it now seems to work finally correctly - renamed ViewAttr to ViewState and put it into the BPrivate namespace - some refactoring (moved some private BView methods to ViewState) - renamed AS_LAYER_MOVETO/RESIZETO to *_TO (note the underscore) - exchanged BView::originX/Y with fParentOffset (BPoint) - divided AS_LAYER_GET_COLORS into separate ones for high/low/view color - BView::SetPattern() now actually works as expected (ie. updates only if necessary) - exchanged the ViewAttr::flags with ViewState::valid_flags which inverses the previous logic (which wasn't even used consistently) - fState was initialized twice (incorrectly by the ViewAttr constructor, and then again correctly by initCachedState()) - now the ViewState constructor does the job alone, but correctly - BView::PushState() no longer resets the state (it did so only locally anyway...) - cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13325 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f97b5cb5 |
|
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
|
#
13029492 |
|
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
|
#
ecf3bc3e |
|
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
|
#
a8782680 |
|
27-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added workaround for current stability problems of the app_server: giant lock, say hello to RootLayer. Adi will probably not like this, but that's definitely only a temporary solution :-) This little fix greatly increases app_server stability under Haiku - ie. menus are working now, the team monitor comes up regularly, etc. - how great is that? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85bd83a7 |
|
27-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
AS_CREATE_WINDOW now also gets the actual frame width and size limits of the window on server side - ie. if the app_server could not create a window of the size requested, BWindow::fFrame will still be correct (and the size limits will mirror actual decorator limits). Renamed fMinWindHeight and friends to fMinHeight and so on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13302 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e3fbc775 |
|
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
|
#
e603410b |
|
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
|
#
3dcb3b07 |
|
23-Jun-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Added some root layer locking in ServerWindow.cpp when accessing the layer tree. Moved HWInterface management out of DisplayDriverPainter and into Desktop. Removed all the directly hardware related functions from DisplayDriver API. They just called the same HWInterface functions. Now DisplayDriver is much cleaner and ready for being attached to a yet to be written BitmapHWInterface. Clean up of the display mode stuff in Screen and the View-/AccelerantHWInterface. Frequency is now regarded on Haiku. AccelerantHWInterface::GetModeList now works before SetMode has been called. Added MultiLocker from the sample code. HWInterface uses it now in preparation to being used from multiple instances of DisplayDriver. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13252 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1b53e8af |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The app_server now cleans up better after a team crashed; not only the application and bitmaps are removed, the team's windows are now removed as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13251 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ce1639b2 |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some more cleanup: - replaced fMsgSender/Receiver with a BPortLink fLink - moved message loop into non-static method _MessageLooper() - renamed Zoom()/Minimize()/Quit()/ScreenModeChanged() to Notify*(), and Quit() to NotfiyQuitRequested() to make more clear what they do (they don't operate on ServerWindow, they just notify its client) - less insane way to init a window: there is no longer the constructor and a separate method Init(); now there is the constructor (which fully sets up the window), InitCheck(), and Run() which runs the window's message loop - moved the quitting stuff into a separate method Quit() and made it callable from other threads. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13247 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8734d03e |
|
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
|
#
a38e46a0 |
|
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
|
#
fcb006dc |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Rewrote how the app_server and ServerApp's quit. As a side effect, the server can now quit instantly. AppServer must no longer call ServerApp's destructor once it's running - it now has to call Quit() in this case. The ServerApp is now destructed in its own thread. Some cleanup (like renaming ServerApp::MonitorThreadID() to Thread()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13238 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2e86adec |
|
22-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented AS_GET_MODE_LIST server side. Fixed broken ViewHWInterface::GetModeList() - it did not correctly write into the allocated memory. Also extended it to be more flexible, has better timing values, and more resolutions. ViewHWInterface::SetMode() will now check if the requested mode is in its list of supported modes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13226 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3df649ec |
|
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
|
#
5fcce1f5 |
|
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
|
#
e0911bbb |
|
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
|
#
83265d84 |
|
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
|
#
53442520 |
|
15-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed a bad bug in the app_server: fCurrentLayer was used to determine to which layer a new one would be added to, but BView::AddChild() would only set this correctly for the current view, ie. all children of the new child were added to the wrong layer in the app_server. Now, AS_LAYER_CREATE sends the parent's token to the server, and the server relies on this to build the layer hierarchy. All of a sudden a lot of hidden views are visible now. I noticed the bug while refactoring the task manager, but a lot of apps were affected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13164 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dd10337f |
|
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
|
#
b81c5513 |
|
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
|
#
e1bc5f2d |
|
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
|
#
75936a02 |
|
07-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
BPortLink now has a FlushWithReply() method itself. BPortLink::AttachString() now accepts a length argument, and will no longer send a terminating null byte; LinkMsgReader::ReadString(), however, will make sure the string read is null terminated. Changed client communication code to use FlushWithReply() instead of Flush() and GetNextReply() - there were many bugs and shortcomings in the code, I hope I've fixed them all. Converted ClientFontList.cpp to our coding style (but not completely, the class members are missing). Some more cleanup - I hope Adi will adopt our coding style one day! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
457820a6 |
|
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
|
#
59345e26 |
|
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
|
#
45ca1c94 |
|
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
|
#
6390df8e |
|
28-May-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Made app_server a static, renamed desktop to gDesktop as it's a global, RootLayer now uses its own fDesktop internal member instead of the global one. Fixed a typo in some commented code (thanks Axel) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12864 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
280d1aac |
|
26-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Tried something, didn't work, some cleanup left. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12845 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c7e8ef8 |
|
26-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed "cl" to fCurrentLayer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12842 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d593ad8f |
|
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
|
#
55d6f1b7 |
|
25-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Many efficiency improvements to text rendering. Moved stuff from Painter into AGGTextRenderer which didn't belong in Painter. AGGTextRenderer now has an embedded transformation, which expresses the font rotation and (in future) shear settings. Removed direct support for BBitmaps from Painter (supposed to draw ServerBitmaps). Tested drawing of bitmaps other than B_RGB32. (only B_CMAP8 and B_GRAY8 so far, but they work). Right now, these colorspaces are supported by on the fly conversion. So every colorspace supported by BBitmap::ImportBits() should work, which are a lot more than the R5 app_server can display. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89d4bfbf |
|
23-May-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Added initial support for BView::SetMouseEventMask(). Buttons appear to be working well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12789 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f513bba |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Font rendering code should be cleaner, maybe a little more efficient and better documented. Rotated text is supported again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12748 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52005fda |
|
19-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Finally fixed Adi's repeatedly mentioned pet peeve: in AS_LAYER_GET_MOUSE_COORDS communication, the port's reply port is no longer sent to the app_server (as it knows where to reply to, anyway). Also made sure the view's looper is locked while getting the coords - I guess BPortLink doesn't like to be written to from two different threads :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9962b67e |
|
19-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
DisplayDriver::DrawBitmap() takes no more region, the clipping is expected to be already set, as with all other drawing functions. Moved bitmap drawing message dispatching in the drawing messages area, where the correct clipping is set too. Moved cases for messages that don't need clipping applied, ie which don't draw anything, into the normal dispatch function. This means SetHighColor() and so on will no longer rebuild the clipping in Painter. Would be interesting to know how much performance this had cost... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12741 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3eaf6323 |
|
17-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
improve smoothnes of arcs rendering in Painter, fix a warning git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12710 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ad6b4804 |
|
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
|
#
d4045331 |
|
14-May-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
some minor cleanups git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12664 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb80e15b |
|
14-May-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerWindow is no more a ServerApp's friend. Some cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12663 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
265db805 |
|
03-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
added a timeout for sending messages down to the client, it keeps app_server from hanging, though of course it doesn't fix the real problem, I have not had time to investigate the messaging, but this work around shows that the hang ups that I was seeing indeed happen in the messaging code git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12557 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9715a3e1 |
|
27-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed BWindow::MoveXX(), BWindow::ResizeXX() and BView::ConvertToScreen() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12491 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
609b4656 |
|
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
|
#
4828a725 |
|
27-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
I'm not 100% sure, but I think I fixed a confusion in sending the current view position and size to the client. Note that BView::originX and BView::originY are poorly named, because they are not the local coordinate system origin, but the offset within the parent at which the view is located. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12484 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db7226db |
|
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
|
#
93a2cfd4 |
|
26-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Correct implementation of BView::CopyBits() in ServerWindow, implementation of CopyRegion in DisplayDriverPainter that sorts the rects topologically depending on direction and does the copy in place, obtaining a speedup of about 250%. TODO: extract the sorting algorithm so that it can be reused for the hardware accelerated version later. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12468 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d53639ce |
|
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
|
#
09997491 |
|
19-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
experimented with BView::CopyBits(), found out how it should work, but didn't do the changes yet for a correct implementation git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12444 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e742e3e1 |
|
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
|
#
38724243 |
|
18-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
moved more old stuff which isn't used anymore git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12439 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d7c2c050 |
|
16-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Big cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12424 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a415a09a |
|
15-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Adi told me a quick fix to get BView::Invalidate() working, it doesn't work correctly yet (invalidates child views as well), but it is a start. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12420 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8770be76 |
|
14-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
convert the invalid rect to the top layer coords, Adi, an update message is only sent when a layer is the top layer in Layer::RequestDraw, I don't know how to fix this, but it would be nice to have BView::Invalidate working. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12398 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d88881f |
|
10-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Added support for setting a window's workspaces from BWindow::SetWorkspaces(). Added a new method in RootLayer to have the new window list, invalidate, set new focus and send activate messages in a single command. Did that because there were many places where the same sequence was executed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12287 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d137bc62 |
|
10-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Removed a friend, a printf and a blank line. :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12280 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f6d87a6 |
|
06-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Removed some commented code of mine as it's no longer needed git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12267 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0cb3fdda |
|
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
|
#
a2bc7be9 |
|
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
|
#
4c6f8b57 |
|
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
|
#
f694c0e3 |
|
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
|
#
65369afd |
|
26-Mar-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Implement AS_LAYER_COPY_BITS. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12066 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f43d1e84 |
|
26-Mar-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Implement AS_LAYER_SET_PATTERN. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12065 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33bbe223 |
|
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
|
#
ce27f9612e78bbb58c62bdc54c02bfc0e5172681 |
|
05-Sep-2015 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implement ClipToPicture inside a BPicture. Not working yet. BView::ClipToPicture doesn't work anymore, when nested inside a BPicture, This happened when its implementation was moved server-side.
|
#
a48ef9e817eccd46437c6748246623ea5cb44e84 |
|
11-Aug-2015 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
AppServer: check for NULL bitmap. Consistently check for NULL the ServerBitmap pointer. There seems to be cases where BView::DragMessage could pass an invalid Bitmap token to app_server. Maybe it's when a client only bitmap is passed, I don't know. Anyway, this is defensive programming, and at least we check for NULL consistently now. This fixes #11681. Note that SuperFreeCell still crashes, but at least app_server doesn't crash.
|
#
442e7caa49ef934eb4c8562e29442fa49775bd46 |
|
04-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Reset current view also when deleting a parent view. The check that was in place only ensured that the current view was reset if the current view itself got deleted. Since deleting views works by token it is possible that a view other than the current view gets deleted. When a parent of the current view was deleted, which also deletes all its children, the current view pointer was not reset and the stale pointer would still be accessed.
|
#
35965e5867c95669d3ab841c7c289bf76ef26b04 |
|
04-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Fix 64 bit build with ServerWindow tracing on.
|
#
eb431663264ef319e72b492801fb867b5d71910b |
|
11-Mar-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
app_server & interface kit: support fill rules. * BView gets SetFillRule/FillRule methods. The fill rule is part of the view state. * The B_NONZERO rule is the default. This is what we implemented before. * The B_EVEN_ODD rule is the other common possibility for this, and we need to support it to help WebKit to render properly.
|
#
c54e7ddb00fdb4c451e58461c0435968e0288834 |
|
26-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Fixed build with tracing enabled.
|
#
99d23e5198ab0b70d47d384ade80bca3c3658a7a |
|
24-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Apply scale to round corner radius.
|
#
a6db6bd40fe3492fd3104dba560f0e3ff61d388d |
|
04-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
Added WIP support for affine transformations to BViews. Everything untested, but compiles, so it must work. The idea is to introduce BAffineTransform additionally to the existing Origin and Scale properties of BViews. One may use it in parallel or as an alternative. Painter in app_server is not yet aware of the additional transformation. It is however already used to transform drawing coordinates. It probably needs to work differently, perhaps only in Painter and AGGTextRenderer.
|
#
77214b5abc6721fed46b997425b716b05169eb10 |
|
03-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Implemented nested clipping paths * The alpha mask is no longer stored with 75% more memory than needed, resolving a TODO. * AlphaMasks are now BReferenceables. * AlphaMasks are transferred to a pushed DrawState. * When an AlphaMask is set on a DrawState, it sets the previous state's mask to the AlphaMask. That one now takes care of updating not only itself, but the previous mask as well (which works recursively). * In AlphaMask::Generate(), a combination happens with the previous state's mask, which again works recursively in case the previous mask also needs to be updated. This step is combined with extracting the alpha channel from the UtilityBitmap used to play the ServerPicture. * Fixed some out of bounds access to memory in the "outside" case in agg_clipped_alpha_mask.h. This happened when the requested region was both before and after where the mask has data.
|
#
6a6060d8fe894ba35fb21c274a5c6570acdbb9fd |
|
01-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
ServerWindow: Fix converting the clip picture origin The current view state is already used for the picture playback, the remaining conversion needs to take into account screen location and scrolling offset of the view. This may need further investigation: a) When is this updated? It needs to be whenever a View changes screen location, size or scroll offset, which may not be the times when this method is called. b) I am not sure if the scrolling offset is indeed part of this conversion...
|
#
ad17bccf31f7fd7c9538a2915dff7314b077fc3c |
|
28-Jan-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Implemented caching and updating the alpha mask.
|
#
215119a1e73029a7165a1c01dfa3ceb4a90d44bf |
|
28-Jan-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Move AlphaMask management into DrawState. * Give DrawState a real copy constructor, handle deriving in PushState(). (Although clipping region and alpha mask are not cloned, which is on the other hand just what's needed for now.) * Combining alpha masks from previous states is not yet handled. * Remove SetAlphaMask() from DrawingEngine and Painter. It is now done in SetDrawState().
|
#
d0fa6c78f4efad4c2a2fd7a1dfd53624ed3a6471 |
|
28-Jan-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
BView: Allow resetting ClipToPicture Just like for regions, ClipToPicture(NULL) removes any picture clipping at the current state level (clipping in pushed states are not undone).
|
#
fd9ceef84149796f2b707d6e91401d2dcac8cb80 |
|
22-Jan-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Memory allocation fixes.
|
#
e0d1cc186aa95cecd9439ebc2373f68a68ff2d02 |
|
22-Jan-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
BView: move ClipToPicture code to app_server Now that DrawingContext makes it possible to draw on a ServerBitmap without the need for a BView, we can replay pictures on app_server side, avoiding the cost of creating a BBitmap, offscreen BWindow, and BView from the application side. The offscreen drawing context gets the same state as the view it's rendering the picture for, so font size, drawing mode, etc are used. The implementation is still the suboptimal one, converting the BBitmap to a BRegion, and using that for clipping. Changing that comes next.
|
#
59347b7f1bad11b684ce8c6ed594781f5d2eb4e2 |
|
13-Aug-2012 |
Ryan Leavengood <leavengood@gmail.com> |
Reverse the meaning of BWindow fShowLevel to match BView. This also matches the client_window_info.show_hide_level field used in Deskbar and other applications. While doing this, keep fShowLevel fully in sync between BWindow and app_server, use one message type for both hiding and showing, and make the decision to show and hide the window in the app_server. Lastly make minimize behave as described in the Be Book: hidden windows cannot be minimized, and minimized windows which get hidden become unminimized.
|
#
96cabf581a611e030a1156d9569ca8a11524cb61 |
|
12-Aug-2012 |
Ryan Leavengood <leavengood@gmail.com> |
Sync BWindow fShowLevel with the app_server. Implementing the window_info.show_hide_level in terms of this solves the problem of minimized windows also being considered hidden, when really they are just hidden in the app_server. window_info.show_hide_level is still defined backwards with a comment making that clear. Also removed sending fShowLevel in the minimize request since it is now maintained in the app_server. Fixes #4127.
|
#
4b8a51c34c81f8623fb5eb99e4be9ad606a56044 |
|
09-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Fixed incorrect sizeof in LinkReceiver::ReadRegion. The type of BRegion::fCount is long, and ServerLink sends/receives it with sizeof(long), but LinkReceiver was using sizeof(int32). Due to long being 64 bit this was resulting in a mismatch. This fixes the drawing problems on x86_64.
|
#
3fed1a15f58e8d6fe6b492f3b94bb3625ffeddbd |
|
05-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Get app_server working on x86_64. With this commit, app_server now compiles and runs at boot! Nothing particularly interesting happens, just the blue background and a mouse pointer. Remote backends are broken and not compiled in, see #8834. Note that it won't be possible to build this quite yet, need to get the FreeType package uploaded.
|
#
5b1742af2703dd0484641997f829476d7ef1bb9c |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Remove another assert that fails. In this case the access from ServerApp is fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
54fff0c456cfa163fd4e9d3a1382b52184771285 |
|
08-Mar-2011 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed resource leak in error code path. CID 5888. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
17925a3529fe61b534d9ab9673a3d06945aad6f8 |
|
06-Feb-2011 |
Stephan Aßmus <superstippi@gmx.de> |
* The app_server leaked the BGradient objects on each drawing operation related to gradients. This was for example very noticeable when running MediaPlayer which redraws the slider a lot. With three movies running, app_server would leak at about 100KiB per second. Might be related to #7071 or even fix it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40364 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c9f72f43338206639e1c54686179a6fafad6df36 |
|
28-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
Applied patch from stimut (#6353), thanks! In ServerWindow::_DispatchViewDrawingMessage(), for AS_DRAW_STRING_WITH_OFFSETS, the string length rather than the number of UTF8 glyphs is used, thus leading to an app_server crash. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40310 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9ff327dea3cf4ab84fa475ada4b073e311794654 |
|
19-Nov-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Make MessageForListener a bit more flexible, passing a fix ServerLink is sometimes not enough and a separate sender and receiver is needed. - Add communication part to restore and save S&T groups. - Fix call of GetDecoratorSettings listener hook. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39534 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
43eea4c2c47125e7d34712a3edf4274deeab9596 |
|
23-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Apparently it does not work... convert to TODO. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39100 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76d9e05341c5ad13dbb0a799ab7463b6639a9a86 |
|
23-Oct-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Introduce a new flag for drawing BBitmaps, B_WAIT_FOR_RETRACE which triggers waiting on the retrace semaphore in app_server just before drawing the bitmap. This potentially removes any additional delay when doing this client side. Completely untested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39097 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
08a79ab22c6bb9f6adea1fc34756a74a57faddad |
|
19-Sep-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix size limits function name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38725 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dcbc4af5d118efdd9602bd6f8d5844c1ddad4da2 |
|
16-Sep-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Add size limit changes to the listener interface. - Update size limit constraints in S&T only if necessary. - Header style fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
45db9a2073f50c9076e830d43fde3a34d3c41261 |
|
31-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Made the logic behind the locking in the outer and inner message loop more clear, both in the code and also via comments. I get the occasional drop into the debugger because MultiLocker says the Readlock has been acquired twice. I don't see how it is possible from the code and it could be another bug in the MultiLocker debugging facilities, but the code should be clearer now anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee9246d5f5f83019e92d54606bde5f334769f102 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Remove unused communication port, pointed out by Axel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c0494bc592de7d83d2cfea79063b7c90a6a7e780 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Add facility to communicate with the desktop listener over an app server link. The ServerWindow dispatch the message to the DesktopObservable which dispatch it to the correct listener. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38169 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
032a8371aa11c42e08bf13c7efe22718cc34bc18 |
|
06-Aug-2010 |
Michael Pfeiffer <michael.w.pfeiffer@gmail.com> |
As per Stephans request re-added comment that I removed in r37939. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37944 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab7c7773b24f850c48ad47966a2758f47152369a |
|
05-Aug-2010 |
Michael Pfeiffer <michael.w.pfeiffer@gmail.com> |
* With blessing from Stefano applied my alternative patch from ticket #6415: the drawing offset of a BPicture becomes the new drawing origin. * This should also close ticket #6008. * Also the Preview printer does the clipping now correctly outside the "printable rectangle". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37939 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd06a41c3aadc5a6d4b2cd983660254a9479dd77 |
|
02-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Cleanup of the some header includes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37856 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb69cd654821314850cb4b3d505e3203f8207511 |
|
02-Aug-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Basically revert r37824 (minus restoring the origin), since it causes other problems (#6415 for example). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
568bdbf7192e5694fb683abcbae738c59c80dbb5 |
|
30-Jul-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Convert the BPoint to screen coordinates respecting the scale (using ConvertToScreenForDrawing()) before drawing a BPicture, both directly and inside another BPicture. Restore the drawing origin when drawing a nested BPicture (like we already do when drawing it directly). Fixes #6008. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
860dfc9a77381099c8c9549e28865ed015886bf7 |
|
28-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Introduce a DesktopListener interface to the Desktop class (needed for SAT). - Add a minimize method to desktop. - Make _CurrentWindows public. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37800 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e711c79d843434e9f606baf43c68b372b8aaf46 |
|
25-May-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Patch mostly by jackburton: The global offset for drawing a BPicture needs to be applied before pushing a drawing state, otherwise it is not preserved throughout playing the picture data. I've added the comment and resetting the drawing origin to the previous value. Fixes ticket #6070, thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36933 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8ce4644fbd41b6d64e926bbab30a7665a9b3597e |
|
26-Mar-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
If SetFullScreen() was called on a hidden BDirectWindow, it wouldn't be set to fullscreen (since that code checks for a Screen object, and is null in that case). So we also call ResizeToFullScreen() in ServerWindow::_Show(), if needed. Fix ticket #4456. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35959 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76ab3f88df26cbb595ca663798c7d84f9758c7c4 |
|
18-Mar-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Basically, this changeset implements BShape::ArcTo(). In more detail: * Added BShape::ArcTo() and BShapeIterator::IterateArcTo(), using a previously unused virtual slot. (Added the symbols for binary compatibility for GCC2 and GCC4.) * Added operator=(), operator==() and operator!=() to BShape. * Added BShape::BezierTo() version taking three points, which is sometimes more convenient. * Added the four new shape data ops OP_LARGE_ARC_TO_CW, OP_LARGE_ARC_TO_CCW, OP_SMALL_ARC_TO_CW and OP_SMALL_ARC_TO_CCW. For a single arc, provided the radius is large enough, there are four possibilities to draw the arc, these are controlled by the two boolean flags to ArcTo() and mapped to the new commands accordingly. * Some style cleanup in Shape.cpp (sorry for mixing it up, but it gets worse below...) * Added ShapeTest to src/tests/servers/app. * Changed the way BShapes are transformed from view to screen space in the app_server. For arcs, it would be nontrivial to apply a proper transformation, it's much easier to let AGG take care of it. This affects ServerPicture as well. * Wrapped iterating the BShape into try/catch blocks in ShapeIterator. But I really don't understand the purpose of the class in the first place. Maybe it can now be dropped, since coordinates don't have to be transformed in place anymore. * Refactored copy&paste shape iteration code in Painter. The transformation to screen space happens there. * Since RemoteDrawingEngine needed to be adopted anyway, I also updated it for the new DrawString() with offsets version. But the client still needs to be adapted. * Style cleanup in Painter.h git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35905 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
77e5acc0d9d737051591e663ccf3376a32bfcf84 |
|
15-Mar-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Extended the BView drawing API by a DrawString() version that takes an array of locations, one for each glyph. * Added a test for the new functionality. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35865 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
606105c62cbbd72f78942283805f0c8c5e1225fb |
|
21-Feb-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Reduced the maximum lock time to roughly a quantum (a little less might even be better, though). * This might help further with #4709. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35548 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
87e7b978aacfb3de11892ccd71894acf675ab0b8 |
|
15-Feb-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed race conditions in the server's bitmap/picture handling: the objects are now removed from the maps as soon as the client deletes them. This also makes the "client reference" mechanism superfluous I introduced earlier. * ServerApp::SetCurrentCursor() must always call Desktop::SetCursor(), since it is also called whenever the current application changes. This fixes the cursor almost never changing. * Renamed ServerPicture::Usurp()/StepDown() to PushPicture(), and PopPicture(). * Also, they now acquire a reference to the picture in question (ie. the picture you get from PopPicture() also owns a reference you need to free). * ServerApp::CreatePicture() may fail, too. This case is now handled in the code that calls it. * Previously, the ServerWindow tried to process up to 70 messages in one go. That obviously caused bug #4709. Now, we have the additional requirement to not hold the desktop lock for longer than 25 ms. I haven't tested it with Kaleidoscope yet, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35472 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b576468d3f483cb15a5408ec955b60e5dcbfa84 |
|
01-Dec-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed (incorrect) check in ServerWindow::NotifyMinimize() for B_NOT_MINIMIZABLE; it should still be possible to hide an application programmatically. * The decorators now honor this flag, though. * And the Deskbar overrides BWindow::Minimize() to ignore all minimize requests. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34404 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac628ead05ca2ae85df8e5a33c25a20b2930dcce |
|
30-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved the B_NOT_MINIMIZABLE flag check into ServerWindow::NotifyMinimize() as this fixes some more incorrect minimizations on the app_server side. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34361 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
121ce6430986d77798b2710e66475fac6ee03b93 |
|
24-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Don't allow to show windows that don't have a top level view yet. This fixes bug #5022. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34209 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
289d85d2acc79e4d19cfa36049028f1fa8212061 |
|
18-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* BWindow::SendBehind(NULL) will now send the window to back. * Added shortcuts ctrl-alt-F to get a window to front, and ctrl-alt-b to move it to the back. * Updated the user guide with these shortcuts, and also explained the missing "single click to bring window to front" behaviour. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34108 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea0ba618c55707ae4d3621c96f9d153716104f36 |
|
07-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* "bitmap" can actually be NULL at that point, so calling ReleaseReference() on it unconditionally is not a good idea. This fixes bug #4904. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33935 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4b0459b2eef38f07b8c0c4426860dccb61a1134a |
|
04-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Refactored ServerBitmap a bit: it now inherits from Referenceable instead of roling its own solution. * Also removed BitmapManager::DeleteBitmap() - you only call ServerBitmap::RemoveReference(), and that one will notify the manager if needed. * Some more cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85a7877f80790d60e084ba8d7e6f1ae5f9a6fee1 |
|
04-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* ServerApp's bitmap and picture handling was completely broken, as it ignored concurrency as well as reference counting, causing occasional crashes and memory corruption. * ServerPicture now subclasses Referenceable, and will notify its owner when it's going to be deleted. This might bring some regressions, although I couldn't spot anything wrong yet. * ServerBitmap will now also notify its owner when it's going to be deleted as well. * Switched from the former picture/bitmap lists to a std::map. This also solves the issue of not checking whether or not the bitmap/picture actually belongs to the ServerApp (before, all apps could access and delete all pictures/bitmaps) * Introduced a new fMapLocker that guards the new maps. * ServerWindow now uses GetBitmap()/GetPicture(), and gives up its reference after use. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33876 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85d512ed6583c516ce8d1e5999aabbb18e53a979 |
|
30-Oct-2009 |
Philippe Houdoin <philippe.houdoin@gmail.com> |
Revert Stack & Tile patch (r33814) and first fixes done by axel (r33824, r33826) The stack & tile feature developement & fixes would be done in branches/features/stack-and-tile branch, until it's ready enough to be merge into trunk. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33840 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23e00a25e2d8ba0c83be28d548c13e2bdfcbd5d7 |
|
29-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed millions of coding style violations introduced by the stack & tile patch. Grmbl. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ef831a1dc393b2008b35fc46c028d3466ce7634f |
|
28-Oct-2009 |
Philippe Houdoin <philippe.houdoin@gmail.com> |
Applied Stack & Tile patch by Hong Yul Yang, formely by Christof Lutteroth. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33814 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
926e63c8851f8e1d085981e69ef03f8e9cda1e65 |
|
22-Oct-2009 |
Brecht Machiels <brecht@mos6581.org> |
* added click to focus mouse mode; right-click for bring-to-front and send-to-back (might cause some regressions in FFM) * made accept first click user configurable * updated the Mouse preflet to use the layout kit * removed the warp and instant warp modes from the Mouse preflet * changed internal representation of mouse modes (warp modes moved) * coding style fixes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33732 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
68667bf48a9e29a2d142cb3308b606d80bee3c2d |
|
04-Oct-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Adding a remote desktop interface that operates on app_server drawing primitives by providing a RemoteDrawingEngine and a RemoteHWInterface. Not really optimized yet, still a bit WIP. * Adding corresponding infrastructure like a blocking ring buffer and network sender/receiver that are attached to the buffers to feed/drain them as well as a RemoteMessage helper that provides a message based interface. * Adding target screen concept to request an app to be run on a specific screen. It's controlled by the TARGET_SCREEN environment variable which is added on the app side and sent to the app_server. * Right now only remote target screens are supported, in which case a new RemoteHWInterface is created that tries to connect to the given host:port. * Fix shape bounds when drawing, they need to be translated by the pen position and converted to screen like the points as well. Wasn't visible though as the bounds weren't used in the normal DrawingEngine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
edb6254810123b41166fb49c1a7413b77205694b |
|
03-Sep-2009 |
Michael Lotz <mmlr@mlotz.ch> |
When an app is going down and the windows are destroyed, all views are detached. On detaching the views remove themselves from the app local token space. Since the ServerApp only waits for all ServerWindows to be removed from the window list and not for their actual destruction, it can happen that the ServerApp is deleted before the window destruction and hence the view detaching has finished. The views would then access a stale ServerApp pointer and try to remove their token from the deleted token space. To avoid that we set the ServerApp pointer to NULL when the window is removed from the app (as after that the app can be gone any time) and check for that case when detaching. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32927 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2a0cda5017006d2345fb1afa6a94f38f2d4c257b |
|
28-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added proper locking to _ResizeToFullScreen(). * Desktop::{Move|Resize}WindowBy() could be called with zeros in which case it doesn't have to do anything. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32775 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e5c25980bd5fafa2e73b84d53608d328b86a6ad5 |
|
28-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Someone (like the screen_blanker) could call BDirectWindow::SetFullScreen() before the window is shown. The app_server didn't like this, since in that case, Window::Screen() is NULL. I added a check to ServerWindow::_ResizeToFullScreen() to handle that case. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32774 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a5a64d5481aadad0161c2db2ce1e7e9e0ffac79f |
|
27-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed DirectWindowSupport/Data to DirectWindowInfo. * Cleanup of the fullscreen stuff. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32743 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78ca6157b696f676eaa004e60d7d055f186df204 |
|
27-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed AS_GET_SCREEN_ID_FROM_WINDOW as well as AS_SCREEN_GET_MODE to no longer hold the window lock. There is now a lock that guards screen changes in particular. This fixes the deadlocks seen in apps using BDirectWindow. * All direct window handling now sits in the Desktop class - ServerWindow::HandleDirectConnection() is never called from anywhere else anymore. Furthermore, it's now only called when actually needed. * Resize/move actions now always send a B_CLIPPING_MODIFIED flag, too. * When the screen changed, the driver state is supposed to be B_MODE_CHANGED, not B_SCREEN_CHANGED (which is a message constant). * Direct windows are no longer suspended too late on screen changes. * Removed unused members of DirectWindowData, and cleaned it up a bit. * Made MultiLocker's default, and copy constructors private - I accidently used them, causing the ASSERT_MULTI_*LOCKED() macros to fail. * Added Unlock() to AutoWriteLocker as well. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d913595783500a95677dc59d97624ab0216eabc9 |
|
26-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Disabled BDirectWindow mode for the time being. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32694 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe9c291b299b75ef0e1b2bb6f5ae31c3b03c4c67 |
|
24-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Since ServerWindow::Window() can also be NULL in case the window hadn't been added to the Desktop yet, we better make sure in AS_GET_SCREEN_ID_FROM_WINDOW that this is not the case. * Removed the now superfluous ServerWindow::IsOffscreen() again. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32653 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
899d1454548e63308f35f14e137c03293cac3440 |
|
23-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerWindow needs only to call DirectWindowData::SetState() now, since it does all the work to sync with the client itself. Made DirectWindowData::SynchronizeWithClient() private and renamed it accordingly git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32644 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d3b6a35a30e314642700769e74160ffe69c67283 |
|
23-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Some server side debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32640 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f6ad8d5abb30249911c13e17eb1be3f731c86ca3 |
|
23-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
More encapsulation of directwindow stuff into DirectWindowData. I changed lot of code (while trying to fix ticket #4311), reverted some old changes and probably messed up a lot. It's very much a work in progress. Anyway, DirectWindowStars still work correctly, but Chart (and GLTeapot) do not. I suspect a race condition between the DirectWindow creation and the activation of the direct mode on the server, maybe exposed more easily by the changes in the scheduler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32625 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
467c2e8cb5301f35364d8a89a55388ee5efd2df3 |
|
22-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved DirectWindow support classes into a separate DirectWindowSupport.h/cpp. No functional change. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32613 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f277acc9cd89243e00e3c63578abcb2be670040c |
|
22-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Don't crash the app server if the user calls BScreen(BWindow *) supplying an offscreen window (Magnify does that, and that's the cause of ticket #4304). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3b33d6307b58c28717d7d36848bd3ddb30dbe235 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Fixed B_READ_WRITE -> B_READ_AREA | B_WRITE_AREA problem. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32575 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d3ae6ef65b5afd30027c0b53f3cdadd09533f492 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
use DIRECT_BUFFER_INFO_AREA_SIZE instead of B_PAGE_SIZE, even if they are the same, but it's more correct. Also memset the buffer_info struct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7d9dfe90a5aaadb73dfd76f0ed596d8a5eb79901 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
fixed style violations git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32571 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f1400a3199e05657b59e7b7985b9f60528d72855 |
|
21-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
More refactoring of the DirectWindow server code. No new bugs introduced (hopefully), and now I could enable the B_SCREEN_CHANGED notification since it works a bit differently git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32570 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe7f167df18f61d4974900e282f9f8c5720e36cb |
|
21-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Resolved a TODO and got rid of Desktop::ActiveScreen(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32566 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0eed9183061a7763972bc2589f9c43489cd078ab |
|
20-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Rewrote screen configuration management: VirtualScreen doesn't have anything to do with the configurations now, instead, there is a separated ScreenConfigurations class that maintains all known screen_configurations per workspace (and the Workspace::Private class has two of them, one for the current modes, one for the stored modes). * Added Desktop::{Get|Set}ScreenMode() methods, ServerApp now only calls those. * Getting and setting of anything else than the current screen is now supported. * This change also fixes that a temporarily set screen mode was not being restored on workspace switch. * Also, the Deskbar now seems to have the wrong location a lot, which is something that should be easily fixable therefore. I will look into this next. * Got rid of the unhandy screen_id structure server side, and in BPrivateScreen; we now just use an int32 - the next API break should definitely replace the screen_id with a simple typedef. * Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32541 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1bcb09b45a7175b1d179da139ef4850d22b7b74 |
|
17-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Added a ServerWindow::ScreenChanged() hook, which takes care of resizing an eventual offscreen directwindow and sends the direct window notifications (not yet, though, since a BDirectWindow on a non-visible workspace would get the B_DIRECT_START notification and start drawing on a different workspace). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32455 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
701dae79c9013ed0f4474c6ef845813678f993d5 |
|
15-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Squashed a TODO: Added a View::InitCheck() and use it after construction. Removed the check for View->CurrentState() == NULL. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32412 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2a2d0f1d10ac5233bd429637c3867ade4381be4f |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
After a B_DIRECT_STOP notification, the app_server could trigger a B_DIRECT_MODIFY with, for example, B_CLIPPING_MODIFIED. This was ignored, though. Now we combine this notification with the next ones, so that on B_DIRECT_START, the client is informed of all the things which have changed. Chart was relying on receiving the B_CLIPPING_MODIFIED notification to exclude some stars from being erased, in case the window went offscreen. Anyway, the net result is that Chart doesn't crash now, and we follow more closely the original BDirectWindow protocol. Fixed ticket #1939. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32392 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7c167dbe28a096f8695052be0e04ddd128c1a79 |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
This check is no longer needed, since the case is covered by the one in DirectWindowData::SetState(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32375 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e20b06294cdca6dedd539222cd2733ba1f1466a |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Work in progress towards cleaning up the directwindow server code: Renamed direct_window_data to DirectWindowData and turned it into a class. Encapsulated some functionality inside the DirectWindowData class. No functional change (yet). More to come. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32374 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
07e13b5fe6ae57dc58bc6a0d0224b6bf8e57e267 |
|
11-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed superfluous ReplaceDecorator() method. * Cleanup, no functional change. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32243 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bd49667008d037333b876c7b01325bf17f146f2 |
|
03-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Now also hide/show the cursor when BDirectWindow::SetFullScreen() is called. in the handler, instead of checking if the window is an offscreen one, check if fDirectWindowData is NULL, and do nothing if it's the case. When setting a clip region in ServerPicture, also invalidate the clipping. To do so, I added a public ServerWindoow::UpdateCurrentDrawingRegion() which just calls the private function. Please review and see if it can be done better. This fixes the problem with BPicture and the ConstrainClippingRegion() op (see ticket #1389) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32087 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4695f670190abd26d95f348f53b7d86b94214672 |
|
01-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Completed the server part of BDirectWindow::SetFullScreen(). The window is now resized and moved correctly. Moved this functionality to its own method. Should fix bug #4168. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32062 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9c1f8bf0c767df9cbb0389088a1acf963dda17ba |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Reverted r32012 which reopens #4127 - the fix causes strange behaviour with CL-Amp which is a bit worse than seeing TrackerStatus in the Deskbar. Will search for a proper solution later. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32026 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23046a39354513c697fdc0bbaa232ebbe17147e0 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* No longer maintain the Window::fMinimize member for hidden windows; this seems to be what happens in BeOS, at least, and fixes bug #4127. * Hopefully diver will also find any negative consequences of this change :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32012 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
19e179ca4ff838084b9abb0dd19932ac5fcd0051 |
|
19-Jun-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Moved the implementation of SetViewCursor from the thread of the window of the view into the application thread. This solves the race condition with asynchronous SetViewCursor and deleting the cursor immediately afterwards for real. * The ServerApp now requires a reference to the current cursor, just in case... * Added TODOs for caching the BView token, it's currently resolved for every single BView call that talks to the server... not good! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31133 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f680cfe2652f79b08ac178c648494b7beea2899e |
|
02-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The direct connection update in ServerWindow::{_Show()|_Hide()} is superfluous since Korli's change in r30440. * 80 character per line limit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30579 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fc235d5599698adb8eb0236e87d0d3d070c53278 |
|
20-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Patch based in large on work done by Philippe Saint-Pierre: * When a BApplication is created, the interface kit globals for this team are initialized, including be_plain_font, be_bold_font and be_fixed_font. The plain font specifically is assumed the default font for all BViews. A BView is not required to every set the font, it will then just be the plain font, because the app_server already assigned it when the view is created. Here is where the problem starts. When the system fonts change, they change on the app_server and are picked up by new applications. Old applications will run with the old fonts, because the values remain the same and are stored in the already initialized be_*_font globals. So this was never a problem. What was a problem is that the app_server would use the current plain font for applications which were already initialized before the font was changed, so the values in their be_plain_font would not match the values in the server side font used when creating new views. * This patch already prepares for the situation in which client applications want to update their be_*_font globals. This needs to be a manual act of the client applications, otherwise we would break existing apps. Maybe we could automate this for BWindows with the B_AUTO_UPDATE_SIZE_LIMITS flag and any child views with B_SUPPORTS_LAYOUT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30282 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4fba3522e02906506b6c713ef5b57d72e9458fef |
|
11-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed src/kits/tracker/OpenHashTable.h. The shared version in headers/private/shared is newer, though with small interface changes. * Removed the unnecessary Debug.h include in headers/private/shared/ObjectList.h. * Adjusted sources using these headers, mostly by adding missing includes. * Lots of automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30123 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ffdb0ccf4f3277f063499e0829a6cd40ecbdbf0d |
|
09-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Also improve the BPicture version of drawing line arrays. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30066 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f99d546d87ec3327a860be56c4e1c2255542b39f |
|
07-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed incorrect comment. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30004 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
86990636d466f720d01981714a1b8d317e2f2729 |
|
05-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Avoid using the heap allocator for most string drawing when reading the command from the link. My benchmark measuring is inconclusive, the numbers are sometimes very different. At first sight, it looks like string drawing can be up to double as fast with this change, but sometimes, the numbers are about the same. Hm. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29965 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12349c7d3d445aa2bb4d737e5c7bcf135cca1d69 |
|
05-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Begun to use structs for the BView<->app_server communication. This makes the protocoll less prone to errors, reduces possible points of failure and most importantly, reduces the number of function calls to the link API. I only know the numbers for StrokeLine(), which I tested via the Benchmark test app. With this change, drawing random colored and positioned lines actually doubled in speed. On the BView side, the calls to ServerLink::Attach() only halfed, while on the app_server side, the number of calls to ServerLink::Read() is now 1/4th. It will also be worth investigating why the link stuff is so slow at all. I also optimized BView::DrawString() a lot in this change, but I don't have any numbers yet. Some other commands which used multiple Attach()/Read() calls were also optimized, at least the most important ones. Begin/EndLineArray() was also pretty bad on the app_server side. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8ee34f96da42132424807230fcbbe0033651eb29 |
|
28-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
When setting view flags which toggle the B_DRAW_ON_CHILDREN flag, immediately trigger a recalculation of the view clipping region (it will now include children). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29755 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ce5d64725d8f4ada1b45675102b02e56c890bc18 |
|
19-Jan-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Renamed the drawing functions in DrawingEngine to remove the *Gradient part. In general, there is a lot of code duplication now, also in Painter. I will need to find a way to elliminate this again. Also, all the stroking functions should be gradient enabled as well. * Improved the look of the DefaultDecorater, inspired by the patch from Dennis Washington. I did not adopt the changes which give backwards compatibility problems, though, like changing the window border width or the single border decorator color. But I reckon these changes are overall even a bit smoother. * Fixed a long standing decorator bug, where the resize area of the border was visually different than the click recognition. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28951 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2ea5e5e8e581b792bbfc35a6f69f43f54a1cf4b5 |
|
18-Jan-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* We should not ignore the minimize request completely when the window is hidden, but at least set it to minimized. * Also, we shouldn't show minimized windows, but keep them hidden. This prevents the app_server/BWindow to go out of sync wrt the show level. This also fixes bug #3258. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28938 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3dc4e7fa474b1bbb7332746c1b77220f924b346b |
|
15-Jan-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The move/resize window protocol now uses absolute coordinates rather than relative ones. This fixes bugs #2658, and #3213; in BWindow::ScreenChanged() the window does not yet know that it moved on the new screen (when it already had a position on that workspace). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28908 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0a3f410f3040ce58777d262de98229a054e43f10 |
|
16-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a Desktop::BroadcastToAllWindows() method that sends all ServerWindows a message. * The DesktopSettings class is now using that to send the new AS_SYSTEM_FONT_CHANGED message to all windows. * The ServerWindow now propagates font changes to its decorator, causing it to update its drawing. That means changing the bold font in the "Fonts" preferences application will instantly change all window titles. * Factored out a _RebuildAndRedrawAfterWindowChange() out of several Desktop methods, simplifying some code. * The DefaultDecorator no longer calls _DoLayout() twice (through SetLook()), but instead calls the new _UpdateFont() method now also called by FontsChanged(), and SetLook(). * BWindow::GetDecoratorSettings() now also includes "tab frame" BRect with the exact footprint of the tab, allowing apps to know the size of the tab to position itself accordingly. * Automatic white space cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28664 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e98ee1410a4bd059fcc23c95148e0ec7d5177eef |
|
06-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* big cleanup of the tracing support, output useful information for most messages, use debug_printf(), cleanup line breaks * check return code of last link method in a lot more places * changed some printf() and fprintf() into debug_printf() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28537 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bda802b259176e4cafda17cc9890a2b90d16a181 |
|
05-Nov-2008 |
Jérôme Duval <korli@users.berlios.de> |
now uses DIRECT_BUFFER_INFO_AREA_SIZE as the direct_buffer_info area size git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28526 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca89b8ff590736c51e3d385e0c7ff7ef4ed32a47 |
|
04-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* The app_server implementation of BView::GetClippingRegion() was using the wrong check to see if the view was currently visible. This fixes the problem that tool tips would popup for windows that are located on other workspaces. * Removed commented out code that is no longer needed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28498 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21b40edd7531466fad9daa80dc440583492dec08 |
|
03-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented respecting B_LOCK_WINDOW_FOCUS that a view can set using SetMouseEventMask() from within it's mouse hooks. Among other things, scroll bars won't stop scrolling in FFM mode now if you accidentally leave the window with the mouse, something which is very likely. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28481 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c2a8fd9b7076db45e7a372254cb6a5030dc74ee4 |
|
17-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* AS_ACTIVATE_WINDOW must not hold a window lock when calling Desktop::ActivateWindow(), or Desktop::SendWindowBehind(). * This fixes a potential deadlock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28217 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bf3a2064455cddfc57bfc5faf36dcdb2f79d7dbb |
|
16-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed r28168, which introduced an app_server deadlock. Functions which call into Desktop methods which in turn grab the window write lock are never supposed to hold this write lock themselves already, since the Desktop code takes care to not hold the lock when for example calling EventDispatcher methods, which would cause a deadlock (as in this example). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28175 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96c6ee9507eeb20459df6b6a4a2586dceec62e8a |
|
15-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* _Show() and _Hide() must now be called with having all windows locked (it would do that internally anyway). * AS_MINIMIZE no longer calls _Show() when being unminimized, but Desktop::ActivateWindow(), as this will also bring the window on the screen if it's on another workspace (according to its flags). * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28168 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
431dc47ddeaddc4ad9467b87c09f6777d99fbe1c |
|
15-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Artur Wyszynski with some changes by myself: * Resolved TODO: The type of the gradient is no longer encoded twice in the app_server link protocoll. * Moved instantiation of the BGradient into the LinkReceiver::ReadGradient() method. * Check success for (at least) ReadGradient() in ServerWindow. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28150 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
991547ef6c1fca650f0fba855206296ef54bc441 |
|
14-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Artur Wyszynski: * Implemented BGradient, BGradientLinear, BGradientRadial, BGradientDiamond, BGradientConic and BGradientRadialFocus new Interface Kit classes. * Implemented all the (AGG-based) backend necessary in the app_server to render gradients (Painter, DrawingEngine) * app_server/View can convert a BGradient layout to screen coordinates. * Added BGradient methods of the Fill* methods in BView. * Implemented a test app and added it to the image as a demo. * Adopted Icon-O-Matic and libs/icon in order to avoid clashing with the new BGradient class. Re-use some parts where possible. Awesome work, Artur! Thanks a lot. Now a more modern looking GUI has just become much easier to implement! :-) TODO: * Remove the need to have gradient type twice in the app_server protocol. * Refactor some parts of the patch to remove duplicated code (Painter, DrawingEngine). * Adopt the BPicture protocol to know about BGradients. * Review some parts of the BArchivable implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28109 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
54f92239a2cca528b78c0aa1b457d0e63fb5ca50 |
|
08-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The ServerWindow now memorizes the original BDirectWindow feel when switching to full screen. Since BDirectWindows can have any feel, this does now correctly restore it instead of always reverting to B_NORMAL_WINDOW_FEEL. * This fixes part of bug #2808. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27920 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5f8c1a02449cf804ff7c4e0ba591cfc3534c2ffd |
|
09-Sep-2008 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Remove unused RamLinkMsgReader. Its functionality was integrated inside LinkMsgReader/Sender by Julun. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27387 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2982ae5d1a52e8ed9df058b1d54ed6e7072d1176 |
|
08-Sep-2008 |
Karsten Heimrich <host.haiku@gmx.de> |
* comment the code that prevents programmatically resize events during a user resize, this makes ArtPAint's tool pallete window resize properly Thanks Stephan for explaining me two time what to look for :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27384 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bc4dacf9a9063a40322817b1a907ac7cc9d75f5 |
|
27-Aug-2008 |
Karsten Heimrich <host.haiku@gmx.de> |
* We need to update the drawing state in case SetHighColor, SetDrawingMode etc. is called after BeginPicture on a freshly created view. This is necessary because a second invocation on this view with BeginPicture would have caused ServerPicture::SyncState to write the default drawing state into the picture. This happens because to BView had now cached the values and therefor won't go to the app_server and tell about the change. The first call did not change anything as picture recording is handled in _DispatchPictureMessage while view changes that modify drawing state are handled in _DispatchViewMessage, thus leading to default draw state values beeing written. This fixes invalid ticket #2534. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27218 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44cd4a02c7864ad44a8a42292bdf81d315932658 |
|
12-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Deskbar's Switcher had an explanation what the window_info::layer field is about. ServerWindow::GetInfo() now fills in that value following this logic as well as further testing. * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26942 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
162a7f5f8e924eda0b7d7b99167882591926ad6d |
|
28-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Implemented new BView drawing functions DrawBitmap[Async]( const BBitmap* bitmap, BRect bitmapRect, BRect viewRect, uint32 options). Only option so far is B_FILTER_BITMAP_BILINEAR. * BView::DrawBitmap[Async](const BBitmap* bitmap, BRect viewRect) was accessing the bitmap pointer without checking it. Would therefore crash when passing NULL, unlike the other methods. * The BPicture code already reserved room for the BBitmap flags, but did not store the actual flags and neiter use them for anything. Since the bitmap data is stored anyways, the bitmap creation flags do not matter. So I reused this for the new bitmap drawing options. * Rewrote Bitmap.h and removed the B_BITMAP_SCALE_BILINEAR flag again. * Tried to optimize Painter::_DrawBitmapBilinearCopy32() a little by giving the compiler better hints. There seems to be a marginal, possibly imagined speed increase < 0.05 ms. ;-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26665 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f592fcef43a871aaa0e89bf306e14ec71500d7df |
|
01-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
stippi + bonefish: Fixed race conditions when a ServerApp or ServerWindow is created. The reply to the client that the object has been created successfully was sent in the thread creating it. Preempted at the wrong time (right after writing the message to the port) could lead to the object's thread using the link at the same time, which would screw up all subsequent communication via that link. This fixes the problem that mimeset would sometimes fail when building Haiku in Haiku (can't find the ticket). It probably also fixes #2331, and the bug that sometimes when a window is opened (Terminal, crash alert, shutdown window, etc.) it would come up with huge width/height and tiny other dimension (can't find the ticket). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26192 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f24652cba637ab4826565850f874a18b1fe6ac8e |
|
21-Jun-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Fix two wrong debug output messages and add one for AS_SYNC. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26063 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f27659f55e7a53230a23bcbedd8dd059605ba99e |
|
04-Apr-2008 |
Jérôme Duval <korli@users.berlios.de> |
* GRAY8 is 8 bits * typo git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24798 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d81827b2c7e74821b00e8ad546166a00dec1e4b |
|
30-Mar-2008 |
Karsten Heimrich <host.haiku@gmx.de> |
* push the states on the server instead on the client side * DrawState::SetOrigin needs to take the view scaling into account * set the orgin in BPrintJob, to be able to print more then one page properly Note: This would make printing work on HAIKU as on BeOS, but still it does not because of 1; BPortLink size limit and 2; because we can only print/ draw the visible region of a view? I had to resize StyledEdit to a i.e 10000 to test and to be able to print the full syslog. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
97d6a0515e8e5d37ca46e1cc453face79e93aeb6 |
|
11-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
GetClippingRegion() was implemented wrongly on the app_server side. It needs to take the current effective drawing region of the view, but converted to local coordinate space. Untested as of yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24361 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
582b3d5a72633f7d6fa55e913fd07f61a9eb1744 |
|
08-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* When allocating a new Window, check the allocation of the DrawingEngine instance by introducing Window::InitCheck(), use new (nothrow). * Window is responsible for the DrawingEngine instance, but forgot to delete it. * OffscreenWindow is no longer special, every Window owns a DrawingEngine, no need to delete it anymore, but since it already deletes the HWInterface instance, it needs to detach the DrawingEngine from it. * Use new (nothrow) in OffscreenWindow as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24308 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c7a77521ffc3a115780a9abd6c46e07fe17ada39 |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed all *LAYER* constants to *VIEW*. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24306 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
437b19277feacd48292ca9ec814a38da17e4eb89 |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed severly outdated DebugInfoManager. * More "layer" cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
953d895e020ece5d50cfc2e76d9f370ceb5c45e7 |
|
07-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Got rid of the "Layer" part of WindowLayer, ViewLayer, WorkspacesLayer (now WorkspacesView), OffscreenWindowLayer. * Renamed ServerScreen.cpp/h to Screen.cpp/h (the class was already called Screen). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24303 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c184b20ed06343ba39e3c84a9542c7069f9011d |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The Desktop is now maintaining a list of workspaces views, and supports more than one of them at the time. * Changed ViewLayer::FindView() to FindViews() that collects all views with the given flag set, not just the first one. * Made ViewLayer::AttachedToWindow() and DetachFromWindow() virtual, WorkspacesLayer now overloads them to register itself with the window and the desktop. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24300 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cebfa7dc4515ba30486fe87fb45576ced9258c47 |
|
06-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
I was trying to fix Firefox redraw problems, but this change does not help. However it appears I might have fixed the GL apps drawing over other windows. Cannot reproduce this problem anymore, but it may be that this bug doesn't show on my new setup (32bit double buffered VESA). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24267 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f9bbab8848383da363df67ea3e712c222d3708f0 |
|
24-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* First steps towards a more flexible workspaces view handling: the workspaces view can now be any view in the hierarchy. * Added private view flag kWorkspacesViewFlag that identifies such a view - note though, that you must not remove a view before closing or hiding its window for now (and that you still need to set the kWorkspacesWindowFlag, too). * Fixed Workspaces check for valid screen coordinates; after a crash, it managed to open its window offscreen for me. * Added a ViewLayer method FindView() that finds a view with the specified flags set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24090 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d755e1c0736df4bc4b8cb58aa6c6227cbf9c3f36 |
|
19-Feb-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented Enable/DisableUpdates again on the app_server side. Untested. It should prevent the app_server to send any update messages to the client. It should just keep adding to the pending update sessions region until the client enabled updates again. If anything is already in the pending session, an update request will be send immediately. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24029 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
511c231b3531b89c99205418abe0a9f4b10761d6 |
|
24-Jan-2008 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
remove unnecessary code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
48882cec96de1f4391f1882cac61524466c462c0 |
|
08-Dec-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* lock pattern drawing to the true view origin, independend of the views position on screen (fixes drawing glitches in patterns when the view was moved on screen (for example because the parent window got moved)) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23089 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dd84f111b9cac2b7f1bae6802784a166a2e22dd9 |
|
18-Oct-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed a few potential deadlocks: * in r22410 the unlock/relock was removed accidently from ServerWindow::_Hide() before calling a desktop method. * Desktop::ActivateWindow() no longer calls SetWorkspace() with the window lock held. * WorkspacesLayer::MouseUp() now uses the asynchronous version of SetWorkspace(). * AFAICT AS_HIDE_WINDOW, AS_SHOW_WINDOW, and AS_MINIMIZE_WINDOW don't need the all window lock, reverted to standard single window lock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22614 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4d1c4228028075b8982d13c645cd206a28419df7 |
|
02-Oct-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added a way for the ServerWindow message loop to determine the required type of locking before processing the message (single/all window lock) -> in most message cases, I could comment out the unlocking/locking which switched to the different lock, because the required lock is now already held, this removes some race conditions which were commented in the code already * EventDispatcher::SetDragMessage() didn't lock the object, this would have been bad if multiple windows tried to set a drag bitmap at once * the Desktop object keeps track of mouse position and pressed buttons, so that it doesn't need to lock the EventDispatcher for sending fake mouse moves to windows on show/hide of windows (solves some cases of possible dead locks with the new locking strategy) * the keyboard EventFilter switches the current workspace asynchrnously from the Desktop thread (another source of possible deadlocks) * the "reader is trying to become writer" check in MultiLocker is only used in DEBUG mode now As a summary: It would be nice if ServerWindow used a readlock for all messages it processes itself, and forwards all messages for which it needs a write lock to the Desktop thread. All cases where either the Desktop or the ServerWindow mess with the EventDispatcher are possible sources of deadlocks. This is solved right now by making sure that the lock is released before using the EventDispatcher. I have not observed any deadlocks while switching workspaces and launching many apps anymore, neither crashes. But I have not tested extensively except for in the test environment. That being said, I could reproduce the problems on first try before in Haiku. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22410 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
72c9d31ec42b2bf27328ddce458a934aa214ef23 |
|
11-Sep-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* transmit correct type in BView::BeginRectTracking() * put message codes for Begin/EndRectTracking() into giant switch... not actually implemented though git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22220 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c5c3b078e75efe40e46d1b49d13b3ab824591e5a |
|
22-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* clarified comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22036 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7e1df75609966bdfdb4ed39edf26dd145d8221f |
|
16-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* get rid of RGBColor usage where it is not needed, this simplified many things, possibly making them a little faster too * mess with decorator button size calculation to make the whole layout scale more agreeable with the font size (no more fixed offsets/insets), but it is work in progress * DefaultDecorator no longer allocated the border color array, it is part of the object now * small memory footprint optimizations in ViewLayer, Decorator and WindowLayer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22003 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
253d42a602bc2ed053cf9a5f400bb95070f91da5 |
|
14-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented SetClipping op, but it's not working yet (looks like it's never written into the data stream) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21947 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e503a70c8851c951b1d5738d2575c3e8f999a36 |
|
14-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Also set the font properties for BPictures. Some of them, at least. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21938 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37033892c523295d91f189d37ed65474dfac7046 |
|
14-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented SetPattern op. Reduced the buffer size to 4096 again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38daa5cd6e789ad5df2b719ad0843f3431f86854 |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Also upload/download subpictures git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21926 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
690c7474a4d9597b5deceeaa4b582f2b2a6baaaf |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented BPicture's SetPenLocation() op, also nested AppendToPicture() (but still doesn't work :( ). Moved some functions around in PictureDataWriter.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
edac8f06a8052817ba9cf3b668fe13ea879a4e88 |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented drawing of pictures inside pictures. Thanks to Marc Flerackers for clarifying some things. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21920 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ed5de868df775fceddb5abedec7eab9bd5147d51 |
|
13-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented the following BPicture ops: fill region, stroke/fill arc, stroke/fill polygon, stroke/fill bezier. some work towards drawing of nested pictures. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21918 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5a626bd96323888726ea335f1d101d56b230ec87 |
|
12-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* removed code duplication in BView::check_lock() and do_owner_check(), * revised use of check_lock() versus do_owner_check() (do_owner_check() is supposed to drop you into the debugger if there is no owner, otherwise it behaves like check_lock()) * ConstrainClippingRegion() no longer transmits empty regions to the app_server. I would have thought that my fix to ServerLink would have solved the issue I was investigating, but only this commit fixes it. Maybe the last commit would have fixed it if I did a "jam clean"... * WonderBrush draws the icons again on mouse over... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21910 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8c1a98d8d4d9a90690fbb91df0151a51705c6123 |
|
12-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* there was a complete mixup of "drawing origin" and "scrolling offset" in the BView implementation (client side) * introduced some private methods for _Convert*(BPoint*) methods which avoid doing the check_lock() thing in the recursion, also Origin() would likely have communicated with the app_server all the time, since the origin bit was needlessly invalidated, so some speedup should be achieved * this should fix ticket #98 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21900 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe914c98b4a80f633b63d01be0fbb2acb40f9958 |
|
09-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added a version of SetFont() that takes a DrawState* to DrawingEngine and Painter, that is needed to be able to tell if anti-aliasing is to be used, since the flags in the font can be overruled by the flags in the view... * fixes aliased fonts reliably, tested with FontDemo git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21869 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bbc424771b5ad20f0fa256c96b20248c6059c4c0 |
|
08-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* convert shape coordinates to screen at the time of playing the picture (fixes ticket #1367, stefano I thought you knew that I meant this in an earlier mail) * move_pen_by() looked wrong in ServerPicture, have not tested though * make sure the pen location is adjusted after stroke_line() and draw_string() in ServerPicture * set_pen_location() does not need to update the Painter drawing state * ServerWindow AS_LAYER_SET_PEN_SIZE needs to set the resulting pen size of the drawing state stack, not the one set on the current state * ServerWindow AS_LAYER_GET_PEN_SIZE needs to return the current state's size, not the result of the stack * small cleanups git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21855 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90ad4da30d2b8c8a99c09e1bf16189f78320ca31 |
|
06-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* small cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21842 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e9d1494da3ecb9171e80f2e679ea4b34346924d1 |
|
06-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Nevermind Stephan, in the end I found it out. Fixed shape drawing inside a BPicture, though I'm not yet sure if I should do it there on when playing the picture... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21836 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1f8ea6a98d49a9e4bfa86d73205f46080a18a532 |
|
06-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Set the origin before playing the picture, so DrawPicture() with an offset works correctly. Drawing a BShape using a BPicture is currently broken. Stephan, any insight on what it's changed about shape drawing ? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21835 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2671c0bf0a6fecf211b40e1267fd1fcaf7ce0e9c |
|
04-Aug-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Since AS_DRAW_STRING doesn't attach the escapement delta anymore, drawing a string inside a picture and then playing that picture triggered a debugger call. Fixed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21823 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
94a48ae2765a9c1e1eda25a4e7438f2085658345 |
|
04-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* use a different message code for DrawString() with escapement delta and DrawString() without * this change also includes adding the penlocation to the shape to-screem coordinate conversion (temporarily breaks shape rendering, will be fixed in next commit) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21821 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38287e02afe4c0b08ae1c2c3279bb8d3a2e07fc2 |
|
22-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* completed my changes to DrawState handling, the current DrawingState of the active ViewLayer is now always mirrored in the Painter instance of a ServerWindow, so that it doesn't need to be synced on every drawing command, this was previously incomplete for font handling * removed the DrawState parameter from all the DrawingEngine functions * adjusted ServerWindow and ServerPicture accordingly * made sure that string related functions used by non-drawing related parts (ServerApp, Decorator) don't interfere with the current drawing state * moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage, it is actually a window message and doesn't require fCurrentLayer to be valid * fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was deleted by client request which happened to be fCurrentLayer (I am now handling it so that the parent becomes the current layer, could be wrong) * AGGTextRenderer is no longer using it's own scanline, which should save a few bytes RAM, the Painter already had such an object * StringWidth() in AGGTextRenderer is now taking the escapement_delta into account * Painter::StrokeLine() doesn't need to check the clipping as much, since that is already done in DrawingEngine * if a ServerWindow message is not handled because fCurrentLayer is NULL, a reply is sent in case the messages needs it (client window could freeze otherwise, waiting for the reply for ever) * removed unused AS_SET_FONT and AS_SET_FONT_SIZE * added automatic RGBColor -> rgb_color conversion to RGBColor.h * minor cleanup for 80 char/line limit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
582da17386c4a192ca30270d6b0b95f561cf5843 |
|
19-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* complete reimplementation of BRegion and it's backend I "ported" the region implementation from XOrg to work on BRegion data. This resulted in pretty much the same code structure as before, with RegionSupport.cpp containing the messy details. Only now it _is_ really messy from a code beauty point of view. I didn't exactly feel like cleaning it up right now... but I guess I will have to. So what does this mean - our BRegion implementation was very slow (no offense!), and on top of that it scaled very badly with more and more rects. The new implementation seems to be on par with the very fast R5 implementation and the data looks exactly the same too. BRegion is very performance critical for the app_server, and I cannot wait to try this on my slow computer... Some changes are noteworthy: The right and bottom coordinates of BRegion internal data are now exclusive! I inherited that from the XOrg implementation and didn't feel like changing the code, seeing it is probably tested quite well. The conversion is handled transparently. Secondly, constructing a BRegion with just one rect is not invoking malloc anymore for the member data, this makes it much more efficient to use temporary BRegions with just one rect, both externally and internally in the BRegion implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21665 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6369b909b2f9fda727b424c0579d390d8e37cf0f |
|
18-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* fix comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41b487e43cc2bb2f5ac79558587177b6ee3d8d61 |
|
18-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* accidentally left the profiling on in last commit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21647 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
67f3be42b00f063f84e4e9a743dcf431f99c311d |
|
17-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added ProfileMessageSupport.h/cpp to translate server message codes to a string * fixed profiling of message processsing in ServerWindow (didn't take batch processing into account) * accelerated ViewLayer::RebuildClipping() by a factor of two by avoiding BRegion::Exclude(clipping_rect) for each child, and instead building one region with all children, and excluding that. RebuildClipping() is quite a common operation and is quite slow for views with many children git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21646 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0896fce5fb6672058acb2a99990d3a4cd082105c |
|
18-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* since every window has it's own Painter instance, the drawing state does not need to be "set" (transfered from the "current" view to the painter) for each singly drawing command. Now, painter is synchronized whenever the client changes the drawing state of the current view, or when the current view changes. * the screen offset of the current view has become part of the Painter state, in the PatternHandler. This fixes a bug in which moving or scrolling a view which used patterns for drawing, resulted in visual glitches (seams in the pattern). NOTE: this patch is a bit work in progress, most importantly, it is not complete with regards to text rendering. More specifically, the server applications and other parts of the appserver might set a font on the Painter and this might mess up the synchronization. But this happens on the Desktop's Painter instance (only?), and so it is not a problem. I did observe some drawing bugs with this patch though, so bug reports are welcome, particularily how to reproduce these bugs reliably. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21643 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0d478eeb6f15d5ee6cbdea1e5f0756ab2b9fa8a4 |
|
07-May-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Avoid sending an extra (useless) B_DIRECT_MODIFY notification to the client, when the connection is stopped. But cache the "reason" of the notification, and join it with the next one, when B_DIRECT_START is notified. Experimental, could be reverted. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21063 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ff32e5158c98c4dd9eab938af32667fff625786e |
|
03-May-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerPicture now uses a BPositionIO object as internal storage instead of BMallocIO. Added an additional constructor to handle a file. This is in preparation of implementing BView::SetDiskMode(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20996 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2617d83e7672c22fb7ca2ab7ec31d4af2950f07c |
|
26-Jan-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Damn, forgot to include these two in r19968. This should fix the build again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19973 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ccf137b886131b78172201ee7e04f4d011634a7f |
|
06-Jan-2007 |
Axel Dörfler <axeld@pinc-software.de> |
BWindow::IsFront() was implemented incorrectly - we actually need to query the app_server for this; added a new AS_IS_FRONT_WINDOW command for this. For example, clicking on the menu bar to bring windows to front in FFM mode does work now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19725 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2cfe93e7804edb2817dba26ba9b908efbfa80b06 |
|
04-Dec-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* renamed HWInterface locking to LockParallelAccess() and LockExclusiveAccess() (meaning more or less access to the frame buffer) * extracted the AGGTextRenderer to be a global instance used by each Painter instance (currently, it is thread safe because of the global font lock, so there is some work left in this regard) * gave every ServerWindow it's own DrawingEngine instance, this is work in progress. So far, there doesn't seem to be a regression, but less fighting over the exclusive access to the frame buffer, now each ServerWindow thread can draw in parallel. There is room for improvement, plus I think I'm leaking the DrawingEngine... * changed the locking for the software cursor. ShowSoftwareCursor() can only be called if HideSoftwareCursor(BRect) returned true, or if you called the generic HideSoftwareCursor(), since it needs to keep the cursor lock and unlocks in Show...! * some clean up and renaming in Decorator and friends * moved PatternHandler.h to live along with the .cpp git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19427 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
420fe80e5c3dc9765da5343c511071d63bcb81cb |
|
12-Nov-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved picture data writing to its own class, thus simplifying code in various places. Implemented SetLineMode op for BPicture, fixed shape drawing (I accidentally broke it in the previous commit). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19264 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab757c7a3ad45bf6112c913a3fec935bb58899dd |
|
09-Nov-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
our BPicture stream format wasn't compatible with R5 one. Hopefully fixed all the problems. Reported by Marc Flerackers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8f387530434058ab93fa3a6befe1a08c767c15d1 |
|
31-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ReadString() actually allocates memory... fixed that and another memory leak git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34633cab94673896f8a528bcabf282bac5a4c30e |
|
30-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
patch by Lucasz Zemczak which adds BShape drawing support to BPicture. Actually we should use a ShapeIterator subclass (like Lucasz did here) in Painter too instead of having duplicating code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19153 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7430a5bea603b2a5ab1500efd00acf64400657e9 |
|
26-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Removed the superfluous (doubled) AS_MOVEPENTO as well. Also removed those old constants from the ServerProtocol.h header. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19132 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0e683ed9aac5bfaadb9e3040632a09f2870707bf |
|
26-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerPicture was using the wrong StrokeRect call (the one which ignored the pen size). Added scale handling. Removed duplicated AS_SETPENSIZE handler in ServerWindow git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19130 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
467dbaa9e29c0da37d9eb55214e91d7cae89b446 |
|
23-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Fill/StrokeArc support for BPicture, courtesy of Lucasz Zemczak git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19103 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c40a6370efd02d482c50ae7a73856697ad6dc18 |
|
23-Oct-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
added part of a patch by Lukasz Zemczak which adds ellipse filling/stroking support to BPictures. Thank you!" git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19102 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3a44e6e37d60b599f911009054aeac3a729f794f |
|
19-Jun-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed a big race condition in the server code: * ServerApp was accessing ServerWindow::Window() (while having the app window lock held), but in fact, there was no guarantee it already existed, or was added to the Desktop. * Therefore, the Window() semantics have changed to only return a window in case the window exists *and* has been added to the desktop (the latter constraint might be lifted again, though). Therefore, it doesn't work for offscreen windows, and should not be used within ServerWindow code anymore. * This fixes bug #686 and maybe others as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
66e114c42957f6b9622f597a4d2d72c40529b22d |
|
12-Jun-2006 |
Axel Dörfler <axeld@pinc-software.de> |
BView::SetEventMask() had no effect when called before AttachedToWindow(). This also fixes bug #620. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17802 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82584ab9c2996ff4dec740d64eb78c7c0b74c900 |
|
09-Jun-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented AS_DIRECT_WINDOW_SET_FULLSCREEN so that it sets kWindowScreenFeel when enabled, and B_NORMAL_WINDOW_FEEL when disabled. IOW when enabled, no other windows can interfere. * Therefore, it's no longer necessary to have the screen_blanker window use kWindowScreenFeel - it will set its window to full screen as long as the blanker runs. * Added a AS_APP_CRASHED notification in the app_server that will remove all kWindowScreenFeels from the windows of the crashed app. * This is now used by the debugger to ensure that the debugger alert will be visible. * Factored out a DesktopLink class out of the BRoster::_ActivateApp() method. This class is now also used in the new BRoster::_ApplicationCrashed() method as used in the debug_server (via BRoster::Private). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17785 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b30e90211eddde5fc96258dfaf8364f2fefd9695 |
|
24-May-2006 |
Stephan Aßmus <superstippi@gmx.de> |
added a way for BWindow to store and restore arbitrary decor settings, currently those include only the tab location git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17583 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7dc54697c78f4bd090163b58ce212b77c94b454 |
|
24-May-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
The drawstate is now synched when the recording of a BPicture starts. Some reordering of the function calls, implemented B_PIC_SET_BLENDING_MODE, some other cleanups git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17580 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
da09cca402d75722daaef6f62a641d37c15e5421 |
|
04-May-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed the way the overlay_view|window is maintained - it's now in Overlay. * The overlay options as part of BView::SetViewOverlay() are now passed over to the graphics driver - looks like the color key stuff cannot be turned off (at least not via the Be API). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17323 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe19cff624b39e06a198b5cba0a12d14bd5342bb |
|
04-May-2006 |
Axel Dörfler <axeld@pinc-software.de> |
No longer invalidates the view when an overlay bitmap is updated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17319 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d96389c199d88dfdade7912a5c319381489f46b7 |
|
03-May-2006 |
Stephan Aßmus <superstippi@gmx.de> |
fixed BView::Stroke/FillPolygon(), the bounds were not converted to screen and the clipping decision was based on it git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17310 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9ac741b2d2b71efc2896b69ecb6147c6564c84ea |
|
29-Apr-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* small cleanup in AS_DIRECT_WINDOW_GET_SYNC_DATA * added handling of AS_DIRECT_WINDOW_SET_FULLSCREEN (returns B_ERROR for now) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
621a832488a17c2281190dd4c3d9f9d741ef1273 |
|
23-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed ViewAux.h header to ViewPrivate.h. * Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17210 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0ac013e66f75c5733fcd6bca47300d126b293279 |
|
23-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Some refactoring: renamed OverlayCookie to Overlay and put it in its own source file. * An overlay is now also hidden in case its is removed from the window. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17209 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7c7883b9f7be15d6ffcc066e0f75e3d878c7923 |
|
23-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* We now have working video overlay - even though the overlay_token handling is currently broken, mode switches probably fail or result in sudden death (didn't try) it's good enough for Radeon cards and VLC (might work with others as well). * Implemented follow modes for view bitmaps (wasn't taken into account at all before). * Switched to a darker overlay color for now (dunno what exactly makes a good candidate there, but this one is good enough for now). * Added TODO about a race condition in AS_LAYER_SET_VIEW_BITMAP. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17208 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f33610f874950e36978c238c83f1004592070481 |
|
21-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed number 1 (or the only one? ;-)) crashing bug #306 in the app_server: Since ServerWindow removed itself from its ServerApp in _PrepareQuit(), it could happen quite easily that the ServerApp was deleted before the ServerWindow - and since deleting WindowLayer as part of that referenced the ServerApp, it crashed. Now, adding/removing is both done by the ServerWindow in Init() respectively the destructor. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17198 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6aa4743b517e1b0c8c9138ed55aef85ae2cb5eb0 |
|
16-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Added TODO comments about some race conditions in the code because of unlocking the desktop. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17139 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39cdae74a7fc098db3a59a3e9db03b6ad57ab991 |
|
10-Apr-2006 |
Michael Lotz <mmlr@mlotz.ch> |
First steps at getting drag & drop to work properly. Simple drag & drop (draging Tracker items) should work now. Not sure about the negotiated version (with mimetype exchange). Fixed left behind drag bitmaps. Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17058 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39c9925fcf718dbb8c8d5342997d6bbd40f9e7e4 |
|
07-Apr-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* implemented a BRegion pool per WindowLayer which is supposed to cut down on BRegion related allocations, cannot really tell if it speeds things up * used the new BRegion pool in WindowLayer and ViewLayer whereever a BRegion was used on the stack * fixed the debugging stuff in MultiLocker - it will get you into the debugger if you - try to nest read locks - try to write lock when your are a reader already - don't match up nested locks when your a writer -> but only if you #define DEBUG 1 in the .cpp, is off by default now * went over WindowLayer, ServerWindow, Desktop and a few other places and fixed the locking for use with the MultiLocker, the "a reader can not become a writer" is especially tricky, feel free to review the changes * activated the MultiLocker, I tested this quite a bit, if there are problems simply turn on DEBUG and you should drop into the debugger right where the problem is... hope all is good git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17046 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
903936bcec7685f61b848763967614eb2e6484bc |
|
03-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Added the scrolling offset when a view is created. This lightens the problem in bug #98 a bit, but doesn't completely fix it; you still don't see any items in that list on the switch, but they now appear again when you scroll around there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16997 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
600fbd78e4d89c3666152fec0e857f11783c0258 |
|
01-Apr-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* BView::FillRegion() sends the BRegion data instead of decomposing it and rebuilding it on the server side (that causes a huge speed up for regions containing many rects) * There is a method in ServerLink that could have been used, but I actually needed to add the direct BRegion support to LinkReceiver * added LinkReceiver as a friend to BRegion class * ServerApp and ServerWindow keep the CursorManager locked after they have retrieved a cursor until they have called Acquire() on the cursor. (Axel: what good is using atomic* stuff in Acquire() and Release() if we have to protect this by a lock anyways?) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16957 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38a6ea1d98b5b9d9d88f369f26c24f35262d9369 |
|
18-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the old AS_AREA_MESSAGE stuff - it's currently not used at all, and even though we might need something similar, we can't use it (since it was based on BGet++). * Removed BGet++, it's not used anymore. * Removed ServerMemIO class, was never used. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16830 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
420379aef6b11fba2a20aca34939cc9c4dc8733b |
|
15-Mar-2006 |
Stephan Aßmus <superstippi@gmx.de> |
I should have finally fixed those app_server crashes in HWInterface::_DrawCursor(). Axel, even though we understood the problem, we didn't really fix it back then: When the sync flag was set to true in BView::SetViewCursor(), the link was only flushed, which means that the function still returned before the ServerWindow thread processed the message. This means that the race condition (the cursor being immediately deleted after SetViewCursor returns, which might be processed in ServerApp thread before the SetViewCursor request in ServerWindow thread) still existed. I changed SetViewCursor now to do a real sync (wait for the ServerWindow reply) before returning. The alternative would be to set the fPendingViewCursor flag in either case. Anyhow, I could reproduce the error quite reliably before this change, and now it is gone... here is to hoping! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16809 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f025cd8b723b90c95f1ba7bb7053bc1b60dac882 |
|
12-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
While the user resizes a window, programmatical resize operations are ignored, likewise, while the user moves a window around, programmatical moves are ignored as well. This fixes bug #264. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16743 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bdbd1cb4412cb21b5c6ddbec72bd7f151d3f09cf |
|
11-Mar-2006 |
Michael Lotz <mmlr@mlotz.ch> |
Removing the USING_MESSAGE4 define. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16710 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1e766d4688da9cbaea73b0f10564fb0b3d708806 |
|
10-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Moved the ViewUnderMouse() functionality from the EventDispatcher to the Desktop; this saves us some locking headaches and solves a possible deadlock in ServerApp::Activate(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16688 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
73bc0d629e8a5f3b6b0a9e886c83e68a269ad71a |
|
10-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed a possible locking bug in Desktop::WindowAction(). * Cleaned up locking a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16686 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9ce4e5b4ed4f524b077a35f13f9f17328b5fabff |
|
09-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* The ServerApp now has the concept of a current cursor: this is either the cursor of the view currently under the mouse, or the application cursor, if the view doesn't have its own cursor (ie. it will no longer set the wrong cursor in certain situations). * AS_DELETE_CURSOR has no longer an influence on the application cursor, as this grabs a ref for its own use - this fixes bug #275. * AS_SET_CURSOR no longer sets the cursor when the application is not active. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16678 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e89843efc34fa0df08f8986bc1db421e13422e7 |
|
08-Mar-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* when the client constrained the clipping on a view, the server used to take an empty region as an indication to remove the clipping, but on R5, this is actually valid... this patch fixes the problem * the ViewState::clipping_region is now consistently used to memorize the user defined clipping of the view state instead of being sometimes used to cache the current view clipping git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16656 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f19839c230e64120d4b9e9fda83d1578445d232f |
|
01-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Some groundwork for overlay support. If someone wants to finish this, feel free to continue (it would be nice to be notified before, though, in case I get to it again in the next weeks). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16561 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bfe698736ddb0a6dabeb8688120c2b1d20bcbf0a |
|
28-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented private do_window_action() function, used by the Deskbar to bring windows to front (or minimize them). * Desktop::ActivateWindow() no longer crashes in case the window to be activated is not on the current workspace - instead, it doesn't do anything at this point. IOW it doesn't handle workspace activation at all, yet. * Renamed ServerWindow::GetWindowLayer() to ServerWindow::Window(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16550 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9b5a183539f2b7eb48da0e25a9470ebd4e7cc08c |
|
27-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed BWindow::Show()/Hide(): fShowLevel was changed and checked without holding the window lock. * Run() is now called before creating the window in the app_server when Show() is called for the first time (which is now checked with fRunCalled instead of some thread arithmetics). * Minimize() now sends the show level of a window to the app_server, so that it can actually determine if minimizing or maximizing the window should have any effect. This fixes bug #225. * fShowLevel's meaning is now reversed; when it's above zero, it now means the window is shown (before, a level less than 1 meant shown). This definitely better fits its name :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16536 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f8d8085d7a29b26d5793c449a53ffa7e595996fc |
|
27-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Quitting a non-hidden window no longer deadlocks the app_server (_Hide() was called without a lock). * Renamed private methods to start with the '_' symbol. * Removed superfluous SetLayer[Font]State() and moved back those one-liners into their AS_* handlers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16535 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
588259b66d15a3bde1fae53833230bbe28a4e8b0 |
|
26-Feb-2006 |
Stephan Aßmus <superstippi@gmx.de> |
various changes to handling custom cursors: * all cursors owned by a team are visually different, or (iaw) an already existing cursor is reused when it is set by the client again * changed various occurances of cursor data from "int8*" to "uint8*" * ServerCursors also remember the R5 data from which they were created * the reference counting and destruction of ServerCursors changed: The cursor knows it is attached to a CursorManager and one can simply use ServerCursor::Acquire() and Release() and the reference counting and everything is being taken care of * destroying a ViewLayer will now correctly release a set ServerCursor * fixed a race condition when setting a cursor through BView::SetViewCursor(): If the client code looks like this: BCursor cursor(cursorData); someView->SetViewCursor(&cursor, false); there is a relatively high chance the BCursor destructor told the ServerApp thread to destroy the cursor before the ServerWindow thread got to "acquire" the cursor for use by the view layer. The very same problem is likely the reason that SetViewCursor works to unreliably on R5, even when the "sync" flag is set to "true" (although it should theoretically work in that case). all these fixes make WonderBrush work fine again with the new support of custom cursors.... coded by axeld and myself (the joys of pair programming :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
45a93d5d6b28c4793cfa84ba746cd1769ca23ab0 |
|
16-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Fix for a bug I introduced with the last change: views were no longer removed at all! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16440 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
62b5f42b3541fb277ec03c807c8fb163b04b5c51 |
|
16-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed view deletion: _CreateSelf() and RemoveSelf() are now symmetrical, removing all those error output from the app_server. * AS_LAYER_DELETE now gets a token, no longer frightening choice of parent. * Removed locking in RemoveChild(); it has to be called locked now. * Removed AS_LAYER_DELETE_ROOT as it's no longer needed. * Removed support from BView for being PR3 compatible. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16424 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1afee8263105823e5a7e7b17005bbb2dfb21ee0a |
|
11-Feb-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Even more BPicture support. We should have the basic to draw every picture used in our tree (for example, Tracker's navigator's buttons) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16350 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f06f67c546cb7afd27d6f2c683a65bfe4bcbe3ba |
|
10-Feb-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented more BPicture related stuff. With this change, at least buttons can be drawn in pictures almost perfectly git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16344 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f877af82fefb0143773ffcfadff86058f38cc578 |
|
09-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented private functions do_minimize_team(), and do_bring_to_front_team() used by the Deskbar (for "Hide All" and "Show All"). The latter doesn't work correctly yet, though, it just maximizes all windows of that application. * Added a TODO to ServerWindow AS_MINIMIZE_WINDOW on how to make it work correctly. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
995ab7b3c6a636cd658df3d7d13a616d91ffb2d6 |
|
09-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
The server now differentiates between hidden and minimized - that concept somehow got lost, before. It might not work 100% correctly yet, but it works good enough to hide the Tracker status window from the Deskbar, and thus, fixing bug #133. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16314 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d365e2039eafd5de603a3627177f334f4485bc48 |
|
09-Feb-2006 |
Stephan Aßmus <superstippi@gmx.de> |
small cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16310 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb160ab5f62ff517d4d83947669b39efc151c594 |
|
06-Feb-2006 |
Stephan Aßmus <superstippi@gmx.de> |
change the way the _UPDATE_ message is used: it is now a mere notification that some views need updating. The BWindow will then pull data from the server which views exactly and the update rect. Therefor, the server can append regions to the current update session even if an _UPDATE_ message has already been sent to the client. If multiple views are invalidated in the client, only one update session will be triggered instead of two with the old implementation. Some drawing defects can be observed, but I know how to reproduce them so I hope to fix them soon. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16245 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aa1f5437999ab8531f33139c129c6bcaceb74e7a |
|
05-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Some work on cursors: * Fixed a myriad of bugs all over the place, ranging from locking errors to deleting objects that don't belong to the one deleting them (hello HWInterface!) * Almost all ServerWindow cursor stuff was broken; I've replaced all commands to set a cursor with a single one AS_SET_CURSOR. * Renamed some cursor commands. * Changed the (broken) way ServerApp::fAppCursor was maintained - the application cursor is now NULL as long as possible. * Removed superfluous ServerCursor app signature stuff. * The BApplication will no longer duplicate the default/I-beam cursors, it will just reuse the default ones which now have fixed tokens. * As a result, changing the cursor is now working as expected, closing bug #102. * Rewrote Cursor.h, renamed private members to match our style guide. * Minor cleanup. What's still left to be done is reference counting the cursor objects to make them work right and reliable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16237 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ff3abf4d6f7d48ce29fc2ff3e2937cdf89a65b08 |
|
02-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Started a naive implementation of BView::SetViewCursor() server-side - doesn't work though, as HWInterface can only draw B_RGB32 cursors... * More build fixes for libbe_test target - it defines __HAIKU__ as well, now git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16211 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
92071609a1f8be1cb850991678d1244d6e880829 |
|
18-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
extended support for BPicture, still not working git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16006 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af675e2c03c8cf1bec7a9e085d06079025a76216 |
|
18-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
implemented some more stuff for bpicture support. In theory StrokeLine, Stroke/FillRect should work but in practice they don't. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16005 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7afc7c5074c2a3382be788d22fe999040c582ccb |
|
08-Jan-2006 |
Stephan Aßmus <superstippi@gmx.de> |
ServerFont: * fixed weird pointer conversion in SetStyle() * fixed a potential mix up in operator=() in case the other ServerFont has fStyle == NULL ServerWindow: * the WindowLayer fTopLayer cannot be deleted by client request, just for safety reasons * the link is flushed if there is no drawing engine, but this case is theoretical only * deleting the ServerWindow object syncs with the client, so that when BBitmaps are deleted, they can be sure there are no pending messages (which would be executed in a nother thread) * there is no timeout anymore when sending messages to the client, which made absolutely no sense AGGTextRenderer: * renamed fFontManager to fFontCache, because that's what it really is * fLastFamilyAndStyle defaulted to the system plain font and therefor that font was never loaded when the font never changed meanwhile DrawingMode: * I'm not quite sure but I think there was the potential of a division by zero, at least I had crashes with "divide error" HWInterface: * fix update when the cursor shape changed in double buffered mode ViewLayer: * since the top layer is never really deleted before its time has come, it is not necessary to set it to NULL in the ViewLayer destructor ViewLayer/WindowLayer: * added a function to collect the view tokens that are affected by an update session EventDispatcher: * use the importance of the message for the timeout in _SendMessage() * drop mouse moved events in the server if we're lagging behind more than 5 ms (Axel, maybe review) View: * there were some problems with the locking of the BWindow looper in RemoveSelf(), since this is called from the window destructor, also of BWindows from BBitmaps, which have never been run (this might need review), at least I seem to have solved the crashing problems introduced by actually deleting the view hirarchy in the BWindow destructor * fixed _Draw() for being used non-recursively, temporarily disabled DrawAfterChildren, which didn't work yet anyways (because views cannot draw over children in the server yet) Window: * small cleanup when deleting shortcuts * sync with the server when having send AS_DELETE_WINDOW (see ServerWindow above) * fixed locking in Begin/EndViewTransaction() * removed folding of _UPDATE_ messages, since there is only one ever in the queue * set the fInTransaction flag during an update, I plan to use this in BView later to flush the link when drawing outside of an update * BView::_Draw() is now called by view token, this gives the next leap forward in speed, the overhead because of drawing clean views was considerable git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8f3f25cf639fbce2117e53f2bdcab62c2c4b4e5c |
|
03-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Merged the four AS_LAYER_DRAW_BITMAP handlers into just one handler git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15842 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee6bcb7d78be5099d9dee83c87311cb0dab6d06e |
|
04-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Initial support for recording (some, for now) drawing events into a BPicture git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15838 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cba9e9ece6b5aed7a0b5a5b663de637073e333db |
|
03-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved picture handlers to DispatchViewMessage, otherwise they are never called as the view can be hidden git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15818 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1c33148d102b4aff988cb557510caa4be5c6b080 |
|
02-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented handlers needed for Begin/EndPicture, and a handler for DrawPicture(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15816 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a5e82db05aac5f4433b57bd7f7c3e86546d1eaf0 |
|
02-Jan-2006 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Commented out AS_LAYER_***_PICTURE handlers, as they don't do anything and can block the client git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15792 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4c66abd6f21cabbaf2fd3a0038813243280be13a |
|
29-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented basic server side BView::SetViewBitmap() support. Things like B_TILE_BITMAP or even the resizing mode isn't done yet, though. See TODOs. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15720 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93052717b0885fa5b9256db9963097530b580512 |
|
29-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed AS_LAYER_GET_{DRAW|BLEND}_MODE to *_{DRAWING|BLENDING}_MODE. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cd2b129d0777a3198229fa66f0f4c344f7027120 |
|
29-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
* removed superflous LockSingleWindow() from WindowLayer::MoveBy() and ResizeBy() * WindowLayer::SetSizeLimits() needs to be called with the AllWindows lock held * I was observing weird behaviour with "unclickable" windows that I might have fixed by explicitly excluding invisible windows from Desktop::WindowAt(), there might be something wrong with the "current" window list though, Axel would know * finally found the problem with "delayed background clearing" * enabled delayed background clearing and removed unnecessary code. It should be more efficient, since it clears larger areas at once, and it solves the problem of views unable to draw into regions that are pending for another update - among other things, updates in resizing windows are more fluent, especially for B_FULL_UPDATE_ON_RESIZE views. "Cut off" scroll bars should no longer appear when the view being scrolled takes too long to redraw. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d909e25560c098447fd4dddbed7ed48ae8c9748 |
|
25-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
first simplistic implementation of drag bitmaps, drawing modes need more work, drawing text into offscreen bitmaps seems to be broken for some weird reason, B_OP_COPY actually copies the alpha value of the color as well git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15671 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf434f8eec61314a28fe81985d0ce74dba899f87 |
|
23-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a07317fc10834957de0830131e5c9d03c92358f8 |
|
20-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
correctly figure out bits per pixel in the direct window info code, this fixes direct windows in the Accelerant test environment, added a note about how the all windows lock seems to be grabbed for the entire duration of a client update on R5, which cannot quite be the truth, because apps crashing in BView::Draw() would take lock up the app_server, added skipping the processing of drawing messages if the current drawing region is empty, added currently disabled code for clearing the view right before the client draws it... doesn't work for some reason unfortunately git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15625 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1bcc09f226e86a0dc106f4917a1ff49bcb6abdaa |
|
19-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
small improvements here and there git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15594 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
54527a9ad5e1e451369516bf8e58972f8790b49a |
|
12-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The ServerWindow now keeps the desktop (read) lock for up to 70 messages at once. This should make drawing a bit smoother. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15515 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58290b7b3734b8b517a8e2ba0b65cb4af107f59f |
|
12-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
WindowLayer::ProcessDirtyRegions() no longer deadlock in case it can't send the AS_REDRAW message. The AS_REDRAW message is now only used as a notifier - it's arrival is not critical anymore, IOW it's simply dropped when the queue is full. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
61fed21b0401ca13f44df07fcdda8690975e6871 |
|
12-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed Write[Un]lockWindows() to [Un]lockAllWindows(), and Read[Un]lockWindows() to [Un]lockSingleWindow(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15509 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bff84e78b75f30be586ab5b8d29228c85cac8259 |
|
11-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
This enables BDirectWindow support again. It also fixed a bug in the old code - the handshake semaphores were created acquirable, causing the BDirectWindow::DirectDaemonFunc() to call DirectConnected() with an uninitialized buffer and way too early - this probably didn't show up before since it called it before the BDirectWindow constructor ran through, so that DirectConnected() would still point to the BDirectWindow version, and not to the implemented one of its subclass... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15505 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
71b550889e83d71f19252134848110b2f9417e7c |
|
10-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Moved dw_sync_data to a private header DirectWindowPrivate.h and renamed it to direct_window_sync_data. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab6a6bed3aa23d232436219a1952af9f1806753c |
|
10-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed direct window commands * Removed unused cruft from ServerProtocol.h git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15468 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fc70d6db870595a2e93737a5a7757107984dff9d |
|
10-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed AS_LAYER_INVAL_{REGION|RECT} to *_INVALIDATE_*. * Removed unused AS_LAYER_INVALIDATE. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15467 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ea966eee389560360712bc5f061884455cd5d8b |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some cleanup, removed some remaining RootLayer references. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15453 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ccfb624b7a98341c786ac5b1bc0983b2c136de06 |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34227d2c345f87c9eeee09004f31e4713278a0c9 |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A couple of changes related to modal and floating windows: * Desktop::SetWindowFeel() is now working, but doesn't respect the window position yet (ie. floating windows would have to be moved to front). * WindowLayer::Workspaces() now always reflects exactly the lists it's in (at least after Desktop::AddWindow() has been called). WindowList::AddWindow() and RemoveWindow() now update this flag to be correct at all times. * Fixed Desktop::_ChangeWindowWorkspaces() to not set the current workspace for windows that are not on the current workspace, and vice versa. It also would hide windows that were already hidden, and tried to show windows that actually were hidden (did no other harm than triggering a rebuild of the global clipping). * Floating windows now work as expected. * Desktop::SetFocusWindow() won't give a window focus that has a modal. * Renamed OnWorkspace() to InWorkspace(). * ServerApp::InWorkspace() now works correctly, added ServerApp::Workspaces() as well. * WindowLayer::SubsetWorkspaces() returns the workspaces mask this modal or floating window should be in. * New window flag B_SAME_POSITION_IN_ALL_WORKSPACES should work as well. * Floating and modal windows now have always set this flag. * Added a WindowList::HasWindow() method. * Desktop windows (windows with the desktop feel) can now have focus again (I accidently broke that before). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15434 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
939fb4077cfd90b688d29b738889082d3a9fa0bb |
|
08-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fix scrolling of BViews that rely on app_server painting the background, remove a forgotten debug output in ViewLayer, reimplemented setting the window title during runtime, fix Decorator redraw on pressing buttons - though I was lazy on that one... it works, but as the TODOs say, it would be better integrated directly in the Decorator class than being handled by WindowLayer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15429 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
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
|
#
c072e9f1f57e66aa0d758cdc49db0bc76b1e65e4 |
|
02-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* BWindow::AddToSubset()/RemoveFromSubset() no longer send their team ID; this is known by the server, anyway. * B_MODAL_SUBSET_WINDOW_FEEL now also works as expected. * Renamed AS_REM_FROM_SUBSET to AS_REMOVE_FROM_SUBSET. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15285 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
42e1c25d0174ccb59bd4e7ac06d5aaf30974a22f |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
"Oops, I did it again": AS_SET_FLAGS returned B_BAD_VALUE on valid flags and B_OK on invalid. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aecd5eefaff304039c2dbe8e2519103fe3941ab1 |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the check for a valid feel was wrong, reported by Michael Lotz. * also followed Michael's suggestion (more or less) and moved the look/feel/flags checks into separate methods. * on construction, invalid look/feel/flags values are now corrected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15269 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
57be2866092ae0247cc70f573761d44a0419f893 |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* when moving/resizing windows on another workspace, the Workspaces window has to be udpated anyway. * some work towards being able to set a window's look/feel/flags on-the-fly. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85096c8acbb6e63a37dfa2707b8e232592381887 |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some cleanup: * look/feel are now window_look/window_feel instead of int32. * removed the level stuff, I don't think this is needed. * some other minor stuff. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15261 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
19d801a6b6acbd725e8bb474c3be56d4fa99b66a |
|
01-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Moving/resizing is now routed over the desktop as well. This also allows the workspaces layer for these actions, which is now done as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15258 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ed656a3a9b72a39f19589c7f2c3a907aaf8d27ee |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
You must not have RootLayer locked when calling any method from EventDispatcher; just another case of troublesome generic RootLayer locking in ServerWindow (I'm looking forward to get rid of this). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15249 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a631158a6254702beac3bbee2814769757bd5ec7 |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Reenabled most of the workspaces functionality - the Workspaces window doesn't show any windows, but everything else seems to work fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
15918e4fa5bcbea5fc7ed8c77b7858374621308f |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* new windows now get a fake B_MOUSE_MOVED message in case they are opened directly under the mouse cursor. * Added Desktop::ShowWindow() and HideWindow(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15238 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
|
#
27adb969620d656c8d92dfa608cd85c35f4d37e3 |
|
28-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Massive RootLayer & Workspace tearing: * workspace switch and subset windows functionality temporarily removed (away with that mess!). * no more RevealWMState() - we now have methods like ActivateWindow() and SendWindowBehind() that do all the work - just a little cleaner and with less overhead. * Workspace is now a pretty passive class - it only stores configurations of the windows and screens. * added an evil work-around for a locking problem (in RootLayer::_SetFocus()). * I'll plan to move pretty much all of the remaining root layer functionality to Desktop - so that the all regions lock is only held in case clipping regions are affected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7b93468cc4c960789809a877a0b8bed153651b3 |
|
26-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
SendMessageToClient() now gives a little more info in case sending failed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15174 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fa2c53ed525296cfcf667e4626e6c762b70bb9f3 |
|
25-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added very simple and annoying profiling mechanism to ServerWindow's message processing (enabled when PROFILE_MESSAGE_LOOP is defined). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15150 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
67e79bf45aca758085d8272ba2c2c46415560361 |
|
25-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A message looper can now have a death semaphore, ServerWindow now uses them. ServerApp now waits up to 3 seconds for windows before killing them - it now waits on the death semaphore, and only kills a window if it didn't quit fast enough. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15147 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
|
#
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
|
#
5d29bfa5fac8cb111a751be42eda3d5eb0bb6379 |
|
24-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved change_winBorder_feel() into GoChangeWinBorderFeel() and removed the former. * Renamed GoChangeWinBorderFeel() to ChangeWinBorderFeel(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15114 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
|
#
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
|
#
4ceb1e519c0447147b1d8b54a324bb7fedd3a606 |
|
20-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* reverted Adi's premature changes to BWindow and restored _DetermineTarget() and task_looper() again. * removed BMessenger::fPreferred - whenever you had to specify "usePreferred" separately, you don't have to do that anymore - use B_PREFERRED_TOKEN instead. * fixed BTokenSpace::GetToken() semantics: it will no longer touch the "object" argument in case of failure. * Introduced a BWindow::_DistributeMessage() that will be part of the event dispatcher counterpart to the app_server (the other will be _DetermineTarget()). * Made it easier to use Michael's Message4 implementation: just add the following line to your UserBuildConfig: AppendToConfigVar DEFINES : HAIKU_TOP src : USING_MESSAGE4 : global ; * Introduced ServerWindow::HandlerMessenger() and FocusMessenger() - the first will target the client handler, while the other will target the preferred handler of the client looper (usually the view having focus). * Fixed dano message unflattening in the Message4 code. * Changed BMessage::PrintToStream() to no longer use macros in the Message4 implementation. * I hope that's all - it's a huge change, but it's all connected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15046 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
|
#
55d6d70ee59eb2e2473c2195b5e6b26ee29380d3 |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* EventDispatcher::AddListener() now honors the BView semantics and will only update the options in case the specified eventMask was zero. * Added missing EventDispatcher::RemoveTemporaryTarget(). * Layers setting their event mask are now added to the EventDispatcher. * The RootLayer is no longer contacted for SetEventMask() - it still handles SetMouseEventMask(), tough - as a result, SetEventMask() temporarily doesn't work anymore. * Added Layer::ViewToken() method. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15023 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6b95c59bd81cad592e270d6008a031322907b784 |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed myRootLayer variable to rootLayer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15019 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
|
#
f68598780e4aa2a311b1fc8fce0b89b871bc9a9d |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the keyboard events are now using the new EventDispatcher, B_KEYBOARD_EVENTS don't work yet, though, as the dispatcher is not yet notified about those. * no more mouse cursor jumping - the cursor will now start in the middle of the screen; this should be part of the initial input_server handshake, though. * ServerWindow can now return a BMessenger of its client window. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15017 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d8f5950d0c28592beaef5196091ef2a5ce92901 |
|
17-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some cleanup, mostly GetHWInterface() to HWInterface(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15016 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aabcf639738fdd4375d28412fdc12317a66e4553 |
|
16-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
When using "Message4", we don't need to flatten the BMessage into another buffer anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14956 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8f90c77db91f4cfae126e1865df10833036c0b41 |
|
15-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
a quick fix for offscreen layers drawing region, ie BitmapDrawing works again git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be05d56c7eea834b5983ba3411d79fabd8b616b7 |
|
14-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the app_server now uses a global token space - this should later be changed to have different token spaces depending on the scope of its objects. * removed TokenHandler - we're now using BTokenSpace instead. * removed unused IPoint.cpp - if we ever need it again, it can still easily be resurrected from the dead. * some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14925 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
|
#
d9525baaf5225ccac51a32b0fb2ba5d8c0b367cf |
|
13-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Forgot to update Screen.h with the last commit... * Introduced and implemented AS_GET_SCREEN_ID_FROM_WINDOW - it only returns B_MAIN_SCREEN_ID, though. * renamed ServerWindow::fHandlerToken to fClientToken. * The BScreen(BWindow *) constructor now really asks the server for the screen ID. * ServerApp::fWindowList is now a BObjectList. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14910 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf10934e5fde37c267f7fb3bec89a8e9f5d9c476 |
|
13-Nov-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Introducing Message4. The changes to the related sources are ifdefed with USING_MESSAGE4 which is defined in Message4.h. To use Message4 the Message4.cpp, Message4.h, MessageUtils4.cpp, MessageUtils4.h and MessagePrivate4.h have to be linked to their counterparts without 4 suffix. Then MessageBody.cpp and MessageField.cpp have to be commented out in the app kit Jamfile and r5_message.cpp has to be added. There remain some bugs to be found. Feel free to change that. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14882 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
758b1d0e05fe1042cce6e00d194a147802d4f9be |
|
12-Nov-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixes that make Haiku build with gcc 4. Mainly out of the following categories: * Missing includes (like <stdlib.h> and <string.h>). * Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so. * Local variables shadowing parameters. * Default parameters in function definitions (as opposed to function declarations). * All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported explicitly from the std:: namespace now. * "new (sometype)[...]" must read "new sometype[...]", even if sometype is something like "const char *". * __FUNCTION__ is no longer a string literal (but a string expression), i.e. 'printf(__FUNCTION__ ": ...\n")' is invalid code. * A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes" is an invalid expression. * "friend class SomeClass" only works when SomeClass is known before. Otherwise the an inner class with that name is considered as friend. gcc 4 is much pickier about scopes. * gcc 4 is generally stricter with respect to type conversions in C. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25922abe7460d9e49575e2fbcd5feb9ec2d67020 |
|
12-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
reduced the directwindow semaphore timeout to half a second. Now we checks for < B_OK in the semaphore acquisition, to handle every error condition git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14860 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b7b3ade5c6e0b90bb04b61988fee18149814c6f |
|
11-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added more or less empty "begin/end transaction" handling in ServerWindow. Right now, only the updates are disabled as a start. I am not sure what else we can do here, but there probably is something :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14855 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dfd5b49996d7422a371a463a05ba98b6276995d5 |
|
11-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* last change set window title to "Unnamed Window" if the title was empty - but that's probably not wanted, as a window without a title is perfectly okay. * AS_CREATE_WINDOW will now return a proper error code on failure. * The title read from the link is no longer adopted by the ServerWindow constructor, but copied - while the previous version was a bit faster, this is a lot cleaner. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14851 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
df555388b940f0a25cbd5f6dcb5b19ac4183ccd6 |
|
10-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Don't look for bugs in other people's code. The bug is in your code. IOW BDirectWindow apps now work fine :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14848 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
|
#
0d660a960b614a773d1073b3c59a8d69c59d8582 |
|
10-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
handle errors when reading from the link, at least for the bigger items, it should be enough to just check the error in the last call to Read(), since previous errors are kept in the Link git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14819 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b97fe884d2d06e4f85e344d5d82de55f7ac5340 |
|
09-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
now updates BView::PenLocation() correctly after DrawString(), stuff like DrawChar('a') is working nicely now, for rotated text much better then in BeOS in fact because of subpixel precision in pen location git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14794 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f8e33ed5bd87553649a93b2b06145865af534d55 |
|
09-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed current pen position, thanks to Stefano for spotting this one, I looked very hard in the same place, but didn't see it :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14787 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8fbbd37f83d51bdfd787081186c28e0e8f4fb254 |
|
08-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Added some code for notifying client BDirectWindows that the window was moved or resized. Currently commented because of other problems. Looks like the windows bounds are not changed if a MoveBy() is called before the window is shown. Removed unneeded includes. Small changes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14783 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
|
#
0266d3fd18be706f197da9b07459c11426efb940 |
|
08-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Made ServerWindow::_HandleDirectConnection() a public method. It will be called from WinBorder too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14773 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
|
#
b574c741218eb16c77209079f100d5c8c3dcf759 |
|
06-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
opList is uint32 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14733 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
|
#
428ebf6d5f006d70314d2420169b9e752f0ca3cc |
|
04-Nov-2005 |
Jérôme Duval <korli@users.berlios.de> |
myRootLayer can be NULL for offscreen bitmaps, fixes crash on Media preferences git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14711 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e7869c4c74d0fdaa08475b85c81044b5864f5dc7 |
|
04-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
renamed DisplayDriverPainter to DrawingEngine, removed tons of duplicated code, and - guess what - found some bugs while doing so... but nothing critical. This patch removes the former DisplayDriver API from libappserver.so, which I think breaks Decorator plug-ins for now git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14707 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
|
#
13cff625f0f45979c5742d837c2e8a8876ce4968 |
|
04-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
cleanup and removable of large portions of code duplication, fCurrentLayer and fCurrentLayer->CurrentState() are checked in _DispatchMessage already, so _DispatchGraphicsMessage() assumes they are valid git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14691 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb24f13bb05dfd2a6c92ec8198c4c7a811728767 |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The current graphics state of a Layer can now be retrieved by the new CurrentState() method. ServerWindow is now using that method instead of directly accessing a Layer member. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14684 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c2fd7b2379219c253bed0a0ffd99aadba4303fa |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed scale calculation. The scaling is still ignored for the drawing coordinations. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14682 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
|
#
f3aa24ede73edea524d7d041137c716202d1106c |
|
01-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Corrected the clipping region for BDirectWindow. The stripped down Stars demo now works. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14621 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c378a571401c3b0953796331ea12f75f638ee25 |
|
01-Nov-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Thanks to latest changes, BDirectWindow now draws something. Though, looks like either the clipping region is wrong, or the app_server overwrites what the BDirectWindow app writes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14610 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
094efed4345dd4b97a0fa029641dc6e24a0d0bae |
|
31-Oct-2005 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
restored 14604 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14606 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
051d07f0fc584c371837ac8026dcc5574351f262 |
|
31-Oct-2005 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
no longer free() a title pointer that wasn't malloced, but instead came from the outside (right from the middle of some port link stuff) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14605 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
959a5a68bcb01c877ea6fe66211e60d54bab1ecd |
|
31-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Removed global gDesktop variable - there is now an sDesktop variable in AppServer.cpp, but that will go away, too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14590 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
|
#
9f0d28e92101f13976d806835d5cd3717cad8587 |
|
29-Oct-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Fixed a stupid bug when checking if the window order changed. Added support for BWindow::Activate(false). Added some debug support for Workspace::WMState. Simplified a bit code for sending a window to back. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14563 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
66156adf92f73c77f919f2cfb9f7cf72d38b858d |
|
24-Oct-2005 |
Adi Oanca <adioanca@nowhere.fake> |
In case SendMessageToClient() fails, it's good to know why git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14492 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
|
#
77e79df0f7dda43f213932250283256b2a5104a0 |
|
12-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Added a comment git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14363 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dea7a63c17f28bfc1038c9d26d42bdb7eeb666b7 |
|
11-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Some changes in _HandleDirectConnection(). Not tested. Could even fix the relative crashing bug. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14358 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1fbd158e8b1f790e373406e4eebb96bb271ee03e |
|
11-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
_HandleDirectConnection() now fills the direct_buffer_info structure. Clipping info is probably wrong. dw_info works, direct_window_test crashes for some reason git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14356 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ef06444893d89c578678f37a2a8708ca1be8b775 |
|
10-Oct-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Implemented basic server side support for BDirectWindow. It doesn't fill the direct_buffer_info struct correctly, it just sends B_DIRECT_START/STOP messages on show/hide for now. Tested with dw_info git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14347 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
88ef6ce8febf3fae94b1387408bb63aec76dd413 |
|
06-Oct-2005 |
Adi Oanca <adioanca@nowhere.fake> |
- fixed build for NEW_CLIPPING define - implemented RootLayer::SetActive(WinBorder*). - added support for BWindow::Activate(). I realize now that I only added support for Activate(true). :-D In the next days I will add support for Activate(false). - removed a few cases from ServerWindow as they are not needed. - addapted WinBorder::MouseDown() to work with the new RootLayer::SetActive() implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14318 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
|
#
ffd509fd9b4ae16fa1d210921a7071f394566ffd |
|
05-Sep-2005 |
Adi Oanca <adioanca@nowhere.fake> |
more code for input events. refractored some code in RootLayer class git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14119 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
144022be622956e9b4a21ab9a89c60fce1b08fbc |
|
03-Sep-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Started to properly implement support for BView's events mask git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14106 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f2fd12985205decda0138ba31d9b82865b6fe9e8 |
|
30-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
now uses delta escapement improved GetBoundingBoxesAsString (just for fun, keep in mind we'll use AGGTextRenderer in the end :) ) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14091 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c6a25272973999ab0f24dc010b70c7ea811fa35f |
|
24-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Split ServerWindow::Quit() into two parts, and moved the generic one to the MessageLooper class - the other part is called from there as virtual _PrepareQuit(). Moved the class documentation to the source file. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89ab121e66e7cd6136e4e561805b85acea3d046a |
|
23-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Factored a MessageLooper class out of ServerWindow and ServerApp. Could still be improved a bit (Quit() and _MessageLooper() are empty right now). Removed ServerApp::PingTarget(). Hopefully cleared some confusion about ServerApp::fClientLooperPort and fClientToken (previously fHandlerToken), even if it's currently unused. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13807 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
39d30137dcd7c969ab1ab6e92549897dd7f7f9e4 |
|
18-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A call to SetSizeLimits() can change the window frame, so it's now updated, too (a separate FrameResized() message is sent anyway). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13742 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
|
#
3f319b3346fcc3f45786d9fb9c6ca698c4de7a22 |
|
10-Jul-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Some cleanup, some removed typos, some unification, some fixes and some added todos. Most of it related to client-server communication. Apps that rely on BFont stuff should work now (StyledEdit, Fonts, Keymap, Menu, ...). Or should not hang/quit at startup at least. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13625 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
|
#
a5ca645e498c0af32957cf1cb4536af4cf4594a7 |
|
07-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
when a Layer or WinBorder is deleted, the RootLayer gets a chance to set some important pointers it keeps arround to NULL. It is not unlikely that this improves stability a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13534 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ed0f43872ac031e5eed616025bce5d1d4f3b63d |
|
06-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
checks rootLayer Pointer, since offscreen windows are not attached to RootLayer. This shouldn't have been a problem though since Offscreen windows were never Show()n git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13515 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
806767ec21530cfb049592cc24b599e01f88ed09 |
|
06-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
It now deletes its message port (it was previously incorrectly deleted by the client). Now handles it gracefully if someone deletes its message port (it will try to close the client and quit). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c3f99cf465e714295e61bb88043b080bccc9e6a |
|
06-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
the clipping in fLayerData is in screen space, so when getting/setting the user defined clipping, we need to convert to/from view space git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13505 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34ce0e42d47869b916133ff39b1fa02ee7164d6a |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
As it turns out, window_info::type is really the window's "feel". Basic support for the desktop window feel: WinBorder will now resize a window with kDesktopWindowFeel to span over the whole screen. Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13462 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b1246d968e93ad26e5d054142037c65f73d663d |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed AS_WINDOW_TITLE to AS_SET_WINDOW_TITLE. Fixed handling in ServerWindow as stippi's latest commit broke it. It's now properly done with a separate ServerWindow::SetTitle() method, that will also take care to rename the window's thread. Changed naming the window thread in the app_server to "w:<team>:<title>". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13461 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4902831aca6d2d0709adfd64dd9aae6d78dfbf6a |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed the newly introduced hang when a menu item was selected (which was only one of the consequences): a forgotten rootLayer->Lock()... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13458 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6a0a0a80daf7b99da86f3d6085aff3525dd13b50 |
|
05-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented AS_GET_WINDOW_LIST and AS_GET_WINDOW_INFO. Renamed Desktop::FindWinBorderByServerWindowTokenAndTeamID() to FindWinBorderByClientToken(). Every ServerWindow now gets a server token. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13455 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
|
#
f5d8fa6e6009205e4e4d823a722ade8fb425a4a6 |
|
04-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
AS_LAYER_GET_CLIP_REGION missed a Flush() in case the view was not hidden, and that put apps that used it to sleep (for example, Tracker is using it). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13433 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc1a7f9f09d22b84c609cbfd88210c629623f3d1 |
|
01-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Now prints out a message when the window title should be set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13392 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37fa302a92254c33cc49b91e8b3e12511b821cfc |
|
01-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Also commented some unimplemented message handler to not break the reply mechanism. The ServerWindow did not even have such a mechanism anyway... (it now has). Minor cleanup, replaced some "delete" with "delete[]" where appropriate. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13382 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
|
#
f598d348b12fd6d71c3be7c84b85c24f8fd403e4 |
|
01-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
A window thread is now called "w:<title>" instead of just "<title>". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13376 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7596f59ec4a314244cc0d6a57eaf305806a5582 |
|
28-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
AS_LAYER_GET_STATE no longer sends stuff that doesn't belong to the layer's state. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13335 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
80a230b10efd1cd0d65c3007ced2694850e580dc |
|
28-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Rewrote the push/pop state and ViewAttr stuff: - it now seems to work finally correctly - renamed ViewAttr to ViewState and put it into the BPrivate namespace - some refactoring (moved some private BView methods to ViewState) - renamed AS_LAYER_MOVETO/RESIZETO to *_TO (note the underscore) - exchanged BView::originX/Y with fParentOffset (BPoint) - divided AS_LAYER_GET_COLORS into separate ones for high/low/view color - BView::SetPattern() now actually works as expected (ie. updates only if necessary) - exchanged the ViewAttr::flags with ViewState::valid_flags which inverses the previous logic (which wasn't even used consistently) - fState was initialized twice (incorrectly by the ViewAttr constructor, and then again correctly by initCachedState()) - now the ViewState constructor does the job alone, but correctly - BView::PushState() no longer resets the state (it did so only locally anyway...) - cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13325 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
|
#
a87826801c2a95aa5188b5598fe4b1c11bc822f4 |
|
27-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added workaround for current stability problems of the app_server: giant lock, say hello to RootLayer. Adi will probably not like this, but that's definitely only a temporary solution :-) This little fix greatly increases app_server stability under Haiku - ie. menus are working now, the team monitor comes up regularly, etc. - how great is that? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85bd83a71069c8719f31d5ddfb0477a6bc1f4ebc |
|
27-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
AS_CREATE_WINDOW now also gets the actual frame width and size limits of the window on server side - ie. if the app_server could not create a window of the size requested, BWindow::fFrame will still be correct (and the size limits will mirror actual decorator limits). Renamed fMinWindHeight and friends to fMinHeight and so on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13302 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
|
#
3dcb3b079ab645a90859eba6505cf2692c291138 |
|
23-Jun-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Added some root layer locking in ServerWindow.cpp when accessing the layer tree. Moved HWInterface management out of DisplayDriverPainter and into Desktop. Removed all the directly hardware related functions from DisplayDriver API. They just called the same HWInterface functions. Now DisplayDriver is much cleaner and ready for being attached to a yet to be written BitmapHWInterface. Clean up of the display mode stuff in Screen and the View-/AccelerantHWInterface. Frequency is now regarded on Haiku. AccelerantHWInterface::GetModeList now works before SetMode has been called. Added MultiLocker from the sample code. HWInterface uses it now in preparation to being used from multiple instances of DisplayDriver. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13252 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1b53e8af26fec8abbba112529036233f3b071e2e |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The app_server now cleans up better after a team crashed; not only the application and bitmaps are removed, the team's windows are now removed as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13251 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ce1639b2bf1fc9f842e8f22a4a4cb035d2599a21 |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Some more cleanup: - replaced fMsgSender/Receiver with a BPortLink fLink - moved message loop into non-static method _MessageLooper() - renamed Zoom()/Minimize()/Quit()/ScreenModeChanged() to Notify*(), and Quit() to NotfiyQuitRequested() to make more clear what they do (they don't operate on ServerWindow, they just notify its client) - less insane way to init a window: there is no longer the constructor and a separate method Init(); now there is the constructor (which fully sets up the window), InitCheck(), and Run() which runs the window's message loop - moved the quitting stuff into a separate method Quit() and made it callable from other threads. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13247 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
|
#
fcb006dcf5e3396d905e09d127c085f7efb9b017 |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Rewrote how the app_server and ServerApp's quit. As a side effect, the server can now quit instantly. AppServer must no longer call ServerApp's destructor once it's running - it now has to call Quit() in this case. The ServerApp is now destructed in its own thread. Some cleanup (like renaming ServerApp::MonitorThreadID() to Thread()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13238 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2e86adec11532e39de02af03dab30b12ee465c5f |
|
22-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented AS_GET_MODE_LIST server side. Fixed broken ViewHWInterface::GetModeList() - it did not correctly write into the allocated memory. Also extended it to be more flexible, has better timing values, and more resolutions. ViewHWInterface::SetMode() will now check if the requested mode is in its list of supported modes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13226 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
|
#
53442520cc7c5284373e7b65a8ab55d403ef583d |
|
15-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed a bad bug in the app_server: fCurrentLayer was used to determine to which layer a new one would be added to, but BView::AddChild() would only set this correctly for the current view, ie. all children of the new child were added to the wrong layer in the app_server. Now, AS_LAYER_CREATE sends the parent's token to the server, and the server relies on this to build the layer hierarchy. All of a sudden a lot of hidden views are visible now. I noticed the bug while refactoring the task manager, but a lot of apps were affected. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13164 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
|
#
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
|
#
75936a02e432bb4ceb04494f0d53eb4d10ac7764 |
|
07-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
BPortLink now has a FlushWithReply() method itself. BPortLink::AttachString() now accepts a length argument, and will no longer send a terminating null byte; LinkMsgReader::ReadString(), however, will make sure the string read is null terminated. Changed client communication code to use FlushWithReply() instead of Flush() and GetNextReply() - there were many bugs and shortcomings in the code, I hope I've fixed them all. Converted ClientFontList.cpp to our coding style (but not completely, the class members are missing). Some more cleanup - I hope Adi will adopt our coding style one day! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 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
|
#
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
|
#
6390df8e27c19a517f8aa043a43d6b5051cf6dd2 |
|
28-May-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Made app_server a static, renamed desktop to gDesktop as it's a global, RootLayer now uses its own fDesktop internal member instead of the global one. Fixed a typo in some commented code (thanks Axel) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12864 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
280d1aac5bb1d7982c84cad6c9e8e82e7249ee2c |
|
26-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Tried something, didn't work, some cleanup left. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12845 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c7e8ef8f43fe5ec58c8e3126d5be9dfb0560f68 |
|
26-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed "cl" to fCurrentLayer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12842 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
|
#
55d6f1b792f86ba5529b5ec311e84a1bfd6e15ea |
|
25-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Many efficiency improvements to text rendering. Moved stuff from Painter into AGGTextRenderer which didn't belong in Painter. AGGTextRenderer now has an embedded transformation, which expresses the font rotation and (in future) shear settings. Removed direct support for BBitmaps from Painter (supposed to draw ServerBitmaps). Tested drawing of bitmaps other than B_RGB32. (only B_CMAP8 and B_GRAY8 so far, but they work). Right now, these colorspaces are supported by on the fly conversion. So every colorspace supported by BBitmap::ImportBits() should work, which are a lot more than the R5 app_server can display. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89d4bfbf2aadff7a43c4703acf78bf6950942b75 |
|
23-May-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Added initial support for BView::SetMouseEventMask(). Buttons appear to be working well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12789 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f513bbafe2c20df2e51b756e437dcd21ef30380 |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Font rendering code should be cleaner, maybe a little more efficient and better documented. Rotated text is supported again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12748 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52005fdaffeb73e8826fadb352f0a0179821c3a7 |
|
19-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Finally fixed Adi's repeatedly mentioned pet peeve: in AS_LAYER_GET_MOUSE_COORDS communication, the port's reply port is no longer sent to the app_server (as it knows where to reply to, anyway). Also made sure the view's looper is locked while getting the coords - I guess BPortLink doesn't like to be written to from two different threads :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9962b67e5f4bb2c2b8a0e95edbafe949d915c238 |
|
19-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
DisplayDriver::DrawBitmap() takes no more region, the clipping is expected to be already set, as with all other drawing functions. Moved bitmap drawing message dispatching in the drawing messages area, where the correct clipping is set too. Moved cases for messages that don't need clipping applied, ie which don't draw anything, into the normal dispatch function. This means SetHighColor() and so on will no longer rebuild the clipping in Painter. Would be interesting to know how much performance this had cost... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12741 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3eaf63230541188d9b0c1709b514d0fc6c61491e |
|
17-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
improve smoothnes of arcs rendering in Painter, fix a warning git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12710 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
|
#
d4045331c8650c11875299cf678c1115c1681dd7 |
|
14-May-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
some minor cleanups git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12664 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb80e15b3c577ab5e800b07024556f88b823f0f8 |
|
14-May-2005 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
ServerWindow is no more a ServerApp's friend. Some cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12663 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
265db8051632b2825b343a4327e69068f2d179a3 |
|
03-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
added a timeout for sending messages down to the client, it keeps app_server from hanging, though of course it doesn't fix the real problem, I have not had time to investigate the messaging, but this work around shows that the hang ups that I was seeing indeed happen in the messaging code git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12557 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9715a3e1bf95ffe0cc6d96ffc1c2588e84477b6b |
|
27-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed BWindow::MoveXX(), BWindow::ResizeXX() and BView::ConvertToScreen() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12491 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
|
#
4828a7251f33a441d194cfbb7b22a09c0f80f5d6 |
|
27-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
I'm not 100% sure, but I think I fixed a confusion in sending the current view position and size to the client. Note that BView::originX and BView::originY are poorly named, because they are not the local coordinate system origin, but the offset within the parent at which the view is located. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12484 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
|
#
93a2cfd43c65acc279d23e4c9988dd13f9be7dfe |
|
26-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Correct implementation of BView::CopyBits() in ServerWindow, implementation of CopyRegion in DisplayDriverPainter that sorts the rects topologically depending on direction and does the copy in place, obtaining a speedup of about 250%. TODO: extract the sorting algorithm so that it can be reused for the hardware accelerated version later. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12468 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
|
#
099974916488742412e5cbd169b4ed011bd929bf |
|
19-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
experimented with BView::CopyBits(), found out how it should work, but didn't do the changes yet for a correct implementation git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12444 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
|
#
387242437d609758b595b6565da8dfb7cbb9bf51 |
|
18-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
moved more old stuff which isn't used anymore git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12439 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d7c2c05061210a81952d3a32a464a0e23f008c48 |
|
16-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Big cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12424 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a415a09a32a08c1d4d8adfe8b966562a4ae0df87 |
|
15-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Adi told me a quick fix to get BView::Invalidate() working, it doesn't work correctly yet (invalidates child views as well), but it is a start. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12420 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8770be761daa5a288ed4f5d2c1ed2aaacd458560 |
|
14-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
convert the invalid rect to the top layer coords, Adi, an update message is only sent when a layer is the top layer in Layer::RequestDraw, I don't know how to fix this, but it would be nice to have BView::Invalidate working. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12398 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d88881f9c86435575699f49c940a91ddc2119a1 |
|
10-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Added support for setting a window's workspaces from BWindow::SetWorkspaces(). Added a new method in RootLayer to have the new window list, invalidate, set new focus and send activate messages in a single command. Did that because there were many places where the same sequence was executed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12287 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d137bc62e8b80f581524a50a730dfe47dbd82b91 |
|
10-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Removed a friend, a printf and a blank line. :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12280 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f6d87a6c55d1d621f0557c6a084e375d7f29497 |
|
06-Apr-2005 |
Adi Oanca <adioanca@nowhere.fake> |
Removed some commented code of mine as it's no longer needed git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12267 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
|
#
65369afd6de5a9c466e0da10ec3bf098d06c4cb6 |
|
26-Mar-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Implement AS_LAYER_COPY_BITS. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12066 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f43d1e849d8dd10cecb64cb111e42c251e8d0cf0 |
|
26-Mar-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Implement AS_LAYER_SET_PATTERN. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12065 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
|