#
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>
|
#
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>
|
#
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>
|
#
8b2b3010 |
|
18-Jul-2020 |
Adrien Destugues <adrien.destugues@opensource.viveris.fr> |
app_server: save/restore screen brightness settings The brightness is saved in the screen configurations of the first workspace. For now, all screens get the same brightness (I can't get screen IDs to work today). Since we only support setting the brightness for laptop displays for now, this shouldn't matter. It can be fixed when app_server gets actual multiple display support. Fixes #14254 Change-Id: Ib33aa65a73407a65bd469d0efa8542210fec02d4 Reviewed-on: https://review.haiku-os.org/c/haiku/+/362 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
f3e8ed4d |
|
21-Nov-2017 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Implement screen changed hooks and notifications. The ScreenOwner interface gets an additional ScreenChanged() hook. It is implemented in the Desktop class to automatically set the preferred screen mode on the changed screen. The HWInterfaceListener, previously only used by the downstream DrawingEngine, gets an additional ScreenChanged() hook as well to inform an upstream client of a changed screen. The ScreenManager ties these two mechanisms together.
|
#
673b9591 |
|
03-Jan-2016 |
Augustin Cavalier <waddlesplash@gmail.com> |
app_server: Remove include looncraz forgot to remove.
|
#
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>
|
#
fa6fca91 |
|
21-May-2015 |
Axel Dörfler <axeld@pinc-software.de> |
app_server: Fixed some send fake mouse event issues. * Activating a window never send a faked mouse message. This was noticeable when switching windows using the keyboard; if you then scrolled with the mouse wheel you could scroll in the previous window still. * Also, using MouseEventWindow() in _SendFakeMouseMoved() doesn't work when you click the window to send it to behind: it's moved on button press, but the mouse event window is only released on button release, ie. too late. * This is fixed by always using the current window under the mouse as target for the fake event.
|
#
4db1a8c6 |
|
07-Feb-2013 |
Axel Dörfler <axeld@pinc-software.de> |
app_server: reworked SetFocusWindow() logic a bit. * The normal mouse mode now only uses the window that had focus last if that window is one that does not support to be the front window (such as the desktop). * This should keep the logic of r41264 without the drawbacks (see #7280 for more information). * Added _WindowCanHaveFocus() method. * This should fix #7630.
|
#
f33cf3fd |
|
13-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Activating all windows in a stack caused flickering. The reason to activate all windows was to get all windows form a stack into the upper window layers, otherwise it was possible that the top layer stack window is activated but another window in the stack is at the bottommost layer position. Sending this window to the back does not triggered sending the complete stack to the back. The send behind call is now redirected to the top most stack window to ensure the stack is send behind. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42632 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cd67c205 |
|
09-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Only remove a window from the S&T group when the hide event is not triggered by a minimize call. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cdb351d4 |
|
04-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
When activating a window also bring all windows in the stack to the front layer. I used the ActivateWindow method because there is some magic involved when changing the layer position, utilising this method seems to be a safe way to do it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42577 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6a0ed7da |
|
26-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Move S&T back into the app server. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42501 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89887831 |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix todo and only unload listener from the last add-on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42484 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
|
#
d65593aa |
|
27-Dec-2010 |
Michael Lotz <mmlr@mlotz.ch> |
CID 1420: fTargetScreen was leaked. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39979 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
951366c5 |
|
27-Dec-2010 |
Michael Lotz <mmlr@mlotz.ch> |
CID 10231: Remove unused fInputPort member and initilize fShutdownCount, even though it's used only in the special case of running as BApplication. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39977 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
83cdf43f |
|
06-Dec-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Give the option for the desktop listener to "absorb" key events. - Make the S&T groups navigateable by pressing the S&T key + arrow down/up. Arrow down means to send the active S&T group to the bottom. Arrow up means to rise the bottom S&T group to the front. If no S&T group is selected, in both cases the front-most S&T group is activated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39751 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8689fe06 |
|
26-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added method SetManagementCursor() that allows to set a cursor that overrides the normal cursor set with SetCursor(). Intended for window management interactions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39653 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52ede95c |
|
18-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Removed outdated USE_MULTI_LOCKER build option * Don't acquire the read-lock in WindowForClientLooperPort, since MultiLocker does not support nested read-locks. Use an assert instead, however the method does not appear to be used anywhere at the moment. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38224 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26d8064e |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Lock WindowForClientLooperPort method and add comment that the window lock has to be held if accessing the a WindowList. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38215 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b8a44a25 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Add function to find a window in the app server by the client looper port id. Need this for the stacking api e.g. to stack window x on window y. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38168 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5483fa4e |
|
12-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Make RebuildAndRedrawAfterWindowChange public. This is useful when changing the window footprint from the outside. In this case RebuildAndRedrawAfterWindowChange recalculate the clipping and everything. Need this when I switch a decorator into a SAT stacking mode which is not a standard desktop operation. In this case the tab size is adjusted and also the window clipping need to be recalculated. - First unregister listener reload decorators and then register new listener. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38070 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d6734c08 |
|
04-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Notify listener when they are registered and unregistered. - First reload decorators and then the listeners. (my SAT listener caches the decorator when it is registered so the new one should already be loaded) - Make the Desktop all window list accessible, help full when a listener is registered and want to iterate over the existing windows. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37912 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
|
#
0265102f |
|
29-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
-Make Windows private again and lock the iteration over the windows when reloading the decorators. - Make the used decorator persistent. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37816 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
|
#
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
|
#
0b63cc93 |
|
24-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* We now store the last window having focus in a separate array, or else the windows visible on more than one workspace destroy the FFM experience (ie. restoring the last window that had focus on a workspace switch). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
47212ddd |
|
18-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the Alt-Shift-Fx behaviour consistent with Ctrl-Alt-Shift-Arrow (ie. take the active window to the new workspace). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34114 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
|
#
9fe35223 |
|
26-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* BWindowScreens had no sychronization mechanism whatsoever - since the workspace activation message was asynchronous, whether or not the BWindowScreen stopped drawing in time was pure luck (this also caused crashes with the VESA driver, as that one unmaps its frame buffer during mode switch). Introduced a new AS_DIRECT_SCREEN_LOCK protocol for this. * In the long term, we should let BWindowScreen use the same mechanism as BDirectWindows, though. * Removed superfluous locking in BDirectWindow::_InitData(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32746 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
|
#
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
|
#
cc93fbbb |
|
21-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Shuffled methods around to match their location in the header. * Made ScreenChanged() private, and renamed it to _ScreenChanged(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32565 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5e3f4c41 |
|
20-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* ServerApp now maintains a mask of workspaces with temporary mode settings, and reverts the modes if the app goes away (ie. if it crashes). * Desktop::SetScreenMode() also set the mode on the current screen, even if it should have been set on another screen. * Cleaned up the Desktop.h header. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32564 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e18224cd |
|
21-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new AS_GET_SCREEN_FRAME function, as getting the frame via AS_SCREEN_GET_MODE won't work with multi-screen support anymore, and is also more overhead than needed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32559 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
|
#
69f9a367 |
|
29-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The app_server no longer uses workspace counts internally, but only columns, and rows. * set_workspace_count() now uses the logic formerly found in WorkspacesView::_GetGrid() to determine the layout. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31958 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27c43a2d |
|
08-Dec-2008 |
Rene Gollent <anevilyak@gmail.com> |
Implement the missing pieces to handle per workspace display mode support. Adjust Workspace view to correctly scale each workspace based on the resolution of that workspace. This exposes one or two anomalies in other places in the app_server code though which I wasn't able to track down. This fixes ticket #693. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28785 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
|
#
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
|
#
4932bc5e |
|
21-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the BeOS feature that Command-~ (with American keymap) will switch workspaces between this and the previous one. * Note that this is mapped to a specific key on the keyboard (key 17), so it will differ with the keymap, but will usually be the key below the escape key. * This closes ticket #2766. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28282 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
95530739 |
|
17-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Reworked EventDispatcher::SendFakeMouseMoved() after an idea by Stephan that solves most app_server locking headaches: it now works asynchronously, and therefore doesn't need to lock the EventDispatcher anymore. * EventStreams now allow to inject messages into the stream to allow the above functionality. * InputServerStream::GetNextEvent() no longer returns when there is no event. * Desktop::ActivateWindow() now locks all windows before checking the workspaces of the windows, fixing a race condition that could lead to Window::Foremost() being called for a window that isn't on the current workspace, leading to a crash. * I currently cannot access Trac, but I recall there should be an open bug report about this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28224 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae0606be |
|
12-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added two more private InterfaceDefs functions: get_application_order(), and get_window_order() will retrieve the application respectively window order on the selected workspace. * Moved private BeOS compatible functions (as used by the Deskbar) into the private WindowInfo.h header. * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26951 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b09e2f6f |
|
10-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Andrej Spielmann (GSOC): * Extend the app_server protocol by configuration options to turn subpixel font rendering on/off and also make the glyph hinting optional (aligning of glyph shapes to the pixel grid). * Implement the setting in the app_server and also handle the persistency. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26362 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ace2d5ee |
|
02-Apr-2008 |
Stephan Aßmus <superstippi@gmx.de> |
HWInterface::Cursor() and therefor Desktop::Cursor() accessed the current cursor without locking, and did not add a reference while using the cursor. I have tried to solve both problems by introducing a simple ServerCursorReference class, which makes sure that the reference count is properly maintained. There are only two places where this code was even used, from within ServerApp and when taking screenshots. Axel, you mentioned in #837 that the code is unsafe, is this what you meant? This hopefully fixes #837, but it is very hard to reproduce in the first place, I will close the ticket, but it should just be reopened if ever encountered again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24741 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9dbce7a4 |
|
28-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* AS_CURRENT_WORKSPACE now holds a single window lock before retrieving the current workspace. * This should fix bug #1765 as far as the app_server is concerned. * Cleanup, removed extraneous white space. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24632 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d8ebe612 |
|
14-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
The fWorkspacesViews list now gets its own lock which solves a deadlock problem when deleting Workspaces replicants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24390 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
|
#
6ec72e83 |
|
05-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* In normal mouse mode, the focus list is no longer used to find the next window to get focus after the current one is gone. This fixes the strange behaviour when using right-click to send the current window to the back. * When FFM is active, Desktop::SendWindowBehind() will now choose the new focus window to be the one under the mouse, overriding the focus list. * Desktop::SendWindowBehind() will now also call _SendFakeMouseMoved() if necessary. * Removed Desktop::fFocusFollowsMouse; it was not used or maintained anywhere. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24269 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d01879e5 |
|
03-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a separate focus list that will contain all windows in the order of the last focus. * When choosing a new focus window, this list is now used to find the new focus window instead of just choosing the next window in the workspace list. * With the normal mode mouse, this shouldn't change anything, but with focus follows mouse turned on, this will behave much better if you don't actually move the mouse - and it also fixes bug #1886. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24234 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
|
#
6869c8a5 |
|
23-Dec-2006 |
Ryan Leavengood <leavengood@gmail.com> |
The app_server now starts and restarts (if needed) the input_server. The use of a debugger call in _LaunchInputServer may be overkill, but at least you could conceivably cleanly restart the machine in the debugger (I think.) Because without the input_server the machine is pretty useless. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19615 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
07dc2c69 |
|
30-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* The app_server now gives top-most menus the keyboard focus. * BMenuWindow now makes its menu focus view, so that it can receive key events. * Keyboard navigation doesn't work as it should though, that is bug #670 is still valid - there should even be another recently opened bug about this, but Trac obviously ate it :-/ git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19152 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a17c3a48 |
|
26-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the way DesktopSettings work: * Removed the DesktopSettings lock itself - it's not really needed at all, and causes some trouble with a clean locking design. This may even have fixed bug #757, at least I couldn't reproduce it anymore. * There is now a class for read-only access that requires you to have locked the desktop (either read or write). * There is now another class LockedDesktopSettings that allows you to set settings (and only that) - when you're changing the settings, you must not have read locked the desktop (ie. hold the single window lock). The class will obtain a write lock, but write locks can be nested. * Moved SetWorkspacesCount() into the Desktop class. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18646 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d479fa7a |
|
23-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Floating windows no longer flicker when moving a window to another workspace using the shortcut keys (Alt-Fn). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18593 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
64747950 |
|
23-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
SetWorkspace() now also move the subset windows of the mouse event window to the new workspace - this fixes bug #755. Unlike floating windows, they aren't even redrawn :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18592 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
|
#
46fb2d73 |
|
24-May-2006 |
Stephan Aßmus <superstippi@gmx.de> |
sorry, I couldn't resist... * added a few very small changes to make the tab sliding work perfectly * added a comment on the purpose of WindowLayer::fLastMousePosition and how it is supposed to be used to have the mouse cursor stick to what is being dragged * TODO: the tab offset doesn't necessarily have to be on [0..1], as long as we update it during window resizing to keep the relative position git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17577 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
382084bd |
|
23-May-2006 |
François Revol <revol@free.fr> |
The return of the long awaited for Sliding Tabs, that even Linux users envy! Needs some cleanup, passed values should be inside [0:1]. Need to make sure changing the title doesn't reset the tab to left. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17571 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d5488e1 |
|
25-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* There is now a server_read_only_memory structure that is placed in a (surprise!) read-only area shared between the Desktop and all applications. * Right now, this area only contains the desktop colors, ie. B_PANEL_BACKGROUND_COLOR etc.; ui_color() no longer needs to ask the server for these colors. * The ui_colors are now maintained by DesktopSettings, though ColorSet is still there. * The default colors are now hardcoded once and for everyone in InterfaceDefs.h, ie. the app_server uses them as well. * Desktop::Init() can now also return an error (but that is not yet accounted for). * Cleaned up InterfaceDefs.h. * Fixed wrong include in moreUTF8.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17232 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82081c70 |
|
12-Apr-2006 |
Jérôme Duval <korli@users.berlios.de> |
improved version though the first workspace color isn't kept between boots git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
190b4fa4 |
|
12-Apr-2006 |
Jérôme Duval <korli@users.berlios.de> |
hopefully implemented makedefault in Workspace::SetColor() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17113 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
|
#
a1a04a47 |
|
01-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* A fake B_MOUSE_MOVED message is now send on workspace change, and when a window is closed, too (only happened when a new window was shown before). This is done via the new Desktop::_SendFakeMouseMoved() method. This fixes bug #342. * The MouseFilter now always sets Desktop::fWindowUnderMouse, so that one can differentiate between no window under mouse, and decorator under mouse. * EventDispatcher::SendFakeMouseMoved() now expects a BMessenger instead of an EventTarget as target - this guarantees that it can safely be called with any window now (instead of only the current window). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16953 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
14fe11cf |
|
13-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented moving windows around via the Workspaces app. However, you can't move them to another workspace, and you currently don't see a window moving that is not in the current workspace. (this fixes bug #135) * Desktop::SetWindowBehind() didn't update the WorkspacesLayer. * Changed Desktop::MoveWindowBy() to be able to move window on any workspace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16776 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
|
#
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
|
#
3dcbe9fc |
|
13-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented redrawing the desktop after color changes. Right now, it only works correctly when Tracker is not running; obviously, the background is cleared in Tracker before it had the chance of changing the view color. Maybe the app_server needs to detect the background view of the desktop and change the view color manually :-/ git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16376 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
|
#
8527f8ff |
|
06-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
The display resolution is now saved and restored. Probably doesn't handle non-default modes right yet. The settings are stored in B_USER_SETTINGS_DIRECTORY/system/app_server/workspaces. They are currently saved as a flattened BMessage - we might want to switch to the driver_settings format, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16249 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
195e980e |
|
05-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Cursors are now reference counted, so it shouldn't be possible anymore to delete them accidently :) * You should no longer call HWInterface::SetCursor(), but the new Desktop::SetCursor() if you need to change the cursor. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16238 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
|
#
ce8c4d79 |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The Workspaces window is now updated again. Only mouse clicks don't work yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15451 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
|
#
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
|
#
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
|
#
5ca8477e |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the Workspace class is now hidden and put into Workspace::Private; the new Workspace class is a simple accessor to this class that takes care about locking (currently, it's just the desktop lock, maybe it'll stay that way). * WorkspacesLayer now displays the window thumbs again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15250 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
|
#
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
|
#
df362433 |
|
26-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Now sends B_SCREEN_CHANGED messages to all windows when the screen resolution changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15167 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
|
#
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
|
#
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
|
#
f7598223 |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the new input event dispatcher is now actually used, although it doesn't distribute any messages to the clients yet. * removed the working thread from RootLayer - for now, its event handlers are still called using input filters in the new event dispatcher, though (to get things started). * ServerApp is now using a BMessenger to identify its client, and no longer stores the port/token separately. * the input_server handshake is a bit simpler now, as it can now just reply to the app_server message, removed unused code from ServerProtocol.h * calmed down the MultiLocker (it always printed thread statistics on startup, because it's compiled in debug mode). * removed the cursor thread stuff from AppServer.cpp * the new event dispatcher now uses a cursor thread when supported (only in native mode, not in the test environment), although it improves cursor movement under Qemu, the effect is not as good as expected - this might need some more investigations (might just be a thread priority problem). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15012 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
08f35604 |
|
17-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The basics of the new event handling - not yet connected to anything, and therefore neither used nor tested. It's not even complete yet (support for Set[Mouse]EventMask() is missing), but it will get there :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14990 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c17d025 |
|
15-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Introduced a new handshake between input_server and app_server, and some temporary handling code in the app_server. * RootLayer no longer creates the input_server messaging port - this is now the responsibility of the input_server. * Moved AS_CREATE_[OFFSCREEN_]WINDOW from ServerApp::_MessageLooper() to _DispatchMessage(). * The RootLayer thread is now started as soon as the input_server is there. * removed or disabled any input_server stuff in the AppServer class. * removed old message commmands to the app_server. * Removed the R5_CURSOR_COMM and HAIKU_APPSERVER_COMM definitions: the input_server is now automatically built correctly depending on the target. * InputServer::EventLoop() plays now safe and checks for error conditions. * InputServer::EnqueueDeviceMessage() seems to leak memory, added TODO about this. * InputServer event loop messaging uses ports for inner-app communication - why? * The InputServer event loop thread is no longer killed on exit, it just quits when its port is gone. * Minor cleanup in input_server. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14949 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
|
#
36deda69 |
|
31-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of sDesktop. Moved AS_ACTIVATE_APP over to Desktop. _CursorThread() is currently dysfunctional (but not enabled anyway). Minor cleanup (Desktop::WindowList() is now a BObjectList). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14599 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
|
#
3ddebe7e |
|
21-Aug-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Moved the CursorManager over to the Desktop too. Maybe the CursorManager should be used to set the cursors directly instead of using fDesktop->GetCursorManager.FindCursor() and then fDesktop->GetHWInterface()->SetCursor() in ServerApp.cpp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14033 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
770c05d6 |
|
25-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The Desktop class now gets its own message processing loop: moved application creation/deletion (and management) over to that class. ServerApp now gets a desktop pointer, and no longer uses gDesktop. Converted private MessageLooper::_MessagePort() to a public method MessagePort() so that the looper can be addressed from elsewhere without using PostMessage(). Added a real basic message loop to MessageLooper::_MessageLoop(). BApplication now only asks the app_server to get its desktop object which should now be used for everything that's not in the realm of the application. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5f2edc0f |
|
24-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The Desktop class now inherits from MessageLooper as well, the AppServer class runs it, too. No real message processing is done yet, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13816 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ef8810f2 |
|
17-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Extracted the settings stuff from the Desktop class. If you now need to access the desktop's settings, you have to do something like this: DesktopSettings settings(desktop); settings.SetMouseMode(mode); The advantage of this is that this object is fully locked, and cannot lead to corrupted settings anymore. Also, the settings will stay the same until you delete the object again. Updated all accesses to use this new API. Removed no longer used FFM messages. Implemented AS_{GET|SET}_MENU_INFO for future use. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fd5bec1e |
|
14-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
First baby step to a restructured app_server: - introduced new ScreenManager and VirtualScreen classes - removed screen handling from RootLayer - removed multiple screen/root layer stuff from Desktop, it's now using a VirtualScreen object instead git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13686 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
|
#
94fa2bd2 |
|
25-Jun-2005 |
Adi Oanca <adioanca@nowhere.fake> |
inlined a few methods in header file, otherwise app_server would not build git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13271 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
|
#
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
|
#
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
|
#
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
|
#
fa6fca91e699c19c4240b2d1aa2b5d613681c356 |
|
21-May-2015 |
Axel Dörfler <axeld@pinc-software.de> |
app_server: Fixed some send fake mouse event issues. * Activating a window never send a faked mouse message. This was noticeable when switching windows using the keyboard; if you then scrolled with the mouse wheel you could scroll in the previous window still. * Also, using MouseEventWindow() in _SendFakeMouseMoved() doesn't work when you click the window to send it to behind: it's moved on button press, but the mouse event window is only released on button release, ie. too late. * This is fixed by always using the current window under the mouse as target for the fake event.
|
#
4db1a8c61d68370bc8cccadcb8793679774a7426 |
|
07-Feb-2013 |
Axel Dörfler <axeld@pinc-software.de> |
app_server: reworked SetFocusWindow() logic a bit. * The normal mouse mode now only uses the window that had focus last if that window is one that does not support to be the front window (such as the desktop). * This should keep the logic of r41264 without the drawbacks (see #7280 for more information). * Added _WindowCanHaveFocus() method. * This should fix #7630.
|
#
f33cf3fd44d0877037b3cf8f82c2b40f4189bf28 |
|
13-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Activating all windows in a stack caused flickering. The reason to activate all windows was to get all windows form a stack into the upper window layers, otherwise it was possible that the top layer stack window is activated but another window in the stack is at the bottommost layer position. Sending this window to the back does not triggered sending the complete stack to the back. The send behind call is now redirected to the top most stack window to ensure the stack is send behind. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42632 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cd67c205ff3aae882046fc96fc181e3b601be500 |
|
09-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Only remove a window from the S&T group when the hide event is not triggered by a minimize call. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cdb351d4a49f37ad47fbf01a6e44f8541da245d4 |
|
04-Aug-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
When activating a window also bring all windows in the stack to the front layer. I used the ActivateWindow method because there is some magic involved when changing the layer position, utilising this method seems to be a safe way to do it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42577 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6a0ed7da5303f3389cf954b24eda4c179f6a0a72 |
|
26-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Move S&T back into the app server. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42501 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
898878314d25b67a9be06dd6c5a92ae77481af74 |
|
24-Jul-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Fix todo and only unload listener from the last add-on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42484 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
|
#
d65593aaa31fe782ac22ef9d11220b57ef08b638 |
|
27-Dec-2010 |
Michael Lotz <mmlr@mlotz.ch> |
CID 1420: fTargetScreen was leaked. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39979 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
951366c59d800622aceee5118b032a3bc9152474 |
|
27-Dec-2010 |
Michael Lotz <mmlr@mlotz.ch> |
CID 10231: Remove unused fInputPort member and initilize fShutdownCount, even though it's used only in the special case of running as BApplication. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39977 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
83cdf43f094acddb1d04e00b6dbc3977ae60d6fa |
|
06-Dec-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Give the option for the desktop listener to "absorb" key events. - Make the S&T groups navigateable by pressing the S&T key + arrow down/up. Arrow down means to send the active S&T group to the bottom. Arrow up means to rise the bottom S&T group to the front. If no S&T group is selected, in both cases the front-most S&T group is activated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39751 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8689fe066ac0ad684ed0fba314b85e1ef47a2ce0 |
|
26-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added method SetManagementCursor() that allows to set a cursor that overrides the normal cursor set with SetCursor(). Intended for window management interactions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39653 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52ede95cd7b0ece647027cca23b38f274473fb90 |
|
18-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Removed outdated USE_MULTI_LOCKER build option * Don't acquire the read-lock in WindowForClientLooperPort, since MultiLocker does not support nested read-locks. Use an assert instead, however the method does not appear to be used anywhere at the moment. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38224 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26d8064ea8260af252afcea142aad9cf8317d207 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Lock WindowForClientLooperPort method and add comment that the window lock has to be held if accessing the a WindowList. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38215 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b8a44a250e2cc0dc1de1bd86db4b906e0fb0e933 |
|
17-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Add function to find a window in the app server by the client looper port id. Need this for the stacking api e.g. to stack window x on window y. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38168 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5483fa4e786707fca69c40d063cf1d0934fdec27 |
|
12-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Make RebuildAndRedrawAfterWindowChange public. This is useful when changing the window footprint from the outside. In this case RebuildAndRedrawAfterWindowChange recalculate the clipping and everything. Need this when I switch a decorator into a SAT stacking mode which is not a standard desktop operation. In this case the tab size is adjusted and also the window clipping need to be recalculated. - First unregister listener reload decorators and then register new listener. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38070 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d6734c083a96002fba135f0fe8dc0163699f7ce9 |
|
04-Aug-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- Notify listener when they are registered and unregistered. - First reload decorators and then the listeners. (my SAT listener caches the decorator when it is registered so the new one should already be loaded) - Make the Desktop all window list accessible, help full when a listener is registered and want to iterate over the existing windows. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37912 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
|
#
0265102f8b6360c77c2b84f71e89924f9b2ad035 |
|
29-Jul-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
-Make Windows private again and lock the iteration over the windows when reloading the decorators. - Make the used decorator persistent. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37816 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
|
#
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
|
#
0b63cc935f7c494199615b6c16055520bfd1018d |
|
24-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* We now store the last window having focus in a separate array, or else the windows visible on more than one workspace destroy the FFM experience (ie. restoring the last window that had focus on a workspace switch). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
47212dddf5447c624a59a5445ceee4abfbf288b2 |
|
18-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the Alt-Shift-Fx behaviour consistent with Ctrl-Alt-Shift-Arrow (ie. take the active window to the new workspace). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34114 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
|
#
9fe35223cf4eb9714865152d62e8efc36b327fef |
|
26-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* BWindowScreens had no sychronization mechanism whatsoever - since the workspace activation message was asynchronous, whether or not the BWindowScreen stopped drawing in time was pure luck (this also caused crashes with the VESA driver, as that one unmaps its frame buffer during mode switch). Introduced a new AS_DIRECT_SCREEN_LOCK protocol for this. * In the long term, we should let BWindowScreen use the same mechanism as BDirectWindows, though. * Removed superfluous locking in BDirectWindow::_InitData(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32746 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
|
#
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
|
#
cc93fbbba804b4334e48e8bc95d4d2f9dc7ba401 |
|
21-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Shuffled methods around to match their location in the header. * Made ScreenChanged() private, and renamed it to _ScreenChanged(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32565 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5e3f4c41a64d68b93b88e66bb00d6d4d5092c0e4 |
|
20-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* ServerApp now maintains a mask of workspaces with temporary mode settings, and reverts the modes if the app goes away (ie. if it crashes). * Desktop::SetScreenMode() also set the mode on the current screen, even if it should have been set on another screen. * Cleaned up the Desktop.h header. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32564 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e18224cdf4738dd04ea4f386aea2efa7bc5aa857 |
|
21-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new AS_GET_SCREEN_FRAME function, as getting the frame via AS_SCREEN_GET_MODE won't work with multi-screen support anymore, and is also more overhead than needed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32559 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
|
#
69f9a367bc3ade44eaf73a5b1c51c079acf702cd |
|
29-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The app_server no longer uses workspace counts internally, but only columns, and rows. * set_workspace_count() now uses the logic formerly found in WorkspacesView::_GetGrid() to determine the layout. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31958 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27c43a2d8f20fd98050c6acd9abac970b1d4d7c8 |
|
08-Dec-2008 |
Rene Gollent <anevilyak@gmail.com> |
Implement the missing pieces to handle per workspace display mode support. Adjust Workspace view to correctly scale each workspace based on the resolution of that workspace. This exposes one or two anomalies in other places in the app_server code though which I wasn't able to track down. This fixes ticket #693. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28785 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
|
#
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
|
#
4932bc5ea8b223dcce5214aa5d8485d703ae84df |
|
21-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the BeOS feature that Command-~ (with American keymap) will switch workspaces between this and the previous one. * Note that this is mapped to a specific key on the keyboard (key 17), so it will differ with the keymap, but will usually be the key below the escape key. * This closes ticket #2766. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28282 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
955307393fad754aaff5d372cb1cc139e6c4159c |
|
17-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Reworked EventDispatcher::SendFakeMouseMoved() after an idea by Stephan that solves most app_server locking headaches: it now works asynchronously, and therefore doesn't need to lock the EventDispatcher anymore. * EventStreams now allow to inject messages into the stream to allow the above functionality. * InputServerStream::GetNextEvent() no longer returns when there is no event. * Desktop::ActivateWindow() now locks all windows before checking the workspaces of the windows, fixing a race condition that could lead to Window::Foremost() being called for a window that isn't on the current workspace, leading to a crash. * I currently cannot access Trac, but I recall there should be an open bug report about this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28224 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae0606be749b5b16f3ec706c24bcb488d7f5ac96 |
|
12-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added two more private InterfaceDefs functions: get_application_order(), and get_window_order() will retrieve the application respectively window order on the selected workspace. * Moved private BeOS compatible functions (as used by the Deskbar) into the private WindowInfo.h header. * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26951 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b09e2f6f4bcda91da778d565b7a814841bad05a6 |
|
10-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Andrej Spielmann (GSOC): * Extend the app_server protocol by configuration options to turn subpixel font rendering on/off and also make the glyph hinting optional (aligning of glyph shapes to the pixel grid). * Implement the setting in the app_server and also handle the persistency. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26362 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ace2d5ee376ad7d772cd313781ea2f912409f299 |
|
02-Apr-2008 |
Stephan Aßmus <superstippi@gmx.de> |
HWInterface::Cursor() and therefor Desktop::Cursor() accessed the current cursor without locking, and did not add a reference while using the cursor. I have tried to solve both problems by introducing a simple ServerCursorReference class, which makes sure that the reference count is properly maintained. There are only two places where this code was even used, from within ServerApp and when taking screenshots. Axel, you mentioned in #837 that the code is unsafe, is this what you meant? This hopefully fixes #837, but it is very hard to reproduce in the first place, I will close the ticket, but it should just be reopened if ever encountered again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24741 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9dbce7a4e74e3a5093dbca56590b08510ba96c73 |
|
28-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* AS_CURRENT_WORKSPACE now holds a single window lock before retrieving the current workspace. * This should fix bug #1765 as far as the app_server is concerned. * Cleanup, removed extraneous white space. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24632 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d8ebe6120343dfbf801e30be2a1ca2924b73041b |
|
14-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
The fWorkspacesViews list now gets its own lock which solves a deadlock problem when deleting Workspaces replicants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24390 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
|
#
6ec72e838c7582268ebcf6c1b83d162d3f5f3e63 |
|
05-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* In normal mouse mode, the focus list is no longer used to find the next window to get focus after the current one is gone. This fixes the strange behaviour when using right-click to send the current window to the back. * When FFM is active, Desktop::SendWindowBehind() will now choose the new focus window to be the one under the mouse, overriding the focus list. * Desktop::SendWindowBehind() will now also call _SendFakeMouseMoved() if necessary. * Removed Desktop::fFocusFollowsMouse; it was not used or maintained anywhere. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24269 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d01879e5a6b0ad0f2c77e6e0225e2576873ae07d |
|
03-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a separate focus list that will contain all windows in the order of the last focus. * When choosing a new focus window, this list is now used to find the new focus window instead of just choosing the next window in the workspace list. * With the normal mode mouse, this shouldn't change anything, but with focus follows mouse turned on, this will behave much better if you don't actually move the mouse - and it also fixes bug #1886. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24234 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
|
#
6869c8a59ad386b82f039a82239ac8f6a3587edf |
|
23-Dec-2006 |
Ryan Leavengood <leavengood@gmail.com> |
The app_server now starts and restarts (if needed) the input_server. The use of a debugger call in _LaunchInputServer may be overkill, but at least you could conceivably cleanly restart the machine in the debugger (I think.) Because without the input_server the machine is pretty useless. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19615 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
07dc2c697239f7eae1fc184f1796b4fa705d1fd5 |
|
30-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* The app_server now gives top-most menus the keyboard focus. * BMenuWindow now makes its menu focus view, so that it can receive key events. * Keyboard navigation doesn't work as it should though, that is bug #670 is still valid - there should even be another recently opened bug about this, but Trac obviously ate it :-/ git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19152 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a17c3a48b84013d5c1ab684fd5bf9961eee3d7d9 |
|
26-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the way DesktopSettings work: * Removed the DesktopSettings lock itself - it's not really needed at all, and causes some trouble with a clean locking design. This may even have fixed bug #757, at least I couldn't reproduce it anymore. * There is now a class for read-only access that requires you to have locked the desktop (either read or write). * There is now another class LockedDesktopSettings that allows you to set settings (and only that) - when you're changing the settings, you must not have read locked the desktop (ie. hold the single window lock). The class will obtain a write lock, but write locks can be nested. * Moved SetWorkspacesCount() into the Desktop class. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18646 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d479fa7ae4339ec8d84082500bdaede3269108b0 |
|
23-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Floating windows no longer flicker when moving a window to another workspace using the shortcut keys (Alt-Fn). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18593 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
64747950085abc2a7313c243550ac1ee7e6b70d0 |
|
23-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
SetWorkspace() now also move the subset windows of the mouse event window to the new workspace - this fixes bug #755. Unlike floating windows, they aren't even redrawn :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18592 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
|
#
46fb2d73bed519b7712918568b5aeda5cd7ef54d |
|
24-May-2006 |
Stephan Aßmus <superstippi@gmx.de> |
sorry, I couldn't resist... * added a few very small changes to make the tab sliding work perfectly * added a comment on the purpose of WindowLayer::fLastMousePosition and how it is supposed to be used to have the mouse cursor stick to what is being dragged * TODO: the tab offset doesn't necessarily have to be on [0..1], as long as we update it during window resizing to keep the relative position git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17577 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
382084bd0a8da947a5b8f7b738b43d688cfc2345 |
|
23-May-2006 |
François Revol <revol@free.fr> |
The return of the long awaited for Sliding Tabs, that even Linux users envy! Needs some cleanup, passed values should be inside [0:1]. Need to make sure changing the title doesn't reset the tab to left. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17571 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d5488e18ac47e1c47706227b9a21524ae7874e8 |
|
25-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* There is now a server_read_only_memory structure that is placed in a (surprise!) read-only area shared between the Desktop and all applications. * Right now, this area only contains the desktop colors, ie. B_PANEL_BACKGROUND_COLOR etc.; ui_color() no longer needs to ask the server for these colors. * The ui_colors are now maintained by DesktopSettings, though ColorSet is still there. * The default colors are now hardcoded once and for everyone in InterfaceDefs.h, ie. the app_server uses them as well. * Desktop::Init() can now also return an error (but that is not yet accounted for). * Cleaned up InterfaceDefs.h. * Fixed wrong include in moreUTF8.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17232 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82081c70ea570719f8ce4c5c0e92fd0eb5db9c93 |
|
12-Apr-2006 |
Jérôme Duval <korli@users.berlios.de> |
improved version though the first workspace color isn't kept between boots git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
190b4fa4efb5613077e511d692841b8d5c4873c5 |
|
12-Apr-2006 |
Jérôme Duval <korli@users.berlios.de> |
hopefully implemented makedefault in Workspace::SetColor() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17113 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
|
#
a1a04a47421178983ce94aa6050922b23f57cbff |
|
01-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* A fake B_MOUSE_MOVED message is now send on workspace change, and when a window is closed, too (only happened when a new window was shown before). This is done via the new Desktop::_SendFakeMouseMoved() method. This fixes bug #342. * The MouseFilter now always sets Desktop::fWindowUnderMouse, so that one can differentiate between no window under mouse, and decorator under mouse. * EventDispatcher::SendFakeMouseMoved() now expects a BMessenger instead of an EventTarget as target - this guarantees that it can safely be called with any window now (instead of only the current window). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16953 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
14fe11cfaed1dc4450ffdd8c82cab879d9f97d39 |
|
13-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented moving windows around via the Workspaces app. However, you can't move them to another workspace, and you currently don't see a window moving that is not in the current workspace. (this fixes bug #135) * Desktop::SetWindowBehind() didn't update the WorkspacesLayer. * Changed Desktop::MoveWindowBy() to be able to move window on any workspace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16776 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
|
#
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
|
#
3dcbe9fc8879f2f88a0cd4fc57e504649a2362cd |
|
13-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented redrawing the desktop after color changes. Right now, it only works correctly when Tracker is not running; obviously, the background is cleared in Tracker before it had the chance of changing the view color. Maybe the app_server needs to detect the background view of the desktop and change the view color manually :-/ git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16376 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
|
#
8527f8ffbeb4b72a9502099b29aa6210b7832191 |
|
06-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
The display resolution is now saved and restored. Probably doesn't handle non-default modes right yet. The settings are stored in B_USER_SETTINGS_DIRECTORY/system/app_server/workspaces. They are currently saved as a flattened BMessage - we might want to switch to the driver_settings format, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16249 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
195e980ef10d42d13bf8f4360d81eebda3b8417e |
|
05-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Cursors are now reference counted, so it shouldn't be possible anymore to delete them accidently :) * You should no longer call HWInterface::SetCursor(), but the new Desktop::SetCursor() if you need to change the cursor. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16238 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
|
#
ce8c4d79fcc98f78327a99e700446955e5aef918 |
|
09-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The Workspaces window is now updated again. Only mouse clicks don't work yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15451 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
|
#
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
|
#
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
|
#
5ca8477eca516c59dcc8f4981f47471b2bd5d1c1 |
|
30-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the Workspace class is now hidden and put into Workspace::Private; the new Workspace class is a simple accessor to this class that takes care about locking (currently, it's just the desktop lock, maybe it'll stay that way). * WorkspacesLayer now displays the window thumbs again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15250 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
|
#
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
|
#
df36243372fcfd038e2ea21196f33390cb04678d |
|
26-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Now sends B_SCREEN_CHANGED messages to all windows when the screen resolution changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15167 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
|
#
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
|
#
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
|
#
f7598223274c44c551f1ed581030e6ed5268fe68 |
|
18-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the new input event dispatcher is now actually used, although it doesn't distribute any messages to the clients yet. * removed the working thread from RootLayer - for now, its event handlers are still called using input filters in the new event dispatcher, though (to get things started). * ServerApp is now using a BMessenger to identify its client, and no longer stores the port/token separately. * the input_server handshake is a bit simpler now, as it can now just reply to the app_server message, removed unused code from ServerProtocol.h * calmed down the MultiLocker (it always printed thread statistics on startup, because it's compiled in debug mode). * removed the cursor thread stuff from AppServer.cpp * the new event dispatcher now uses a cursor thread when supported (only in native mode, not in the test environment), although it improves cursor movement under Qemu, the effect is not as good as expected - this might need some more investigations (might just be a thread priority problem). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15012 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
08f35604b00adf5e47a170f586fa91ee5d53c4a5 |
|
17-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The basics of the new event handling - not yet connected to anything, and therefore neither used nor tested. It's not even complete yet (support for Set[Mouse]EventMask() is missing), but it will get there :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14990 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c17d025516c9c1a271394f8ef618d842e68c716 |
|
15-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Introduced a new handshake between input_server and app_server, and some temporary handling code in the app_server. * RootLayer no longer creates the input_server messaging port - this is now the responsibility of the input_server. * Moved AS_CREATE_[OFFSCREEN_]WINDOW from ServerApp::_MessageLooper() to _DispatchMessage(). * The RootLayer thread is now started as soon as the input_server is there. * removed or disabled any input_server stuff in the AppServer class. * removed old message commmands to the app_server. * Removed the R5_CURSOR_COMM and HAIKU_APPSERVER_COMM definitions: the input_server is now automatically built correctly depending on the target. * InputServer::EventLoop() plays now safe and checks for error conditions. * InputServer::EnqueueDeviceMessage() seems to leak memory, added TODO about this. * InputServer event loop messaging uses ports for inner-app communication - why? * The InputServer event loop thread is no longer killed on exit, it just quits when its port is gone. * Minor cleanup in input_server. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14949 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
|
#
36deda69baff1eaaa1ba0693a3e06f03cb6a1839 |
|
31-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of sDesktop. Moved AS_ACTIVATE_APP over to Desktop. _CursorThread() is currently dysfunctional (but not enabled anyway). Minor cleanup (Desktop::WindowList() is now a BObjectList). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14599 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
|
#
3ddebe7ec23737814f02aeb99e2ed3eb0fb5998e |
|
21-Aug-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Moved the CursorManager over to the Desktop too. Maybe the CursorManager should be used to set the cursors directly instead of using fDesktop->GetCursorManager.FindCursor() and then fDesktop->GetHWInterface()->SetCursor() in ServerApp.cpp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14033 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
770c05d6cc602b2e545e2ccae5a17c576881dc9c |
|
25-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The Desktop class now gets its own message processing loop: moved application creation/deletion (and management) over to that class. ServerApp now gets a desktop pointer, and no longer uses gDesktop. Converted private MessageLooper::_MessagePort() to a public method MessagePort() so that the looper can be addressed from elsewhere without using PostMessage(). Added a real basic message loop to MessageLooper::_MessageLoop(). BApplication now only asks the app_server to get its desktop object which should now be used for everything that's not in the realm of the application. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5f2edc0ffc961dd2d684d855b7b8315be331fd0b |
|
24-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The Desktop class now inherits from MessageLooper as well, the AppServer class runs it, too. No real message processing is done yet, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13816 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ef8810f2adeb29b35fc895347011ad39bd591bd1 |
|
17-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Extracted the settings stuff from the Desktop class. If you now need to access the desktop's settings, you have to do something like this: DesktopSettings settings(desktop); settings.SetMouseMode(mode); The advantage of this is that this object is fully locked, and cannot lead to corrupted settings anymore. Also, the settings will stay the same until you delete the object again. Updated all accesses to use this new API. Removed no longer used FFM messages. Implemented AS_{GET|SET}_MENU_INFO for future use. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fd5bec1e482fc3aa3b6b98ae26599433d3cb797d |
|
14-Jul-2005 |
Axel Dörfler <axeld@pinc-software.de> |
First baby step to a restructured app_server: - introduced new ScreenManager and VirtualScreen classes - removed screen handling from RootLayer - removed multiple screen/root layer stuff from Desktop, it's now using a VirtualScreen object instead git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13686 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
|
#
94fa2bd2567b925ff7e2eb88cab7dfeddbffd885 |
|
25-Jun-2005 |
Adi Oanca <adioanca@nowhere.fake> |
inlined a few methods in header file, otherwise app_server would not build git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13271 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
|
#
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
|
#
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
|
#
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
|