Commit Graph

21 Commits

Author SHA1 Message Date
Axel Dörfler
27adb96962 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
2005-11-28 23:36:59 +00:00
Axel Dörfler
485b948731 Removed "Active" stuff from Workspaces state.
As a side effect, the desktop is now clickable again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 20:22:30 +00:00
Axel Dörfler
4b813bf267 Renamed WinBorder to WindowLayer, and OffscreenWinBorder to OffscreenWindowLayer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 17:45:26 +00:00
Adi Oanca
e2ad4ab9b2 Not in mood for too much coding, I had a look through the code tonight. And guess what? Like Stefano
the other day, I discovered, not a bug, but how to invalidate only the area that requires it when
changing window order (selecting or moving to back a window). Stuppid me, that stuff didn't worked
because I forgot how windows were arranged in the list returned by Workspace::GetWMState(). I was
iterating the wrong way! :-)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-10 21:52:59 +00:00
Adi Oanca
9f0d28e921 Fixed a stupid bug when checking if the window order changed. Added support for BWindow::Activate(false). Added some debug support for Workspace::WMState. Simplified a bit code for sending a window to back.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-29 10:19:23 +00:00
Stefano Ceccherini
85a1a67495 Workspace has a display_mode member where it stores the settings. Removed unused [Set]LocalSpace() methods, added Set/GetDisplayMode() methods
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-08 16:44:28 +00:00
Adi Oanca
f59edb4bf0 - removed RootLayer::WinBorderAt(). Use Layer::LayerAt() instead.
- Added a skeleton for RootLayer::SetActive()
- removed Workspace::SetFocus(). Use AttemptToSetFocus() instead.
- properly implemented Workspace::_SetFocus().
- removed Workspace::fActiveItem - it had/has no use.
- fixed a problem with Decorator buttons being drawn improperly when
B_MOUSE_UP was generated outside their area.
- added 2 TODOs to later fix Decorator's (re)drawing path.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-02 21:55:45 +00:00
Adi Oanca
534bc2c360 moving and resizing windows works very well now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-19 22:41:48 +00:00
Adi Oanca
1b65556d66 more work on the input handling. I let Layer/WinBorder handle the MouseDown/Moved/Up instead of doing this in RootLayer::MouseEventHandler(). I did this because I felt it's more clean and in the near future RootLayer may have other children than WinBorders, for example simple Layers representing tooltips/bubbles/etc.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-18 22:43:31 +00:00
Adi Oanca
8b94d5ecdd Work in progress for the new input handling stuff...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-16 05:10:21 +00:00
Axel Dörfler
0e430ce96e Fixed the crashing bug with BAlerts - have I already said that this code is a mess?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:22:34 +00:00
Axel Dörfler
189ba7a9dc Tried to separate active WinBorder from front, but failed - it's now always
the focus border, and therefore, I probably broke floating windows (but that's
not that important right now).
Workspace::HideWinBorder() now sets focus to the next WinBorder, not always
the top one.
Workspace::MoveToFront() no longer changes focus, no longer calls ShowWinBorder()
when the window doesn't have to be moved (ie. for the desktop window).
Added Workspace::SetFocus() to change the focus explicetly.
Some other cleanup. This is an ugly patch, but refactoring/rewriting is coming
soon.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 20:19:22 +00:00
Axel Dörfler
a38e46a046 ServerApp now maintains a list of all windows, ServerWindow's AS_DELETE_WINDOW
will update it automatically.
Renamed ServerWindow::fName to fTitle, made it a pointer - it will now just
adopt the title pointer that came from AS_CREATE_WINDOW.
Just another cleanup round: renamed Layer::GetName() to Name(), no
more layer->fName->String() accesses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 18:48:10 +00:00
Axel Dörfler
fcb006dcf5 Rewrote how the app_server and ServerApp's quit. As a side effect, the server
can now quit instantly.
AppServer must no longer call ServerApp's destructor once it's running - it now
has to call Quit() in this case. The ServerApp is now destructed in its own thread.
Some cleanup (like renaming ServerApp::MonitorThreadID() to Thread()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 17:40:35 +00:00
Axel Dörfler
1b5aeb312e Renamed class FMWList to SubWindowList. Cleaned up SubWindowList a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 16:34:22 +00:00
DarkWyrm
47a1e5d189 Implemented the settings functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 01:29:12 +00:00
Adi Oanca
51a73c1e2b Fixed a bug where a modal app window appeared in current workspace although its workspace mask did not include it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-23 10:05:33 +00:00
Adi Oanca
d7c2c05061 Big cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-16 13:30:49 +00:00
Adi Oanca
4038d58146 Fixed a bug where a modal subset on some occasions did not change workspaces when its main window did. Initializing workspaces is a bit different now, they are initialized when are needed. Some work on adding support for BWindow::WorkspaceActived()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 22:46:48 +00:00
Adi Oanca
9e358400f5 Sending windows into background works now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 10:00:37 +00:00
Axel Dörfler
33bbe22391 Moved app_server files to app/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 14:45:52 +00:00