Commit Graph

14895 Commits

Author SHA1 Message Date
Stephan Aßmus
4dd89c6903 * added a multi locker implementation from Ingo Weinhold,
which supports ReadLockWithTimeout()
* commented the code in many more places
* understood the problem of making the read/write locking
  work: While it would be possible for each window to
  remove the processed region from the global dirty region
  in read lock mode (since it is guaranteed not remove
  a region not intersecting with its own visible region),
  multiple window threads can still not do this at the same
  time, since BRegion itself is not threadsafe of course.
* I need to figure out a way for the window threads to be
  able to access and modify all needed data in read only mode,
  I think this means to divide the global dirty region into
  each window again, so that each window thread can simply
  clear its own dirty region instead of excluding it from
  the global region. Yeah, that might work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 19:08:58 +00:00
Axel Dörfler
a9b83b752c Added a bit of documentation to the EventDispatcher.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 17:00:08 +00:00
Axel Dörfler
f89b4c9a23 Have I said input event handling is done?
* didn't realize that mouse events always go to the view under the mouse, not
  only if its the focus window (FFM can really do harm, after all :-)).
* removed a TODO from the list: EventDispatcher::Target is now a public
  class EventTarget, and every ServerWindow has one.
* as a result, EventDispatcher no longer manages targets itself, it
  just maintains a list of them. You no longer set messengers, you
  only set targets.
* customization of the message filters, they no longer inherit from
  BMessageFilter (but EventFilter).
* a message target is no longer set explicetly anywhere, it's only
  changed in the message filters if needed.
* therefore, no more locking mess in the EventDispatcher needed.
* this also made the EventDispatcher::fLastFocus stuff superfluous.
* moved the RootLayer::MouseEventHandler() into the message filter.
* Replaced RootLayer::_ChildAt() with WindowAt().
* WindowLayer now has an idea if it has focus or not, it no longer needs
  to query the RootLayer for this - maybe we should rename "focus" to
  "active", though (as far as layers are concerned).
* the "_view_token" data is now added from the EventDispatcher, not
  the (Window)Layer class anymore.
* removed Layer::MouseWheelChanged() as we currently don't need it
  (if the need arises, we can add it back later again)
* there is still no mouse moved message sent when opening a window
  under the cursor, though...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 16:01:41 +00:00
Axel Dörfler
c7bba5ca04 When it gets a B_ENTERED_VIEW transit in MouseMoved(), it will now use a different
color. In BeOS, a view gets a MouseMoved() with B_ENTERED_VIEW when the window is
opened under the mouse cursor (not yet in Haiku).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 13:32:35 +00:00
Axel Dörfler
17adc30b57 Only compiled under BeOS...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 13:12:27 +00:00
Axel Dörfler
7362a1d7b8 Added a test application for B_AVOID_FOCUS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 13:07:01 +00:00
Rudolf Cornelissen
d9b60a740a finalized docs for release.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 11:57:38 +00:00
Rudolf Cornelissen
898ec61104 finalized docs for release.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 11:56:55 +00:00
Rudolf Cornelissen
9528941458 finalized MMS (multihead) card support. Fixed system crashing with null pointer if 'secondary' mms card in system was used on it's non-primary heads while it's primary head was not in use. (hope this is readable :). In other words: rewrote copying ROMs for MMS cards. Kerneldriver now holds images for each card and head inside the kerneldriver independant of a card's driver being actually used or not. multihead cards can now be used as you wish: they nolonger need to be the 'primary' card in your system. hehe: 6 heads running here (two on a dualhead nvidia while 4 in a matrox mms. Test harness much in use, as all those cards still can't be used otherwise on BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 10:40:55 +00:00
Rudolf Cornelissen
a6e6b1d36f bumped version to 0.26.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 10:34:48 +00:00
Stefano Ceccherini
a4368fc50d Small cleanups and simplifications. Removed duplicated code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 10:34:06 +00:00
Rudolf Cornelissen
a76b13ce62 correct logmessage spelling errors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 10:09:16 +00:00
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
8fc80f17d9 refactored a _AddChildToList() and a _RemoveChildFromList() out of AddChild() and
RemoveChild() (very similar to what BView does).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 23:27:20 +00:00
Jérôme Duval
ae0a90cedb SetAppCursor also sets cursor status
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 23:13:16 +00:00
Jérôme Duval
5c8a419576 added matroska again, as setjmp is working
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 21:11:58 +00:00
Jérôme Duval
c3ea345d20 starting a running device or stopping a stopped device isn't allowed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 20:41:16 +00:00
Stephan Aßmus
b619f15f6d that expensive drawing mode served it's purpose, but it makes it seem like the prototyp is maxing out the CPU again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 19:40:02 +00:00
Stephan Aßmus
748533bbf9 figured out and solved several problems:
* views are now correctly clipped when they are
  (partly) hidden under their parent(s)
