Commit Graph
100 Commits
Author SHA1 Message Date
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 014ddc8724 Now also sets fInitError when the app_server did not create the app
(and not only drop into the debugger).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 16:29:51 +00:00
Axel Dörfler 2e86adec11 Implemented AS_GET_MODE_LIST server side.
Fixed broken ViewHWInterface::GetModeList() - it did not correctly write into
the allocated memory. Also extended it to be more flexible, has better timing
values, and more resolutions.
ViewHWInterface::SetMode() will now check if the requested mode is in its
list of supported modes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 18:14:13 +00:00
Axel Dörfler 05a710320d MonitorView now takes anti-aliasing into account.
Hide TV menu *before* adding it to the window, or our app_server does it all wrong (temporary work-around).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 17:30:27 +00:00
Axel Dörfler 8eee00f687 No longer draws hidden views (the app_server still handles them wrong, though,
when they are hidden while being attached to the window).
DrawAfterChildren() is now called at the appropriate place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 17:28:24 +00:00
Axel Dörfler 223706b2c3 Integrated Thomas Kurschel's RadeonScreen preferences app.
Major cleanup. All display_mode related stuff is now handled by the
new ScreenMode class, the screen preferences now only care about what
they control directly.
Fixed a lot of bugs.
Some changes in behaviour:
- the alert window that pops up after a screen change can now be confirmed
  with the enter key ("Keep" is now the default button), and be denied with
  the escape key.
- when you switch workspaces, the options will only be reverted to the
  current workspace's options, if you haven't changed them yet
- removed control flickering on mode changes (ie. when pressing "Revert"
  or "Defaults").
- the color pop-up now also shows the number of colors in that mode

