Commit Graph

14611 Commits

Author SHA1 Message Date
Stephan Aßmus
0cf04412be please forgive me (next check in when I really coded new stuff)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 21:04:46 +00:00
Stephan Aßmus
420b55f261 fixed the frame buffer version for real
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 21:01:49 +00:00
Stephan Aßmus
935510ce32 fixed build of frame buffer version
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 20:56:53 +00:00
Stephan Aßmus
0b78f37e8e * a bit more sophisticated
* now with actual view layers inside the windows
* implemented the resize modes (from Adis code)
* windows have resize handles and more correctly
  clip the views inside
* bringing windows to front or sending them behind all others
* one active window, the others are inactive
* with and without focus follows mouse mode

* bugs:
  - the region marked dirty when views are
  resized is not correct yet

* todo:
  - move the dirty region from being managed by the
  desktop to being managed in each window (and being
  local too)
  - scrolling
  - hiding/showing of windows and views

I plan to extend this to fully simulate asynchronous
drawing from clients, to see any problems before
using this in the real server one day.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 20:49:30 +00:00
Axel Dörfler
1863b5b6a4 Removed the "owner" stuff from Layer - it already knows its window.
Layer no longer knows anything about its subclass WindowLayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 17:59:49 +00:00
Axel Dörfler
be2f498e8a Forgot to commit Jamfile for the test environment...
Should have been in r15128.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 17:58:33 +00:00
Axel Dörfler
14e1abfe7d Made Layer::_AllRedraw() virtual so that it doesn't need this ugly hack to
send _UPDATE_ messages (WindowLayer now overrides that method).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 17:54:14 +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
Axel Dörfler
2430abdd9a Some minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 17:12:32 +00:00
Axel Dörfler
0a9634a6f4 Minor cleanup: removed unused stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 16:55:17 +00:00
Axel Dörfler
860c144735 No longer checks if there is already a "be:transit" item in the message;
there should never be one (at least not a valid one).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 16:39:19 +00:00
Axel Dörfler
5604d3c9ce * _DetermineTarget() will now return fLastMouseMovedView in case there
was no valid "_view_token" in the mouse event.
* _SanitizeMessage() will now only add the "be:transit" field for
  B_MOUSE_MOVED messages. It will also now only update fLastMouseMovedView
  for B_MOUSE_MOVED messages, and not for all mouse messages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 16:25:41 +00:00
Axel Dörfler
5afc064831 In anticipation of Stippi's new clipping code, I refactored the EventDispatcher
a bit:
* listeners are now managed per target (ie. per messenger) (by the Target class)
* therefore, the fFocusTokens/fLastFocusTokens lists are no longer needed; every
  Target knows its listeners already.
* this also fixes the obvious bug that the focus window's views would get both
  keyboard and pointer events, no matter which of them they originally wanted.
* renamed event_target to event_listener (there was actually a mix up in naming
  before - to the outside it was "listener", and internally, "target" was used)
* WinBorder::MouseMoved()/MouseUp() now also add the view token to the message;
  the messages weren't received by the target before (unless the view used
  tracking via BView::SetMouseEventMask()...) - maybe the client should only
  update fLastMouseMoved on B_MOUSE_MOVED events, and direct B_MOUSE_UP/DOWN
  (plus wheel changes) always to fLastMouseMoved...
