#
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>
|
#
c565d98b |
|
26-Dec-2022 |
Jim906 <jim_l@fastmail.com> |
Window: initialize fUpdatesEnabled to false * Set it to true when the client's message loop is started. * Prevents a Window from sending messages to the client BWindow when the BWindow's message loop is not running. * If a Window sends an _UPDATE_ message to its client and does not receive the expected reply, it will later refuse to draw to the area that was updated. This can happen in the case of a BView that is a child of an OffscreenWindow (BBitmap::fWindow). * Fixes #9064. Change-Id: I8ab840852f3875cb323842d927ee1e50b0aa3511 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5967 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
773d5303 |
|
19-Jul-2018 |
Tri-Edge AI <triedgeai@gmail.com> |
app_server: Implement B_OUTLINE_RESIZE - Allows applications to be resized without the window contents resizing with the window frame. - Due to the nature of out-of-tree decorators using private APIs, this will require all pre-existing decorators to be rebuilt - Newer decorators won't work on older versions of Haiku... - Also has some formatting with license headers. - Fixes #2724 Change-Id: Id0b45e7bbc0b636e6dffbd396eb584bf348b5296 Reviewed-on: https://review.haiku-os.org/c/haiku/+/344 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: Jacob Secunda <secundaja@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>
|
#
693e2f4f |
|
09-May-2020 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
app_server: actually invalidate decorator area on window close More completely fixes #12085 Change-Id: I73bf987f06422bebbfc739d3700c11edad928646 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2621 Reviewed-by: waddlesplash <waddlesplash@gmail.com> (cherry picked from commit a16c358d59b43b1e274b323105d24ce4e9f97292) Reviewed-on: https://review.haiku-os.org/c/haiku/+/2634
|
#
cf4ffd85 |
|
14-Dec-2019 |
X512 <danger_mail@list.ru> |
app_server: fix flickering when drawing background Fixes #15548. This change disables immediate drawing of background on expose and makes drawing background a part of the update session. In previous version expose/update separation is incorrect in some cases. For example when view with B_FULL_UPDATE_ON_RESIZE is resized, it will be updated with expose cause, that will trigger flickering. Correct handling should be update on old visible area and expose on area that became visible. If immidiate exposed area erasing is preferred, it need more work to fix. Anyway delayed redrawing cause problems only on slow machine or on slow responding applications, but current master approach cause flickering even on fast machines and on any application that use non-transparent view color. Multiple expose/update requests also seems not work properly. Change-Id: Ibd64eb2545ceb1197f1c8bc89043de6f87f11778 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2021 Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
|
#
9ca1f3a9 |
|
13-Dec-2019 |
X512 <danger_mail@list.ru> |
app_server: don't focus the window on mouse down if it accepts first click * matches BeOS behaviour. Fixes #15544. Change-Id: I2a3636024753b53ba9ad6446c187e6a4479c31b6 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2020 Reviewed-by: John Scipione <jscipione@gmail.com>
|
#
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>
|
#
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.
|
#
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.
|
#
03b82a62 |
|
28-Apr-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix decorator reload crash. - SetTopTap() -> SetTopTab(). - When reloading the decor, if the window in question is borderless, short circuit. Previously, we wouldn't allocate a decorator for such a window, but would then go through the remaining steps of attempting to set the focus/top tab, which would obviously crash. Fixes #8500 and possibly others. - Add error check that adding tabs to the decorator actually succeeded.
|
#
0e35d5d2 |
|
12-Dec-2011 |
John Scipione <jscipione@gmail.com> |
Change instances of wether in comments to whether. No functional change intended.
|
#
2ccad1f6 |
|
25-Sep-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
* Fix decorator reloading of windows in a stack. When reloading the decorator all tabs have to be added to the decorator, the focus and the top layer tab must be set. The decorator does not know about the window and the window stack, thus the window has to do it itself. * Add Joseph Groover to the author list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42768 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fcde9a32 |
|
09-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
When stacking windows, move the new window to the parent position and size. Simplify the part in S&T that took care of it before. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42615 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
747d2bb6 |
|
03-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Ok, ok if we redrawn the complete visible region anyway we don't have to calculate any dirt. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38a8938d |
|
03-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Only redraw visible region. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42568 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1c141573 |
|
02-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Move flags and look into the tab too. The flags are needed to determine e.g. whether or not the zoom button should be drawn. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42552 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c70bf97c |
|
02-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Set the top most window look when switching between windows in a stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42549 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
817f7d80 |
|
02-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Check if there is still a decorator. Fixes #7894. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42540 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
555ff465 |
|
01-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Check size limit of all stacked windows when resizing. Fixes #7893 thanks to diver (again). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42537 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd545a2a |
|
31-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Set the top layer tab when detaching a window from the stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42527 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ce29ffc |
|
26-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Remove some debug left over. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42503 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7b6df07 |
|
26-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
When closing a window the window can't redraw the dirty region anymore. Mark the region of the remaining window dirty. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42494 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
86b01082 |
|
25-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
* Draw the complete decorator off screen and copy it to the front when finished. Stippi please take a look. This fixes some flickering when drawing shifted tabs in stack mode. In stack mode the different tabs sometime repaint each other, thus the decorator has to been drawn double buffered to avoid artefacts. * Add an option to draw the button directly, i.e. when they are clicked. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42493 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7c5525e8 |
|
25-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Only allow windows with a normal thick border to S&T. Fixes #6647. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
16aa61c4 |
|
25-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix changing of the window feel and borderless windows. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42491 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
418f391f |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fixes #7796. The decorator add-on is unloaded when not needed anymore. Avoid assigning offscreen windows a window behaviour (which lives in an add-on). When loading another add-on the offscreen window was still pointing to an invalid window behaviour. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42482 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb2e9b06 |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Add multi tab support to the default decorator as discussed on the mailing list. Windows can be stacked on top of one another. All windows using the same decorator instance. This makes it easier to draw the stacked tabs and makes it possible to design more fancy looks for stacked windows. This also helps to fix some issues in S&T, e.g. when activating one window in a stacked group all windows have to be activated to ensure that all tabs are on top. This causes some flickering in tracker. * Each Window has a reference counted WindowStack class which can be shared between stacked Windows. To keep the Decorator separated from Window there is another tab list in the Decorator now. The index of the stacked Window in the window stack is the same as the index of the tab in the Decorator. Properties like title or window focus are managed on a per tab basis now. This mean when you set the title in the Decorator you also have to specify the tab id which is equal to the window position in the stack. * When drawing the decorator its important that only the top window is doing the drawing. Also the top window drawing engine should be used. Actually that is only a problem directly after a window is stacked and the other window has still a none empty dirty region. In this case we clear the dirty region of this window and stop the drawing (the top window will draw everything). * Track if shifting of a tab is still ongoing, i.e. mouse still down. * The key event filter called the DesktopListener without holding the window write lock. This probably caused #7801 and #7796. * Commented out assert's in Window::SetScreen and Window::Screen. Add TODO because I'm not sure about the screen access. This breaks all existing decorators again, sorry guys! Haven't looked into any other then the default decorator (and the SAT decorator). Will not fix the others in the near future so go for it! Since applications should be able to rely on S&T features the other decorator must be able to handle multiple tabs as well. A simple solution would be to draw all title bars in multiple rows. That probably looks quit poorly. Think the better solution would be to draw a tab interface in the title bar, e.g. like in KDE. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42478 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b46615c5 |
|
19-May-2011 |
Stephan Aßmus <superstippi@gmx.de> |
Applied patch by Joseph "looncraz" Groover from ticket #7445. This changes how Decorators are managed and applied. The app_server no longer scans and maintains the available ones himself, but is simply asked to load a Decorator add-on from a provided path. The Decorator scanning is moved into DecorInfo and DecorInfoUtil, private classes in the InterfaceKit. The bin command 'setdecor' uses those. I cleaned up all the coding style violations that I could find, removed chunks of code which didn't make sense (if you never put a NULL pointer into a list, you don't need to check for this and so on) and also cleaned up other passages for improved clarity and simplicity. I also tested the functionality and it works fine. Would even be Ok to include in Alpha 3, IMHO. Thanks for the patch! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41581 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
427788e0 |
|
24-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Extended the Desktop's MouseFilter to reset the mouse-down messages' "clicks" field. It does that when the modifiers, the pressed buttons, or the click target changes between the clicks, or when the distance between the click points is >= four pixels. * Adjusted the Window::MouseDown() and WindowBehavior::MouseDown() interfaces and implementation accordingly (we now also pass and return click count and click targets). * Removed the no longer need multi-click handling from DefaultWindowBehaviour. Fixes #6841 and #6867. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39623 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76107eeb |
|
24-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added ModifiersChanged() hook to Window and [Default]WindowBehavior. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39622 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
|
#
2248e30f |
|
04-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed broken accept-first-click eating logic I introduced yesterday, sorry! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37893 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0e505c0c |
|
03-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Separate the B_WILL_ACCEPT_FIRST_CLICK window flag from the accept-first-click desktop setting, following bug #6420. * Now, only windows with the flag set have to implement their activate behaviour itself (as Tracker does), the desktop setting no longer has an influence on this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37885 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b6ba2290 |
|
02-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Introduce a new DecorAddOn class which provide the DecorManager with the needed Decorator, WindowBehaviour and DesktopListener. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37857 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb86786a |
|
28-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Make _Windows public. - Reload all decorators when the decorator has changed in the DecorManager. - Update copyrights. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37801 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
30c31ae2 |
|
19-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Always use the current decorator. This partially fix bug #6334. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37608 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
369b4ff1 |
|
15-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Update copyrights. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37530 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
09301a49 |
|
15-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix another TODO and move the caching of the decorator footprint region (the border region) form the Window class into the decorator base class. To do so I make some of the public Decorator methods non virtual and introduce new protected virtual methods instead. The non virtual public methods handle the caching now and calling the protected method afterwards. This has to be taken into account when fixing the other Decorators! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37529 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
177ecc46 |
|
14-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Refactoring of the Window class. Move window behaviour into separate WindowBehaviour class. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37524 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2fc6f37e |
|
25-May-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Window::MouseDown() no longer eats the click if the window modifiers were pressed even if there is nothing to do. This allows the Deskbar to be moved with the window modifier keys held, finally, see #6029. * Removed a superfluous (fDecorator != NULL) from the check to choose between decorator and window modifier action - _ActionFor() can safely be called with a NULL decorator, and it just made the logic look wrong (even though no harm was done). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36935 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a0b37b6e |
|
11-Mar-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Tried to fix all issues with running a DEBUG build of app_server. * CopyRegion should not need the HWInterface to be exclusive locked. * BitmapDrawingInterface does not need to be locked at all, since it doesn't use a shared HWInterface instance. * Window and Desktop should lock the HWInterface appropriately before invoking CopyRegion() on the DrawingEngine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35822 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90b5a0b2 |
|
22-Jan-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed all DEC_* constants to CLICK_*. * Renamed DEC_MOVETOBACK to CLICK_MOVE_TO_BACK, and DEC_SLIDETAB to CLICK_SLIDE_TAB. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ba1d39e4 |
|
22-Jan-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Right clicking the resize area now always moves the window behind. This obviously differentiates from BeOS behaviour, but I think it makes much more sense this way. * Simplified DefaultDecorator::Clicked() by eliminating the "clicked" variable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35258 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
|
#
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
|
#
5762cbce |
|
12-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed typo. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33552 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
931cd377 |
|
07-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new flag kAcceptKeyboardFocusFlag that allows B_AVOID_FOCUS windows to still receive keyboard events. This is now used for menu windows (before, the menu feel alone would trigger that behaviour). * This also fixes bug #4691, as tool tip windows use the menu feel as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33481 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5a41c9fb |
|
06-Oct-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Sorry, should have tested the patch first. Now it actually works as intended. I.e. you need to hold down exactly Ctrl+Alt for the server side window modifiers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33459 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1d5d234 |
|
06-Oct-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Applied part of a patch from Caitlin Shaw (coding style cleaned up!): * Trigger server side window modifiers only if exactly those modifiers are pressed. * Add the new window flags defined in Window.h to what the server considers valid flags. Otherwise the new flags important to the server (only B_NO_SERVER_SIDE_WINDOW_MODIFIERS) get filtered out. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33458 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
|
#
9a9aa3e0 |
|
24-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The Ctrl-Alt-window modifier patch was pretty broken. Also, I've disabled window moving for windows without a decorator at all, at least that's what I would assume they intend (we might want to force them to set B_NOT_MOVABLE, too, though). * This also fixes the crashing bug as described in ticket #4314. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32649 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
|
#
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
|
#
1c8695a6 |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
only call HandleDirectConnection() if the window is not hidden. Fixes bug #4234 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f98bacf6 |
|
13-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved HandleDirectConnection From Window to Desktop. This should fix the spurious off-window drawing of BDirectWindow. At least, it does here. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32312 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6dad3717 |
|
13-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Don't let the app_server trigger a content draw if the kWindowScreenFlag is set. This fixes the white background when starting ParticlesII. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c6906c28 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* In FFM mode, when a window was closed, or the workspace was changed, the window under the mouse was given focus. This makes using FFM with the keyboard alone very inconvenient to use, which is why now the window that previously had focus will regain it instead; as soon as you actually move the mouse, the focus is changed as usual. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32014 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
97fd0558 |
|
28-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Fixed bug introduced with recent commits that didn't keep the relative offset of the mouse when resizing/moving windows when other constraints restricted the resizing or moving. * Applied patch by Stephen Deken with changes by myself: - Windows now snap to the screen edges. - There is a snapping time window of 1.5 secs during which the window still snaps to the screen edge after it first snapped. Then there is a pause during which there is no snapping. Thanks a lot, Stephen, and sorry it took so long, nice patch! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31841 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6e4ad063 |
|
27-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Improved the anti-accidental-window-nudge feature: Use the activation delay also in the MouseMoved() hook for a timeout. So window moving begins after either a timeout of half a second, or after having moved the mouse at least 4 pixels. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31834 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0f8d2b68 |
|
27-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Be a good boy and follow through with the new feature of server side window shortcuts so that the second mouse button sends windows to the back... :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31827 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e343673a |
|
26-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* The app_server implements modifiers for performing decorator actions anywhere inside the window. These are Command + Alt. In X11, it's just Alt, but that is already used in various Haiku/BeOS apps. * Introduced new window flag B_NO_SERVER_SIDE_WINDOW_MODIFIERS to disable the above. * Made click to front in FFM mode less strict, you can slightly move the mouse now and still click windows to front. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31785 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
63d557f0 |
|
15-Jul-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31600 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cc636a35 |
|
24-May-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Simplify dirty region handling when copying regions. Basically the full region is considered dirty and only what we are really able to copy (which excludes all possible dirty regions) is removed from that again. This is simpler and less error prone than to remove more than we may copy and then add the old dirty regions back. Fixes a few region copy related redraw issues most visible in case of scrolling like non-updated parts when scrolling in Tracker or Terminal as in bug #3803. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30840 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c4005c4d |
|
09-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Some cleanup in the commented out debug code. * Fixed a problem when scrolling. Basically, the region that could be copied should be removed from the pending dirty region. Before a region is copied, the dirty regions are removed from it. So the region at the target offset can always be considered clean. This fixes the problem in Tracker when enlarging windows that are already scrolled to the right or bottom. This then triggers the Tracker window to scroll the pose view in such a way that the bottom/right stays fixed, but would trigger this exact situation: The bottom is already pending dirty, but then the clean contents are copied on top of it. Fixes ticket #1849 and perhaps also #2975. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30068 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5ea31e66 |
|
13-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Cleaned up the dirty region handling in Window::CopyContents() (the backend of scrolling and BView::CopyBits()). Seems to fix the dirty entries when opening Tracker windows, and another problem I've seen when scrolling too fast in Beam. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29495 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
740ea807 |
|
31-Jan-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Exclude any dirty regions from scrolling or copybitting. The previous behavior, which was also the BeOS behavior IIRC, has annoyed me a bit as an application developer. It wasn't possible to avoid display artifacts, if for example scrolling a view which needed to be redrawn at the same time. It sounds strange, but makes perfect sense for the situation I have here. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29101 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
|
#
d0283566 |
|
14-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a method Desktop::_LastFocusSubsetWindow() which returns the last window being the focus window that is a subset of the specified window. * This is now used to bring the window to front belonging to a floating or modal window (if on another workspace), ie. Desktop::ActivateWindow() should now work with modal and floating windows. * Fixed typo (in Window.cpp). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7c84775 |
|
06-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Don't invalidate anything in offscreen windows. NetPositive is doing slightly strange redrawing, including scrolling the offscreen view that it uses in "flicker free" mode (which is the default). Invalidation does not work in offscreen windows, since the client thread is not running and certainly won't redraw anything. But that will leave a non-drawable region on the app_server side of things. Simply don't invalidate in this case. From what I have seen, redrawing in NetPositive seems to work fine now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28538 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85dbe55d |
|
24-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* r28281 accidently added the B_NORMAL_WINDOW_FEEL (0) to the list of special feels. This caused floating/modal app and subset windows to not work anymore. * This fixes bug #2914. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28309 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89b1afd1 |
|
22-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new window feel kPasswordWindowFeel that is above all other feels. * Changed the password window to use this feel. * Later, the screen saver itself should use this feel whenever the password mode is enabled. The password window should then use a modal-app feel, but this doesn't work yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28281 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0f32f7dd |
|
18-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added an ASSERT() and a check to make sure the workspace that Backmost() and Frontmost() are using is valid. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28228 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
|
#
139f143c |
|
26-Aug-2008 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
fixed warnings. Maybe we should do all the calculations in ints instead of using floats git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd2509c5 |
|
10-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Desktop::_UpdateFloating() and Desktop::_UpdateSubsetWorkspaces() both assumed that there was only a single window that was responsible for the workspaces of a floating/subset window. Of course, any number of windows can make up the workspaces of those. This fixes bug #2506. * Added a Window::InSubsetWorkspace() method to complement SubsetWorkspaces(). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26371 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
581e6786 |
|
09-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Change the protocol for sending the affected view tokens during an update session to also include each view's individual update rect (in screen coords). Should actually not be mush slower than the old version, and hopefully makes it possible to have smarter BView::Draw() implementations which should make more than up for any potential speed loss. * Removed unused version of View::AddTokensForViewsInRegion(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25879 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0c3c996 |
|
07-Jun-2008 |
Michael Lotz <mmlr@mlotz.ch> |
* Decouple local and user clipping into normal local clipping and a user clipping region pointer. * Provide _ScreenClipping() that only includes local and screen clipping but not user clipping. * Provide ScreenAndUserClipping() that returns screen clipping if no user clipping is present, or returns a combined region that is then cached. * Adapt all places where the former methods are used and decide which one to use depending on the relevance of user clipping. User clipping is now ignored for background clearing and when determining whether or not to call Draw() on a view. This should make Haiku behaviourally compatible with BeOS (confirmed by the ClippingAndRedraw test app) and should also fix the Firefox redraw issues. Stephan please review! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25854 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
55112db6 |
|
29-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Do not update the internal window state in case sending the message failed. * This is not perfect, but it makes Tracker catch up and redraw when the next event is due. This improves the situation in bug #2212. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25708 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58c42ec9 |
|
14-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
No need for the kWorkspacesWindow flag anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24388 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ffac272e |
|
10-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Used the new mechanism/options in the DrawingEngine with regard to back to front copies in Window for updates. When in an update session, any back to front copies are turned off. When the update session ends, the whole region is copied at once. This has two effects: For once, it avoids a lot of unnecessary copies (for example, rendering text copied the background and then the same area for the text again). But even more effective, it changes the entire drawing of any Haiku app to be completely flicker free. Provided it happens in the normal Invalidate()/Draw() cycle. And of course all this only works for double buffering mode, ie VESA. Potentially, I might have overlooked something, so that this patch could result in some drawing glitches, but in my testing, I have seen none yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24354 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
|
#
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
|
#
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.
|
#
03b82a629d6358fc6c4ad3b5bb45793fd028a0f2 |
|
28-Apr-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix decorator reload crash. - SetTopTap() -> SetTopTab(). - When reloading the decor, if the window in question is borderless, short circuit. Previously, we wouldn't allocate a decorator for such a window, but would then go through the remaining steps of attempting to set the focus/top tab, which would obviously crash. Fixes #8500 and possibly others. - Add error check that adding tabs to the decorator actually succeeded.
|
#
0e35d5d2e5ef3d288e056d60ef1b16dc399eaa0c |
|
12-Dec-2011 |
John Scipione <jscipione@gmail.com> |
Change instances of wether in comments to whether. No functional change intended.
|
#
2ccad1f632c815397f16f7062d97cd02bdede8b8 |
|
25-Sep-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
* Fix decorator reloading of windows in a stack. When reloading the decorator all tabs have to be added to the decorator, the focus and the top layer tab must be set. The decorator does not know about the window and the window stack, thus the window has to do it itself. * Add Joseph Groover to the author list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42768 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fcde9a3249fb92ca05cbb44b4037b4486025d823 |
|
09-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
When stacking windows, move the new window to the parent position and size. Simplify the part in S&T that took care of it before. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42615 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
747d2bb6dccf2702ad3bc4f35268ed16615a1692 |
|
03-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Ok, ok if we redrawn the complete visible region anyway we don't have to calculate any dirt. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38a8938d9ff440ee5c68bc54eb815f300de97947 |
|
03-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Only redraw visible region. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42568 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1c1415732dcf43dec54a93d20ad15c701dc6996e |
|
02-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Move flags and look into the tab too. The flags are needed to determine e.g. whether or not the zoom button should be drawn. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42552 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c70bf97cfc99652317b0418f9a53c8791cf695e0 |
|
02-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Set the top most window look when switching between windows in a stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42549 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
817f7d80039d667922f9ee05f3d6248932b1fba9 |
|
02-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Check if there is still a decorator. Fixes #7894. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42540 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
555ff46538c86abb0ad150f3c9ef9fc26eae8c21 |
|
01-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Check size limit of all stacked windows when resizing. Fixes #7893 thanks to diver (again). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42537 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd545a2af25e43ea46dfd34a2101f6279ae4a2ac |
|
31-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Set the top layer tab when detaching a window from the stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42527 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ce29ffc9711306bfb44c099fcb1d81ff5d0eae6 |
|
26-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Remove some debug left over. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42503 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7b6df07b845c49a49c4c157dcf306771e066f54 |
|
26-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
When closing a window the window can't redraw the dirty region anymore. Mark the region of the remaining window dirty. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42494 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
86b010824cfcf9923573ca68850fd26a71eeb0bc |
|
25-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
* Draw the complete decorator off screen and copy it to the front when finished. Stippi please take a look. This fixes some flickering when drawing shifted tabs in stack mode. In stack mode the different tabs sometime repaint each other, thus the decorator has to been drawn double buffered to avoid artefacts. * Add an option to draw the button directly, i.e. when they are clicked. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42493 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7c5525e83489cc80600bc31d1a8be774bccd34c0 |
|
25-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Only allow windows with a normal thick border to S&T. Fixes #6647. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
16aa61c46a18969d8fa9b13d04cf1f9cab03b80d |
|
25-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix changing of the window feel and borderless windows. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42491 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
418f391fb12d0485e22b522b6c5c62ed4a8034c2 |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fixes #7796. The decorator add-on is unloaded when not needed anymore. Avoid assigning offscreen windows a window behaviour (which lives in an add-on). When loading another add-on the offscreen window was still pointing to an invalid window behaviour. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42482 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb2e9b06acb1783543442464561b7811892ee7e2 |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Add multi tab support to the default decorator as discussed on the mailing list. Windows can be stacked on top of one another. All windows using the same decorator instance. This makes it easier to draw the stacked tabs and makes it possible to design more fancy looks for stacked windows. This also helps to fix some issues in S&T, e.g. when activating one window in a stacked group all windows have to be activated to ensure that all tabs are on top. This causes some flickering in tracker. * Each Window has a reference counted WindowStack class which can be shared between stacked Windows. To keep the Decorator separated from Window there is another tab list in the Decorator now. The index of the stacked Window in the window stack is the same as the index of the tab in the Decorator. Properties like title or window focus are managed on a per tab basis now. This mean when you set the title in the Decorator you also have to specify the tab id which is equal to the window position in the stack. * When drawing the decorator its important that only the top window is doing the drawing. Also the top window drawing engine should be used. Actually that is only a problem directly after a window is stacked and the other window has still a none empty dirty region. In this case we clear the dirty region of this window and stop the drawing (the top window will draw everything). * Track if shifting of a tab is still ongoing, i.e. mouse still down. * The key event filter called the DesktopListener without holding the window write lock. This probably caused #7801 and #7796. * Commented out assert's in Window::SetScreen and Window::Screen. Add TODO because I'm not sure about the screen access. This breaks all existing decorators again, sorry guys! Haven't looked into any other then the default decorator (and the SAT decorator). Will not fix the others in the near future so go for it! Since applications should be able to rely on S&T features the other decorator must be able to handle multiple tabs as well. A simple solution would be to draw all title bars in multiple rows. That probably looks quit poorly. Think the better solution would be to draw a tab interface in the title bar, e.g. like in KDE. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42478 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b46615c55ad2c8fe6de54412055a0713da3d610a |
|
19-May-2011 |
Stephan Aßmus <superstippi@gmx.de> |
Applied patch by Joseph "looncraz" Groover from ticket #7445. This changes how Decorators are managed and applied. The app_server no longer scans and maintains the available ones himself, but is simply asked to load a Decorator add-on from a provided path. The Decorator scanning is moved into DecorInfo and DecorInfoUtil, private classes in the InterfaceKit. The bin command 'setdecor' uses those. I cleaned up all the coding style violations that I could find, removed chunks of code which didn't make sense (if you never put a NULL pointer into a list, you don't need to check for this and so on) and also cleaned up other passages for improved clarity and simplicity. I also tested the functionality and it works fine. Would even be Ok to include in Alpha 3, IMHO. Thanks for the patch! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41581 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
427788e06f65f338595de54e91aa12792741e6d8 |
|
24-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Extended the Desktop's MouseFilter to reset the mouse-down messages' "clicks" field. It does that when the modifiers, the pressed buttons, or the click target changes between the clicks, or when the distance between the click points is >= four pixels. * Adjusted the Window::MouseDown() and WindowBehavior::MouseDown() interfaces and implementation accordingly (we now also pass and return click count and click targets). * Removed the no longer need multi-click handling from DefaultWindowBehaviour. Fixes #6841 and #6867. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39623 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76107eeb117de4d4289dcb8942737ff7dc1e998f |
|
24-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added ModifiersChanged() hook to Window and [Default]WindowBehavior. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39622 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
|
#
2248e30f1195cb2300bdd581d1ae53797810482d |
|
04-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed broken accept-first-click eating logic I introduced yesterday, sorry! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37893 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0e505c0c7bd8bb6a815daee1dbd76dcc563dae9c |
|
03-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Separate the B_WILL_ACCEPT_FIRST_CLICK window flag from the accept-first-click desktop setting, following bug #6420. * Now, only windows with the flag set have to implement their activate behaviour itself (as Tracker does), the desktop setting no longer has an influence on this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37885 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b6ba2290fc6e584dbb45c4a2e9940b576a47be56 |
|
02-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Introduce a new DecorAddOn class which provide the DecorManager with the needed Decorator, WindowBehaviour and DesktopListener. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37857 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb86786a1bac06ffbb4baa03c4a9311283c835a2 |
|
28-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Make _Windows public. - Reload all decorators when the decorator has changed in the DecorManager. - Update copyrights. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37801 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
30c31ae28a5c00d6ff25db9e8960b37a1ba76cda |
|
19-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Always use the current decorator. This partially fix bug #6334. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37608 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
369b4ff1e3189dbb2a9f45e285020694f2372fc2 |
|
15-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Update copyrights. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37530 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
09301a495904ea4032a1c4584630918db737b3b2 |
|
15-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix another TODO and move the caching of the decorator footprint region (the border region) form the Window class into the decorator base class. To do so I make some of the public Decorator methods non virtual and introduce new protected virtual methods instead. The non virtual public methods handle the caching now and calling the protected method afterwards. This has to be taken into account when fixing the other Decorators! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37529 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
177ecc46b6e7dc8b210dc09b42fc0891b91249aa |
|
14-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Refactoring of the Window class. Move window behaviour into separate WindowBehaviour class. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37524 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2fc6f37e8893705bddf0979f0e3afd7143bbad7c |
|
25-May-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Window::MouseDown() no longer eats the click if the window modifiers were pressed even if there is nothing to do. This allows the Deskbar to be moved with the window modifier keys held, finally, see #6029. * Removed a superfluous (fDecorator != NULL) from the check to choose between decorator and window modifier action - _ActionFor() can safely be called with a NULL decorator, and it just made the logic look wrong (even though no harm was done). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36935 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a0b37b6e3852e63bd2746468411ca7827c900c25 |
|
11-Mar-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Tried to fix all issues with running a DEBUG build of app_server. * CopyRegion should not need the HWInterface to be exclusive locked. * BitmapDrawingInterface does not need to be locked at all, since it doesn't use a shared HWInterface instance. * Window and Desktop should lock the HWInterface appropriately before invoking CopyRegion() on the DrawingEngine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35822 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90b5a0b2619ef5014fb7642b28adcdd7373b2a30 |
|
22-Jan-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed all DEC_* constants to CLICK_*. * Renamed DEC_MOVETOBACK to CLICK_MOVE_TO_BACK, and DEC_SLIDETAB to CLICK_SLIDE_TAB. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ba1d39e48fc2dcd67a9b7e0942dd238e2f05c0bf |
|
22-Jan-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Right clicking the resize area now always moves the window behind. This obviously differentiates from BeOS behaviour, but I think it makes much more sense this way. * Simplified DefaultDecorator::Clicked() by eliminating the "clicked" variable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35258 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
|
#
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
|
#
5762cbce567f204f4d0f8c932e53b220e0ac3872 |
|
12-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed typo. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33552 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
931cd377aade563781849d3e6f91a9b635cd6753 |
|
07-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new flag kAcceptKeyboardFocusFlag that allows B_AVOID_FOCUS windows to still receive keyboard events. This is now used for menu windows (before, the menu feel alone would trigger that behaviour). * This also fixes bug #4691, as tool tip windows use the menu feel as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33481 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5a41c9fb1766306f310801959ca0f4b1e5b676c4 |
|
06-Oct-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Sorry, should have tested the patch first. Now it actually works as intended. I.e. you need to hold down exactly Ctrl+Alt for the server side window modifiers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33459 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1d5d23476a2abcca21aa703ae39a45819c382bc |
|
06-Oct-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Applied part of a patch from Caitlin Shaw (coding style cleaned up!): * Trigger server side window modifiers only if exactly those modifiers are pressed. * Add the new window flags defined in Window.h to what the server considers valid flags. Otherwise the new flags important to the server (only B_NO_SERVER_SIDE_WINDOW_MODIFIERS) get filtered out. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33458 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
|
#
9a9aa3e02183f53680a0e5282baee8094be9e9df |
|
24-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The Ctrl-Alt-window modifier patch was pretty broken. Also, I've disabled window moving for windows without a decorator at all, at least that's what I would assume they intend (we might want to force them to set B_NOT_MOVABLE, too, though). * This also fixes the crashing bug as described in ticket #4314. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32649 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
|
#
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
|
#
1c8695a627802dde31f0b53bc2821cb33c66f2d6 |
|
14-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
only call HandleDirectConnection() if the window is not hidden. Fixes bug #4234 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f98bacf6ca52679ea11700bf43681391c17612cf |
|
13-Aug-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Moved HandleDirectConnection From Window to Desktop. This should fix the spurious off-window drawing of BDirectWindow. At least, it does here. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32312 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6dad3717d5c27deebd59d685d7646297ba1786e3 |
|
13-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Don't let the app_server trigger a content draw if the kWindowScreenFlag is set. This fixes the white background when starting ParticlesII. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c6906c2832dfea48b42e8443c07120468a71a1b9 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* In FFM mode, when a window was closed, or the workspace was changed, the window under the mouse was given focus. This makes using FFM with the keyboard alone very inconvenient to use, which is why now the window that previously had focus will regain it instead; as soon as you actually move the mouse, the focus is changed as usual. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32014 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
97fd0558dec7d893956b1337dbc91799df87cb41 |
|
28-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Fixed bug introduced with recent commits that didn't keep the relative offset of the mouse when resizing/moving windows when other constraints restricted the resizing or moving. * Applied patch by Stephen Deken with changes by myself: - Windows now snap to the screen edges. - There is a snapping time window of 1.5 secs during which the window still snaps to the screen edge after it first snapped. Then there is a pause during which there is no snapping. Thanks a lot, Stephen, and sorry it took so long, nice patch! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31841 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6e4ad063022b391720a385d03d439f0556d3beae |
|
27-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Improved the anti-accidental-window-nudge feature: Use the activation delay also in the MouseMoved() hook for a timeout. So window moving begins after either a timeout of half a second, or after having moved the mouse at least 4 pixels. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31834 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0f8d2b68cf3e80b1609744bcf83094cfa392450c |
|
27-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Be a good boy and follow through with the new feature of server side window shortcuts so that the second mouse button sends windows to the back... :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31827 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e343673a0b6b93a49c03164157af838c5758e308 |
|
26-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* The app_server implements modifiers for performing decorator actions anywhere inside the window. These are Command + Alt. In X11, it's just Alt, but that is already used in various Haiku/BeOS apps. * Introduced new window flag B_NO_SERVER_SIDE_WINDOW_MODIFIERS to disable the above. * Made click to front in FFM mode less strict, you can slightly move the mouse now and still click windows to front. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31785 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
63d557f06f41c0aef30f8a0fcc5b8d2c47981b33 |
|
15-Jul-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31600 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cc636a35cb540468d8f77e52c61a559cd893cd66 |
|
24-May-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Simplify dirty region handling when copying regions. Basically the full region is considered dirty and only what we are really able to copy (which excludes all possible dirty regions) is removed from that again. This is simpler and less error prone than to remove more than we may copy and then add the old dirty regions back. Fixes a few region copy related redraw issues most visible in case of scrolling like non-updated parts when scrolling in Tracker or Terminal as in bug #3803. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30840 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c4005c4d29daab8c89b8f5125c7293ab7250529c |
|
09-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Some cleanup in the commented out debug code. * Fixed a problem when scrolling. Basically, the region that could be copied should be removed from the pending dirty region. Before a region is copied, the dirty regions are removed from it. So the region at the target offset can always be considered clean. This fixes the problem in Tracker when enlarging windows that are already scrolled to the right or bottom. This then triggers the Tracker window to scroll the pose view in such a way that the bottom/right stays fixed, but would trigger this exact situation: The bottom is already pending dirty, but then the clean contents are copied on top of it. Fixes ticket #1849 and perhaps also #2975. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30068 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5ea31e66f763ce2063b8c66f70119e6bb9ec3e30 |
|
13-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Cleaned up the dirty region handling in Window::CopyContents() (the backend of scrolling and BView::CopyBits()). Seems to fix the dirty entries when opening Tracker windows, and another problem I've seen when scrolling too fast in Beam. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29495 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
740ea80754c88a5026064846bf7df48971e56fac |
|
31-Jan-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Exclude any dirty regions from scrolling or copybitting. The previous behavior, which was also the BeOS behavior IIRC, has annoyed me a bit as an application developer. It wasn't possible to avoid display artifacts, if for example scrolling a view which needed to be redrawn at the same time. It sounds strange, but makes perfect sense for the situation I have here. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29101 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
|
#
d02835660f6e033fa7e492ba5854448a16bb8945 |
|
14-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a method Desktop::_LastFocusSubsetWindow() which returns the last window being the focus window that is a subset of the specified window. * This is now used to bring the window to front belonging to a floating or modal window (if on another workspace), ie. Desktop::ActivateWindow() should now work with modal and floating windows. * Fixed typo (in Window.cpp). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7c8477593c144bfdfe9859b4df093b0388c6faf |
|
06-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Don't invalidate anything in offscreen windows. NetPositive is doing slightly strange redrawing, including scrolling the offscreen view that it uses in "flicker free" mode (which is the default). Invalidation does not work in offscreen windows, since the client thread is not running and certainly won't redraw anything. But that will leave a non-drawable region on the app_server side of things. Simply don't invalidate in this case. From what I have seen, redrawing in NetPositive seems to work fine now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28538 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85dbe55d9b536c77d1510731f1ef3f5d6dd2d5cd |
|
24-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* r28281 accidently added the B_NORMAL_WINDOW_FEEL (0) to the list of special feels. This caused floating/modal app and subset windows to not work anymore. * This fixes bug #2914. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28309 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89b1afd16c7fc6e32462a2c4fb4ce43cfc50ce6a |
|
22-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new window feel kPasswordWindowFeel that is above all other feels. * Changed the password window to use this feel. * Later, the screen saver itself should use this feel whenever the password mode is enabled. The password window should then use a modal-app feel, but this doesn't work yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28281 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0f32f7ddeb736ab5aedd50b1ef2f83d9950d8a0e |
|
18-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added an ASSERT() and a check to make sure the workspace that Backmost() and Frontmost() are using is valid. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28228 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
|
#
139f143c62592ff801d6b8d35d465e9666f84a2f |
|
26-Aug-2008 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
fixed warnings. Maybe we should do all the calculations in ints instead of using floats git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd2509c549c5aa5a456524754cddfb8eb0e4f888 |
|
10-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Desktop::_UpdateFloating() and Desktop::_UpdateSubsetWorkspaces() both assumed that there was only a single window that was responsible for the workspaces of a floating/subset window. Of course, any number of windows can make up the workspaces of those. This fixes bug #2506. * Added a Window::InSubsetWorkspace() method to complement SubsetWorkspaces(). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26371 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
581e67867c88e4dae51de5c30839eabd303cc0a9 |
|
09-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Change the protocol for sending the affected view tokens during an update session to also include each view's individual update rect (in screen coords). Should actually not be mush slower than the old version, and hopefully makes it possible to have smarter BView::Draw() implementations which should make more than up for any potential speed loss. * Removed unused version of View::AddTokensForViewsInRegion(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25879 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0c3c996cd92350f083210e5cc0d161abbbc3aa1 |
|
07-Jun-2008 |
Michael Lotz <mmlr@mlotz.ch> |
* Decouple local and user clipping into normal local clipping and a user clipping region pointer. * Provide _ScreenClipping() that only includes local and screen clipping but not user clipping. * Provide ScreenAndUserClipping() that returns screen clipping if no user clipping is present, or returns a combined region that is then cached. * Adapt all places where the former methods are used and decide which one to use depending on the relevance of user clipping. User clipping is now ignored for background clearing and when determining whether or not to call Draw() on a view. This should make Haiku behaviourally compatible with BeOS (confirmed by the ClippingAndRedraw test app) and should also fix the Firefox redraw issues. Stephan please review! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25854 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
55112db6ea5172cfb854ce575f905689cda0a2ea |
|
29-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Do not update the internal window state in case sending the message failed. * This is not perfect, but it makes Tracker catch up and redraw when the next event is due. This improves the situation in bug #2212. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25708 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58c42ec9de3dac4b180baaea018e0849f81c6f64 |
|
14-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
No need for the kWorkspacesWindow flag anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24388 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ffac272e35477046672497199d86c09ec2053d0e |
|
10-Mar-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Used the new mechanism/options in the DrawingEngine with regard to back to front copies in Window for updates. When in an update session, any back to front copies are turned off. When the update session ends, the whole region is copied at once. This has two effects: For once, it avoids a lot of unnecessary copies (for example, rendering text copied the background and then the same area for the text again). But even more effective, it changes the entire drawing of any Haiku app to be completely flicker free. Provided it happens in the normal Invalidate()/Draw() cycle. And of course all this only works for double buffering mode, ie VESA. Potentially, I might have overlooked something, so that this patch could result in some drawing glitches, but in my testing, I have seen none yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24354 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
|
#
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
|