* removed fIsTopView, the top view in a window
  simply has no parent
* introduced WindowLayer::CopyContents() which
  blits part of the contents to another location,
  while moving that part in the dirty regions. Since
  this is currently used from the Desktop thread,
  messing with the update session dirty regions
  requires now to lock the clipping
* that feature is now used for blitting a view to its
  new location in ViewLayer::MoveBy(), which
  works for right and/or bottom aligned views just fine
* I left the global dirty region in Desktop for now,
  moving it into each WindowLayer gave quite a slowdown
  and caused all kinds of other problems.
* a view is now cleared to the background color right
  before the first drawing command from the client
  is executed for that view, this reduces flickering
  a lot because the content is drawn much more shortly
  after the background is cleared.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 19:28:38 +00:00
Axel Dörfler
94dc3ed625 Added a small test application that opens a desktop window (so that you don't have
to open the whole Tracker everytime for this).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 17:54:34 +00:00
Jérôme Duval
0b64aa6472 hopefully fixed iroster behavior
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 17:14:54 +00:00
Axel Dörfler
4bd3c01eaa _AddChildToList() was very inefficient in case there was a "before" view
specified. Also, it now drops into the debugger in case "before" doesn't
belong to us already.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 15:48:43 +00:00
Axel Dörfler
349837d9c9 Some cleanup in the communication code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 15:47:41 +00:00
Ingo Weinhold
2ae568931f Reworked the way how the gensyscalls stuff finds out about
the sizes and alignments of syscall parameters. It no longer
generates and compiles functions with the same signature as the
syscalls. This simply doesn't generally work for cross-compilation.
Instead we provide a bit of architecture-specific code that knows
how things work for the target architecture.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 12:53:55 +00:00
Alexander G.M. Smith
968748e669 Just a few minutes after checking in, I mentioned it to Japanese expert
Koki and he suggested also including the Japanese comma.  So before I
forget to do it...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 02:07:55 +00:00
Alexander G.M. Smith
45bfb95c2a Truncate overly long URLs to the maximum word length. Convert Japanese
periods to spaces so that more "words" are found.  Fix UTF-8 comparison
problems with tolower() incorrectly converting characters with the high
bit set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 01:37:13 +00:00
Adi Oanca
12aa597dc6 Played a bit :-)
* Introduced WindowLayer::Hide/Show/IsHidden()
* Made ViewLayer::IsHidden() more robust.
* Same with ::TopLayer()
* modified a little ViewLayer::MoveBy() - prepared it to work with
hidden/shown code that will come soon; only calculate dirty regions if a
ViewLayer has a parent, otherwise the move action is pointless.
* Did the same thing with ::MoveBy() except for the parent stuff - no need
for a parent on resizing.




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 17:08:57 +00:00
Waldemar Kornewald
f6ba01da14 Fixed ld reporting too many arguments.
Question about libbind: Why do I have to specify libroot.so in LinkAgainst? And does SharedLibrary not set the dependencies? I had to add Depends libbind.so : ... ;. Ingo, anyone?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 13:36:49 +00:00
Ingo Weinhold
353d20c0c5 * libroot and the runtime loader are no longer built with kernel rules.
* New rule Ld, analogously to KernelLd.
* Added StaticLibrary parameter for supplying additional objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 13:31:50 +00:00
Rudolf Cornelissen
dd42286f73 updated docs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 11:06:37 +00:00
Rudolf Cornelissen
daba3d7f79 bumped version to 0.25. The new primary mga.setting is confirmed to be working as expected (tested R5.0.1 pro).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 11:06:18 +00:00
Rudolf Cornelissen
12069ec410 updated docs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 11:05:21 +00:00
Rudolf Cornelissen
f5d77e0315 bumped version to 0.67. The new primary nv.setting is confirmed to be working as expected (tested R5.0.1 pro).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 11:04:51 +00:00
Rudolf Cornelissen
b0994d7e75 added field for primary card's name in shared_info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 10:32:40 +00:00
Rudolf Cornelissen
49a89482a7 added new nv.setting to let the driver force a certain card to be used as primary in a system with multiple cards. The card in question gets a minus (-) before it's actual name so it's listed at the top in the /dev/graphics/ folder. It's a hack, but it's handy to have for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 10:32:08 +00:00
Ingo Weinhold
38f6264454 Reorganized building of kernel, boot loader, and libroot.
Each component is built in the respective subdirectory now
and no longer in src/system/Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 00:27:19 +00:00
Stephan Aßmus
f51806635b stress testing. It shows that for 40 open windows, the newerClipping design takes 3.5 times less time in the root layer thread compared to the newClipping design. On average, it is about 8.7 times faster. The goal of the redesign, to move the heavier computation from the root layer thread into each window thread, seems achieved, since even with 100 open windows, moving a window does not start any lagging. By removing the global dirty region in Desktop, I think this can be further improved.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 00:18:08 +00:00
Axel Dörfler
05644959e1 Commented a very annoying debug message out.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 23:37:53 +00:00
Ingo Weinhold
c7b36669c2 Moved bin2h and bin2asm to src/tools/misc (no longer added to the
build). We don't really need them any longer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 23:34:05 +00:00
Ingo Weinhold
74f85acd35 Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 23:25:29 +00:00
Ingo Weinhold
eb94488877 Fixed image build broken since revision 15169.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 23:16:20 +00:00
Ingo Weinhold
e3c1eb20cf Removed superfluous AddDirectoryToHaikuImage invocations.
Add{Files,Symlink}ToHaikuImage do that anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 22:58:40 +00:00
Axel Dörfler
b7a6acd4ce Added a symlink from the Desktop to the user's home directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 22:29:29 +00:00
Axel Dörfler
3f5eacff02 Quick and dirty hack to let those font rendering problems disappear - I don't really
know what's going on, but this appears to fix it. And since we'll get a new glyph
layout backend sooner or later, I don't want to mess with that stuff again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 22:26:50 +00:00
Axel Dörfler
560fa51713 * fixed AddSymlinkToHaikuImage usage for more/less - we have both back again :)
* added home/config/be folder, and added symlinks to /boot/beos/apps and
  /boot/beos/preferences to it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 22:04:33 +00:00
Axel Dörfler
a7b93468cc SendMessageToClient() now gives a little more info in case sending failed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 20:35:58 +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
59e89c6052 Fixed a locking bug in the icon cache.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 20:18:36 +00:00
Stephan Aßmus
0036cd5d1b I don't want to promise anything but that fix could have been the last remaining bug. Next up is scrolling then showing, hiding, adding and removing layers during runtime... Maybe the simulation can be extended by drawing animations triggered from the client too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 18:02:13 +00:00
Stephan Aßmus
7241178e3f ViewLayers screen clipping is clipped to the parent bounds, but that is only a partial fix and should be done more elegantly. When moving a window, the part that we could blit is certainly not dirty, the pending dirty region that we drag along is clipped to the new visible region of the moved window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 17:55:05 +00:00