* some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 16:04:29 +00:00
Rudolf Cornelissen
7c3f704498 now also rom image files dumped have the hardware ID's and location in it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:47:59 +00:00
Rudolf Cornelissen
48853da83f now also rom image files dumped have the hardware ID's and location in it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:43:27 +00:00
Rudolf Cornelissen
e3c42851f7 moved a define to shared_info for logging update.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:18:30 +00:00
Rudolf Cornelissen
0e5a68cd89 moved a define to shared_info for logging update.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:18:05 +00:00
Rudolf Cornelissen
21ef619eff modified logging file name. Now the name incorporates the same name the kerneldriver exports for a device so logging multiple active graphicscards becomes possible on one system.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:17:21 +00:00
Rudolf Cornelissen
36e7feca38 updated shared_info for logging update.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:06:27 +00:00
Rudolf Cornelissen
e33ce45ebf added more PCI bus related info for graphicscard: needed for logging update.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:05:41 +00:00
Rudolf Cornelissen
ddb22696d9 modified logging file name. Now the name incorporates the same name the kerneldriver exports for a device so logging multiple active graphicscards becomes possible on one system.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 15:04:47 +00:00
Axel Dörfler
5d29bfa5fa * Moved change_winBorder_feel() into GoChangeWinBorderFeel() and removed the former.
* Renamed GoChangeWinBorderFeel() to ChangeWinBorderFeel().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 13:26:26 +00:00
Axel Dörfler
bde8b9c6e0 * Layers are now put into an application wide token space that mirrors the
client's token space.
* finding layers by token is now O(1) instead of O(n) (as they are looked
  up in the token space).
* removed Layer::FindView() as it's no longer needed (or should be used).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 13:14:49 +00:00
Stefano Ceccherini
a2a5442d81 minor cleanup, changed some variables into constants
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 13:10:03 +00:00
Axel Dörfler
45d4256f2d Added a BTokenSpace::SetToken() to assign a specific token.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 13:00:06 +00:00
Axel Dörfler
46b7964e5c Got rid of "cnt" debugging stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 12:22:55 +00:00
Axel Dörfler
343e4ff465 Got rid of fAdFlags whatever that was meant to be.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 12:21:07 +00:00
Axel Dörfler
5ed0556236 * Got rid of the frightening Layer::fCurrent/RootLayer::fWinBorderIndex as well as
NextChild() and PreviousChild() - the current WinBorder list is now rebuilt on every
  change; this is not perfect, and only a temporary solution (but cleaner than the
  previous one).
* Introduced Layer::PreviousLayer()/NextLayer() methods that return the previous resp.
  the next sibling.