Next on the list is: make it work under Haiku, improve visual appearance,
make it font sensitive, play with min/max refresh rates.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 14:58:36 +00:00
Axel Dörfler 718c4fe0c4 Renamed Screen.cpp to ScreenApplication.cpp to match the name of the header (and the class).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-21 12:12:44 +00:00
Axel Dörfler ae49df351a Redone ScreenDrawView to something better, also it's now called MonitorView.
Accidently, Thomas seems to have done almost all changes I wanted to apply
here, anyway, in his RadeonScreen version (which is a lot cleaner than what
we have here).
More to come later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-20 10:38:22 +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
Axel Dörfler 1231504465 Fixed various problem of the BSlider class:
- _DrawTriangleThumb() was drawing outside of thumb frame in B_HORIZONTAL mode
- the focus mark was not updated on value changes
- MessageReceived() and FrameMoved() called themselves, resulting in an endless loop
- there were some drawing leftovers when moving the slider around (only in the thumb
  frame). The fix is not nice and may cause flickering (it's commented as such)
- Fixed triangle drawing problems due to anti-aliasing
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 02:33:47 +00:00
Axel Dörfler 01dfbc3a0c Reported some changes I did a while ago and forgot to commit.
There were more but that will come later (Thomas' RadeonScreen changes).
Vastly improved AlertView/AlertWindow to a cleaner design, the question
mark bitmap is no longer hardcoded, but retrieved in the same way BAlert
does it.
Added license headers to the files updated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 02:00:00 +00:00
Axel Dörfler f56083d8c0 Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 01:45:51 +00:00
Axel Dörfler 91515d2132 With the recent changes to the communication mechanism, fake_app_server
did not work anymore, and thus, the safemode with the current Bootscript
did not work.
It now does again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 21:33:29 +00:00
Axel Dörfler dec3c805d9 No uses B_OP_OVER when drawing the arrows - this fixes the broken look
due to anti-aliasing. Have I mentioned that the arrows are very ugly
anyway right now, and don't match the rest of the look? :-)
Fixed a crashing bug in the "pressed button repeater" - it didn't lock
the looper when scrolling the view.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 21:30:34 +00:00
Axel Dörfler 8095208973 Added poke driver, courtesy of Oscar Lesta. The "poke" command line application will follow.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 19:12:46 +00:00
Axel Dörfler 5f8e562f04 Added a ToDo comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 18:53:24 +00:00
Axel Dörfler 837261c6bb This removes the "error: looper must be locked when quit" message.
I haven't yet fully investigated the looper quitting mechanism in
detail, so there might be more bugs left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 18:40:04 +00:00
Axel Dörfler 5d914f565f Now uses BLooper::check_lock() instead of BLooper::AssertLocked(), because it
doesn't have to check if the looper is valid (we wouldn't be its child if it
weren't).
ResizeTo() and MoveTo() are not supposed to call FrameResized() and FrameMoved()
manually when the view is not yet attached to the window.
BView::CountChildren() and BView::ChildAt() now check if the looper is locked.
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 03:00:44 +00:00
Axel Dörfler 410d5c37d5 Implemented BLooper::check_lock().
Use AssertLock() more often instead of varying debugger messages.
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 02:56:03 +00:00
Axel Dörfler 1ae95ac872 Mixed up argument order - dunno why this didn't have any effect on R5,
but the frame wasn't visible in Haiku, and rightly so :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 01:01:23 +00:00
Axel Dörfler 68dcbfb983 Those commands were used but not defined, obviously some forgot to update this file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 00:58:12 +00:00
Axel Dörfler 53442520cc Fixed a bad bug in the app_server:
fCurrentLayer was used to determine to which layer a new one would be
added to, but BView::AddChild() would only set this correctly for the
current view, ie. all children of the new child were added to the
wrong layer in the app_server.
Now, AS_LAYER_CREATE sends the parent's token to the server, and the
server relies on this to build the layer hierarchy.
All of a sudden a lot of hidden views are visible now. I noticed the
bug while refactoring the task manager, but a lot of apps were affected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 00:46:02 +00:00
Axel Dörfler 2d4b179de5 Implemented B_TRUNCATE_MIDDLE, since truncate_strings() could corrupt memory
before in this mode. Some further cleanup, only B_TRUNCATE_BEGINNING is still
left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 16:49:04 +00:00
Axel Dörfler 49a755ef15 The task manager is now completely font sensitive.
Enlarged the cancel button a bit.
Started counting mechanism (ie. later, when you really press Ctrl+Alt+Del,
the TMDescView counts down to zero). Ideally, this would be fed by the
keyboard device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 08:36:51 +00:00
Axel Dörfler 73c9d940e7 Now groups by system components, ie. system components are added at the
bottom of the list while other teams are added at the top of the list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 06:44:33 +00:00
Axel Dörfler 62f29f2d9b Added test application for the task manager window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 06:40:13 +00:00
Axel Dörfler 5311273550 Refactoring: moved all controls into the TMView class (former TMBox).
It now also handles all messages relating to its controls.
The file path is now truncated to the view's bounds.
Fixed wrong update position of the TMDescView; it always took updateRect
as view bounds.
Enlarged item gap a bit so fit the BeOS task manager exactly.
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 06:37:14 +00:00
Axel Dörfler 9695be8f49 When you kill an item, it is no longer active.
TMBox::Pulse() will now only invalidate the view if something changed - this
completely removes the flickering that was visible with our app_server.
Fixed typo.
Added a ToDo comment since TMDescView::fItem is not correctly updated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 05:39:39 +00:00
Axel Dörfler d145df451e Fixed some of the simpler font sensitivity problems. Looks much better on the real thing now.
Also no longer states that Haiku components would be part of "the BeOS" :-)
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 05:20:10 +00:00
Axel Dörfler e8fbd2527f Now checks if the window is out of the screen frame and move the window
back into it, if necessary.
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 05:15:26 +00:00
Axel Dörfler 507ff76a65 Added empty stubs for shutdown_media_server() and launch_media_server(),
so that we could theoretically run the Media preferences app.
IMO, these belong into libmedia.so; they should be rarely needed with
the new media kit, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 04:33:39 +00:00
Axel Dörfler da7bead8c6 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 04:11:14 +00:00
Axel Dörfler 32d0dbbbf8 Made command line evaluation more robust, it now also accepts a "=" as separator between attribute name and value.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 03:44:18 +00:00
Axel Dörfler ffa1bb09e9 Now creates the People indices on all mounted volumes on startup (like R5's People).
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 03:40:21 +00:00
Axel Dörfler 33c16998cd Removed unused constants.
People is now almost font-sensitive (only the width is fixed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 03:29:10 +00:00
Axel Dörfler 779f323d92 Big cleanup.
Now searches all volumes for people groups.
The only thing left is to make "URL:" and "E-mail:" clickable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 03:18:00 +00:00
Axel Dörfler f32d9ec555 Added some more preferences apps to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 23:43:42 +00:00
Axel Dörfler e7281ecba6 Fixed a bug in next_argument(): it could read after the terminating
null byte, and add junk as arguments. Thanks to Korli for testing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 23:40:43 +00:00
Axel Dörfler 6a27b3b363 Renamed source files for LinkReceiver and LinkSender to match their class names.
Headers will follow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 23:10:39 +00:00
Axel Dörfler b7e162e93a We definitely don't need the FIX_FOR_4_6, whatever that was about.
Also restored the original locations of the class members I broke before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 22:12:32 +00:00
Axel Dörfler 62bb447ee0 In order to be binary compatible, one should not change the location
of private members if the class has friends (and BWindow has a lot of
them...), stupid Axel!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 22:04:29 +00:00
Axel Dörfler 0cb92588a8 Made sLocker static, as originally intended.
If there is no be_app when the AppServerLink is created, it now
falls into the debugger (maybe only for now?).
Removed some debugging cruft.

BTW I changed the standard app_server resolution to 800x600 by
intention - at least for testing this is much more appropriate,
and can be reversed later again.
FWIW I think we should use 1024x768 as a standard or whatever
is the native display resolution. Use 640x480 as a fall back
only in safemode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 21:37:03 +00:00
Axel Dörfler f395db3740 Updated a comment I forgot before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 21:31:30 +00:00
Axel Dörfler dd10337fd0 Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 21:28:56 +00:00
Axel Dörfler 48d350d76e Accidently replaced lib.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 19:50:01 +00:00
Axel Dörfler 80f47570a5 Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 19:49:18 +00:00
Axel Dörfler 494301a5aa Minor cleanup, fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 13:27:26 +00:00
Axel Dörfler 43ed6aa0db The "shebang" handler is supposed to parse arguments, too - we now do that.
Also, when the line is too long, E2BIG is returned.
Thanks to Korli who pointed me to this: http://homepages.cwi.nl/~aeb/std/shebang/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 12:39:06 +00:00
Axel Dörfler be22452f3b Apparently, both load_image() and exec*() support running scripts. We do that
now as well.
Also, both functions will now test if the executable exists and is valid; that
way, load_image()/exec*() can catch many errors without having to create a new
team (or erase the current one - an exec*("my invalid app") might now return
with an error).
The runtime linker now exports a function to test executables that is aware
of the search paths, and will also check user permissions upfront.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 11:23:29 +00:00
Axel Dörfler 229b2db028 cache_node_launched() is now called later, so that the environment will
be the same for both ways (via load_image() and exec*()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 11:15:05 +00:00
Axel Dörfler 6262418e6a fInitialized was never set to "true", so InitCheck() could never succeed.
Also fixed _AllocateBuffer() to handle out of memory situations gracefully.
It should probably also have upper limits with regard to the bitmap size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 00:12:45 +00:00
Axel Dörfler fc95358474 Optimized writing by enlarging the file before the single entries are written
(that saves the file system from starting a new transaction, which is currently
expensive).
Changed output a bit: the launch line now also contains the parent team ID,
file paths are truncated from applications.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 18:44:22 +00:00
Axel Dörfler aadb0f6bb8 The acceleration hooks are now set after a SetMode(), and get a display_mode as parameter
as required by the interface.
Unfortunately, this doesn't help the slow window moving with Rudolf's drivers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 17:42:52 +00:00
Axel Dörfler 02cc496038 Build fix, improved debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 16:04:45 +00:00
Axel Dörfler b84688be5f Added a basic low memory handler service.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 13:03:54 +00:00
Axel Dörfler b1a248305b Minor cleanup, changed return type of page count functions (from addr_t to size_t,
as that's more correct).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 13:02:24 +00:00
Axel Dörfler a69e0ac327 The boot item list was not initialized; this was no problem, though, as
no items can be removed from that list - nevertheless, it's wrong.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 13:01:13 +00:00
Axel Dörfler ff9fb62471 Some cleanup (made static variables static).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 12:59:11 +00:00
Axel Dörfler 183dee22cb Unlike R5, receive_data() could return an error code under Haiku - this
can now only happen if the thread is killed.
_user_receive_data() will now longer pass B_CAN_INTERRUPT to receive_data(),
but B_KILL_CAN_INTERRUPT - this should fix the problem Stefano experienced
with this function, even if I couldn't reproduce it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-12 11:14:37 +00:00
Axel Dörfler e53168541f Instead of letting the window reroute the messages, I just learned the
target can also simply be set to the preferred handler by using the
BInvoker::SetTarget(NULL, Looper()) form.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 17:57:03 +00:00
Axel Dörfler b4ca6a8fc1 Cut/Copy/Paste messages and B_SELECT_ALL are now sent to the window, which then
passes them to the focus view. Before, only the data view got those messages
(because they are accessible over the menu, and had the data view as target).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 17:50:51 +00:00
Axel Dörfler 2a1492f0fa Moved the definition of the BlockAddressPool class into block_allocator.cpp, as it's
not used outside of it.
Added tracking for the last transaction in the block cache; that way it can test
if the last transaction has been closed before opening a new one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-09 02:14:28 +00:00
Axel Dörfler 584d673049 Fixed various bugs in the block allocator: new free ranges were never added
to the free list, so a new range was started for every allocation (!).
block_range::Free() did not update the chunk's used_mask correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-09 02:09:06 +00:00
Axel Dörfler 1c12a6a33f Inode::ShrinkStream() now evaluates the return values from some functions - dunno
if that's a good idea (it may still be a good idea to succeed for shrinking the
stream, even if not everything worked), but it looks better :-)
Improved debug output in case TrimPreallocation() fails.
Journal::FlushLogAndBlocks() no longer ends the current transaction if called
from within an ongoing transaction.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 17:33:56 +00:00
Axel Dörfler 78d6683c68 Changed the "help" command to be able to only show all commands starting with a certain string.
This helps to reduce the flood of commands for those blue screen "users" :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 17:16:40 +00:00
Axel Dörfler 07339e709d Ctrl-C now also works in the MiniTerminal.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 16:58:46 +00:00
Axel Dörfler 8b0b0568fd Made copy_from_start() more clear and probably faster.
Commented out a check that would prevent characters smaller than B_UTF8_ELLIPSIS
to be rendered (ie. the maximum width could be less than the ellipsisWidth but
greater than the complete string width for small strings).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 14:38:29 +00:00
Axel Dörfler e60b1ff1d8 Reserved space for the close and zoom buttons, even if they were absent.
Hack workaround: enlarged the text width a bit, because the title often appeared
truncated for no apparent reason.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 14:35:25 +00:00
Axel Dörfler 3ba7d6f350 Added AS_{GET|SET}_DESKTOP_COLOR.
(Incorrectly) implemented AS_GET_DESKTOP_COLOR - works for now.
Minor cleanup.
Is AS_SET_SCREEN_MODE used at all?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 13:24:40 +00:00
Axel Dörfler e9b005131f Fixed some crashing bugs (that only appear under Haiku, because there is some
stuff missing - defensive programming rules :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 04:11:19 +00:00
Axel Dörfler bd28b3c746 BAppServerLink is now using BApplication::fServerTo/From for its messaging.
Added LinkMsgReader::NeedsReply() method.
Completely redone ServerApp messaging: no more "replyport" from BAppServerLink; instead,
the registered client reply port is used. Fixed some more weak messaging stuff.
ServerApp now recognizes if an unknown message needs a reply, and sends it - for example,
the "Screen" preferences app no longer hangs, but crashes on start :)
Made LinkMsgReader::Read() virtual again, since it's needed by RAMLinkMsgReader.cpp.
Renamed BPortLink::GetNextReply() to GetNextMessage().
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 04:01:59 +00:00
Axel Dörfler be835bdf0b Fixed LinkMsgReader::ReadString() for empty strings I just broke before.
Extended the PortLinkTest application a bit (and updated it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 03:29:10 +00:00
Axel Dörfler 0aa69a9cd4 Fixed the crashing bug when quitting the app_server.
The display driver is now owned by the Screen object.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 01:40:22 +00:00
Axel Dörfler d673482488 Under Haiku, the "stub" driver is called "vesa", so we're trying to use this one.
Note, the special case can go as soon as we've moved the driver over to the new
driver architecture.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 01:39:14 +00:00
Axel Dörfler ecc2961bee Fixed warnings and the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 01:23:44 +00:00
Axel Dörfler 9db6e5bc94 Fixed fake_app_server build due to the BPortLink changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 01:13:38 +00:00
Axel Dörfler 75936a02e4 BPortLink now has a FlushWithReply() method itself.
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 00:36:26 +00:00
Axel Dörfler 750b92faf3 Almost rewrote LinkMsgSender; it's now much cleaner and works better:
- StartMessage() can now get a size to make sure there is enough free space
- if StartMessage() is called with the current message behind a certain
  watermark, the buffer is flushed in order to prevent moving around messages
  in the buffer. The actual value should be tested in real life, though.
- enlarged maximum buffer size to 64k
- fixed bug: could use memcpy() to move overlapping memory around
- added a flag to Flush() that marks messages as needing a reply - the other
  way would be to mark the message "code" to contain this information

Some cleanup in LinkMsgReader.
BPortLink now has most methods as inlines.
The buffer sizes are now declared in a shared header, so that receiver and
sender are always equipped equally.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 22:36:03 +00:00
Axel Dörfler 62fbf00df8 Added a simple mini test application for BPortLink.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 19:40:56 +00:00
Axel Dörfler c493c21745 Cleanup only.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 14:30:50 +00:00
Axel Dörfler 2cafbe7535 Since Bochs 2.2 can finally run the Haiku app_server, it is now enabled
by default. Select "safe mode" in the boot menu to get to the old consoled.
Note, if you're using VESA mode, make sure you run in 32 bit, or the
app_server will crash.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 00:54:23 +00:00
Axel Dörfler 860b32520c Almost rewrote BDeskbar. Fixed some bugs. Added some ToDo comments - the
functions will currently deadlock when called from within the Deskbar.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-06 14:23:06 +00:00
Axel Dörfler 683be71e08 Added stuff for AddMessage() and _AddMessagePriv() - mostly comments
on what they should.
More cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-05 19:37:05 +00:00
Axel Dörfler e17b33e56b The window was removing the app_server connection too early, and thus hang in Quit().
Removed the stopConnection() method.
Cleaned up header a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-05 18:57:55 +00:00
Axel Dörfler 851fc4f198 Private class BAppServerLink now has a global locker, instead of
(ab)using the BApplication lock to synchronize messaging.
Also, it now has one global reply port, that is created on demand,
but never freed - hope this doesn't cause any other trouble.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 17:16:49 +00:00
Axel Dörfler 3cd9c86453 Quit() when called from another thread, never posted _QUIT_ to the looper,
and therefore waited indefinitely for its demise.
Run() had the usual "if error != my special error -> everything fine" that
seems to be everywhere in the Application Kit.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 17:13:42 +00:00
Axel Dörfler a55bbe35a4 Fixed a warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 15:31:26 +00:00
Axel Dörfler a01d14b2db Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 15:15:42 +00:00
Axel Dörfler 68c1f3d2eb Disabled code that could find newly installed drivers - it's not likely we
will do that anytime soon, and it should be done by using node monitoring,
anyway.
devfs_open_dir() now makes sure the directory contents are up-to-date - this
should fix the app_server device lookup.
Disabled debug output in the read/write hooks to improve its usage.
Renamed part_map to partition.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 00:51:17 +00:00
Axel Dörfler 80f6ef8bd8 Moved load_driver() and load_driver_symbols() over to devfs.
Added new devfs_add_driver() function that the device manager will now call
to register new drivers.
Devfs will now keep a list of known drivers and remembers, if they have
been initialized already - a driver can now safely scan the directory it's
in while being scanned itself without having its hooks called twice.
Devfs is now using a recursive lock instead of a mutex (that's not really
a requirement right now, but would allow us to keep the fs lock during
scanning).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-02 18:32:21 +00:00
Axel Dörfler 19b77242ac Some minor cleanup: removed unneeded includes, updated introducing comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-02 18:23:26 +00:00
Axel Dörfler 317121e102 Work in progress of the new block allocator for the block cache. It works, but
currently needs even more memory than the old one 8-)
Not cleaned up at all.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-01 16:39:38 +00:00
Axel Dörfler 6233964798 Removed host BeOS version recognition: we now always default to target "haiku".
Building our components for use with R5/dano/whatever is now something you need
to want, it's not the default anymore.
Note: you can still build single components for R5 by overriding the target
platform per target, too, for example:
$ TARGET_PLATFORM=r5 jam app_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-01 14:33:46 +00:00
Axel Dörfler 12e1714d54 Fixed stupid bug in copy_environ_to_heap_if_needed(): it copied the
environment, but it didn't set the "environ" to the new array, and
thus throwing away the copy again.
GCC no longer crashes because of this, and runs through without help :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-31 01:59:01 +00:00
Axel Dörfler 2dbdc141cf Transactions can now be nested (bfs_release_vnode() actually did that before,
but that was not working correctly):
only the owning transaction (the one that came first) can now end a transaction.
To do: if the owning transaction fails, it should actually not abort the
transaction in case there were sub transactions, but does so right now
(should do no harm, eventually file data is not freed as it should).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-31 01:26:39 +00:00
Axel Dörfler 3bb591ce9a We don't want to drop into the kernel debugger for that right now
(FATAL() would be okay, but it's currently configured to panic).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-31 01:19:43 +00:00
Axel Dörfler 809025e47c BlockArray::MakeEmpty() can now also be called before the block has been actually used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-31 01:18:34 +00:00
Axel Dörfler dde78a340e Fixed off by one error: could call memcpy() with '0' as size argument.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-31 01:17:25 +00:00
Axel Dörfler d1407b9d2b The "PANIC" line will now also appear on the blue screen, not only over serial.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-30 23:09:36 +00:00