* Moved {show|hide}_winBorder() into {Show|Hide}WinBorder() and got rid of the former.
* Renamed Layer::fServerWin to fWindow.
* removed some unused stuff, minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 12:19:11 +00:00
Rudolf Cornelissen
3ea52afce9 added dpms_flags to shared info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 12:16:28 +00:00
Rudolf Cornelissen
db6ede836c essagerewrote DPMS code: simpler, cleaner and prevents visible 'trash' during driver-init.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 12:14:57 +00:00
Rudolf Cornelissen
88489db7f9 added useable INT flag to shared_info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 11:20:50 +00:00
Rudolf Cornelissen
db42d8ec02 driver can now run without (useable) INT assigned. Bumped version to 0.24. Updated docs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 11:20:22 +00:00
Rudolf Cornelissen
8fe19e2fbc driver can now run without (useable) INT assigned: VBlank semaphore automatically enabled/disabled upon findings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 11:19:21 +00:00
Rudolf Cornelissen
c484bc2197 simplified and fixed overlay capability reporting code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 11:14:49 +00:00
Stephan Aßmus
bef1ed93e1 Adi and I have had long talks about better approaches to clipping and we are convinced that a different design can significantly speed up the clipping processing in the root layer thread. This is a first prototype implementing the new ideas. Lots of features are missing yet, but Adi asked me to commit it now, so that we can both continue to work on it. The purpose of the new design is to significantly reduce the computations during an atomic clipping update, and also to scale much better with many more open windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 09:45:28 +00:00
Philippe Houdoin
b8c43bc75e Fixed building libGL.so for non haiku targets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 05:21:04 +00:00
Philippe Houdoin
49af301b35 Fixed build for non haiku targets.
Added dummy support for glutKeyboardUpFunc(), glutSpecialFunc() and glutJoystickFunc().
To be implemented later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 05:11:01 +00:00
Alexander G.M. Smith
69135e1c54 Added better tokenization so that HTML is parsed and things like tags
between letters of a word no longer hide that word.  After testing,
the result seems to be a tighter spread of ratings when done in full
text plus header mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 04:17:00 +00:00
Axel Dörfler
5a67ef6634 Removed broken Layer::LayerAt() semantics (for recursive == false),
and introduced a RootLayer::_ChildAt() that is used instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 22:01:49 +00:00
Axel Dörfler
a8d44b6fea Quick fix for the broken focus changing I introduced earlier.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 21:52:36 +00:00
Rudolf Cornelissen
bb4de4057b leftover from original obos CVS import. nolonger needed. (thanks Ithamar for pointing this out.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 20:09:11 +00:00
Axel Dörfler
7df07b24d3 Nice if an experienced problem matches a bug in the implementation that
closely: Inode::WriteAt() didn't call Inode::WriteBack() in case the
file size was enlarged - it was only written in case the file was closed
which a) could have not happened because of a crash, and b) would move
the change into the wrong transaction, and could therefore result in
an incorrect update, as seen.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 18:52:17 +00:00
Axel Dörfler
2b028fcaa0 Removed one TODO from the list: in case pages_io() fails, read_chunk_into_cache()
will no longer panic, but free its allocated pages.
I ran into this because BFS managed to create a file without data stream but
with a length larger than 0...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 18:36:38 +00:00
Michael Lotz
76c0041c51 I suppose setting the height was forgotten?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 17:49:38 +00:00
Axel Dörfler
8643b0987c All controls/views now accept NULL arguments for "width" and "height" in GetPreferredSize().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 17:29:39 +00:00
Axel Dörfler
f97761575a * GetPreferredSize() now accepts NULL arguments for "width" and "height"
* use GetFontHeight() instead of: BFont font; GetFont(&font); font.GetHeight(...)
* fixed odd unarchiving of the alignment.
* cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 17:28:18 +00:00
Axel Dörfler
a8c4b88de4 * Fixed issues like not calling the inherited virtual or calling the wrong one.
* Applied coding style.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 17:13:01 +00:00
Axel Dörfler
43ca776563 * applied the logic from BWindow::task_looper() to BLooper as well (messages to
invalid target handlers are dropped).
* B_PREFERRED messages now go to the looper if there is no other preferred handler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 16:25:30 +00:00
Axel Dörfler
6450b76dd4 Next big step in the event handling:
* RootLayer's mouse event processing is now at its minimum - the
  EventDispatcher handles them now. As a result, a window will now
  get only one message per event.
* RootLayer adds "_view_token" to mouse moved messages that specify
  the view currently under the cursor.
* There is now a mouse event layer in RootLayer that gets preferred
  when it's set - this is now used for the window moving instead of
  the previous mechanism.
* changed the previous DistributeMessage() to an UnpackMessage()
  method following Adi's suggestion.
* caveat: some things might be functionally broken in RootLayer now
  because of removing the mouse notification stuff.
* "be:transit" handling is now done completely client side by
  BWindow::_SanitizeMessage(() (similar to what the input_server does).
  This should also make the mechanism pretty robust, since every
  B_MOUSE_MOVED message can now trigger the view transit (in case a
  message is lost). B_WINDOW_ACTIVATED messages should be generated
  client side as well.
* renamed AS_LAYER_GET_MOUSE_COORDS to AS_GET_MOUSE as it's not a
  layer specific command, and also gets the mouse buttons.
* B_MOUSE_* messages from the up server now contain only a "screen_where"
  field; "where" (in window's coordinates) and "be:view_where" are
  added in BMessage::_SanitizeMessage().
* messages that don't have a valid target in the looper are now
  dropped instead of being sent to the looper - this should be done
  in BLooper as well, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 15:17:58 +00:00
Axel Dörfler
8196fa8da4 * now accepts NULL arguments for "width" and "height" in GetPreferredSize()
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-23 14:51:01 +00:00