Commit Graph

25132 Commits

Author SHA1 Message Date
Oliver Tappe
aebcc506e2 Corrected by previous assumption, since gethostbyname() has nothing to do with
struct sockaddr_in - the real culprits were BNetAddress::GetAddr(sockaddr_in&)
and BNetAddress::SetTo(const sockaddr_in&):
* moved check_r5_compatibility() into r5_compatibility.h to make that function
  available to BNetAddress, too
* adjusted sockaddr_in-handling methods of BNetAddress to deal with R5-addresses
  if in compatibility mode
* removed is_r5_sockaddr() again, since it is no longer needed

With this less hacky solution, Beam, NetPositive, NetworkTime and Vision still work. So, there's hope that the R5 compatibility layer is now complete.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 21:25:19 +00:00
Axel Dörfler
bd2509c549 * Desktop::_UpdateFloating() and Desktop::_UpdateSubsetWorkspaces() both
assumed that there was only a single window that was responsible for the
  workspaces of a floating/subset window. Of course, any number of windows
  can make up the workspaces of those. This fixes bug #2506.
* Added a Window::InSubsetWorkspace() method to complement SubsetWorkspaces().
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 14:17:23 +00:00
Stephan Aßmus
d24ece5186 * I have experiemented with a different method of countering the colored edges
problem of subpixel-anti-alised font rendering. Personally I find the method
better than filtering the subpixels, since it is a straighter transition
between unfiltered subpixel aa and grayscale aa. There is no added blur
affecting also innocent neighboring pixels. The filter method is better at
hiding jagged diagonal lines though, so Andrej and I agreed to move this to
a general discussion on the mailing list. Screenshots forthcomming...

* Some additional coding style improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:59:20 +00:00
Axel Dörfler
9082b7f4ed * Completed module watching mechanism.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:42:02 +00:00
Axel Dörfler
b4147ed317 * RescanDiskSystems() now locks the disk device manager, as it clobbers the
disk system lists.
* Added module watching; on module changes, it will now automatically rescan
  the disk systems.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:21:05 +00:00
Axel Dörfler
30e5affa9f * Added comment about a missing Remove() variant.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:19:22 +00:00
Axel Dörfler
b5753dd7c9 * Added a __swap_int32() function to the runtime_loader - this fixes the build,
since KMessage needs it now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 11:52:57 +00:00
Axel Dörfler
a120934388 * Moved KMessage field printing from vfs_boot.cpp::get_boot_partitions() into
KMessage::Dump().
* Improved message dump output a bit (more concise).
* get_boot_partitions() now simply calls KMessage::Dump() instead.
* Added a KMessage::IsEmpty() method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 10:06:17 +00:00
Stephan Aßmus
66058774c8 Patch by Andrej Spielmann (GSOC):
* Extend the Fonts preflet to offer the new subpixel rendering and hinting
  options in a new "Advanced Settings" tab.
* Remove trailing white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:33:15 +00:00
Stephan Aßmus
1d6aab3303 Patch by Andrej Spielmann (GSOC):
* Add a private BFont API that sets/gets the subpixel and hinting configuration
  of the app_server. Currently, the options are boolean, but may be changed
  to modes later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:31:48 +00:00
Stephan Aßmus
b09e2f6f4b 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
2008-07-10 08:29:50 +00:00
Stephan Aßmus
fa6a00c628 Patch by Andrej Spielmann (GSOC):
* Integrate the subpixel rendering with the existing drawing backend and
  the font rendering.
* The font cache has got an additional rendering type for extracting and
  caching glyph bitmaps that store subpixel coverage values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:26:38 +00:00
Stephan Aßmus
73b44a6aae Patch by Andrej Spielmann (GSOC):
* Extend the existing agg_renderer_region with the two new subpixel methods.
* Remove trailing whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:22:41 +00:00
Stephan Aßmus
829453f678 Patch by Andrej Spielmann (GSOC):
Sorry, actually this third AGG class is also needed to handle subpixel scanline
coverage.

NOTE: I am trying to break up the large patch into digestable pieces. The
comments come from me not from Andrej, so I am to blame for any confusion! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:19:22 +00:00
Stephan Aßmus
185d13d5de Patch by Andrej Spielmann (GSOC):
Two new AGG classes were needed to handle subpixel scanline coverage values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:15:59 +00:00
Stephan Aßmus
0a0622a6de patch by Andrej Spielmann (GSOC):
Removed trailing whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:12:38 +00:00
Stephan Aßmus
3a0814fdae patch by Andrej Spielmann (GSOC):
* Prepared the AGG base_renderer code with two more functions needed to
  handle subpixel scanline coverage values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:11:04 +00:00
Stephan Aßmus
c816464287 patch by Andrej Spielmann (GSOC):
Added complementary functions to the set of functions that implement a
drawing_mode, these new functions interpret the coverage values passed
from the AGG rasterizer or another scanline storage as subpixel triplets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:08:59 +00:00
Stephan Aßmus
60d98a49ed patch by Andrej Spielmann (GSOC):
* Added marco definitions for subpixel based blending of two 32 bit pixels.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:06:59 +00:00
Stephan Aßmus
674c8bc8bb Added TODO about a problem that the late mouse moved message dropping code
may have.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 07:35:47 +00:00
Stephan Aßmus
dde9faab86 * Made the mouse moved message dropping code slightly nicer to read.
* Don't drop messages which carry an important transit value. (Thanks, Axel!)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 07:21:16 +00:00
Jérôme Duval
6d3c6e761a reduced buffer size: with 4096, no buffer is received by the multiaudio addon
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 23:14:57 +00:00
Ingo Weinhold
f937627dc8 Blue screen pagination:
* Changed prompt and keys: Now it's 'q' to quit (abort) the debugger
  command and 's' to skip the following output.
* Don't offer or try to quit a command in the boot debug output.
* Cleanup the prompt and go to the next line also when aborting the
  command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 22:59:45 +00:00
Axel Dörfler
8d79c7db81 * Made Dump() const.
* Removed superfluous whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 21:32:37 +00:00
Jérôme Duval
14f3368d36 fix warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 18:26:16 +00:00
Oliver Ruiz Dorantes
d04eb939af -Move the launching of the Local Device to an IOCTL from the open hook to be more compatible with the net_stack
-Implement Launch method in the accesors regarding previous comment
-Fix KDL at removing device



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 17:01:30 +00:00
Ingo Weinhold
383a9ac435 * Added an explicit boot_splash_uninit(). Not really needed, but makes
it clear when boot_splash_set_stage() must no longer be used.
* Free the memory associated with the kernel args before starting the
  init process. Unlike the original TODO stated there are quite a few
  more users of the kernel args (including the boot splash screen),
  hence we can't really do that earlier, unless we decide to copy the
  data over to the kernel heap. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 15:25:01 +00:00
Ingo Weinhold
fa0a5cd0e8 insert_preloaded_image() now copies the debug symbols and string table
over to the kernel heap. This allows us to simply free them in
unload_elf_image(). Now we no longer leak the memory for non-preloaded
images. On my T61 this amounted to more than 10 MB of kernel heap after
booting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 15:17:39 +00:00
Axel Dörfler
daa861bc29 Work-in-progress of the module notification implementation:
* Most things are working, it just doesn't notify the listeners on changes yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 14:23:29 +00:00
Stephan Aßmus
bb73c05fd7 * Introduced a new view event mask flag: B_FULL_POINTER_HISTORY which,
when set, prevents any old mouse moved message discarding.
* BWindow::DispatchMessage(B_MOUSE_MOVED) checks the event time of the
  message and discards too old events, but only if there is another event
  in the queue and the view does not specify B_FULL_POINTER_HISTORY.
* BView::GetMouse() ignores the checkHistory flag passed to the function
  in case the event mask specifies B_NO_POINTER_HISTORY.
  B_FULL_POINTER_HISTORY on the other hand prevents the dropping of old
  messages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 14:13:03 +00:00
Axel Dörfler
191a03fd11 * {add|remove}_node_listener() erroneously had "dev_t" as type of "node".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 13:04:54 +00:00
Axel Dörfler
9c5c79ad86 * Made DIR definition private, and moved it into the new dirent_private.h
header.
* Added fields necessary to make it possible to retrieve more than one
  dirent from the underlying file system.
* Unless some app creates a DIR on its own to it to feed readdir(), this
  change should be binary compatible. If we find an application misbehaving,
  we can still make it a GCC4 only thing.
* fs_attr/fs_index/fs_query now all use readdir() directly (as that one
  contains the logic to iterate through a number of dirents in userspace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 11:16:00 +00:00
Axel Dörfler
6ad2f357dc * Both, rootfs, and devfs did not correctly report the number of entries
returned by fs_read_dir().
* Removed superfluous white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 10:59:02 +00:00
Stephan Aßmus
fe3d5b3083 Implemented a simple fix for the message-pile-up problem of
BView::GetMouse( , ,useHistory = true) in case the application
calls GetMouse() in a loop with a longer delay then mouse
messages arrive at the queue. The "when" field of the messages
is used to discard old mouse moved messages. This also fixes
the possible problem of finding the same message over and over
in case it is not removed from the queue for other reasons.
This fix makes selecting text in Pe for example usable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 10:03:28 +00:00
Ingo Weinhold
74d5c1e499 * Fixed serious memory leak in team_create_thread_start(). The
destructor of the automatic KPath variable was never invoked, since
  normally arch_thread_enter_userspace() would not return and thus the
  function scope never be left. After a standard "jam @image" almost
  42 MB of kernel heap were lost this way.
* Added a few warning comments in functions that shouldn't use automatic
  variables with a destructor in the function scope either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 03:58:38 +00:00
Ingo Weinhold
d1d7044ed1 Added TODO regarding memory leak. Too tired ATM to solve it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 03:04:39 +00:00
Ingo Weinhold
b64e66fbd0 Changes related to the "caches" command:
* The table used for sorting the caches could be too small for the
  number of caches in the system. We never checked that, which could
  cause a crash or triple faults when invoking the command.
* We now allocate the table as an area. Also increased the table size to
  102400 entries.
* Also print the committed memory for non-RAM caches, if they are the
  root cache of a cache tree that has committed memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 01:56:58 +00:00
Marcus Overhagen
0cd4d5fa02 Report SCSI_STATUS_GOOD after successful ATAPI commands. This makes CDDA-fs work with AHCI.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 22:39:03 +00:00
Stephan Aßmus
f3312751b9 honor 80 char limit in comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 22:31:26 +00:00
Jérôme Duval
3787196a5a * some methods to access stream registers were defined with wrong types
* use HDAC_BIDIR_STREAM_OFFSET and HDAC_OUTPUT_STREAM_OFFSET when applicable
* use a PAGE_ALIGN macro


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 21:48:50 +00:00
Jérôme Duval
f67bbdb2a6 fixed warnings
use playback rate as preferred rate (instead of record)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 21:31:14 +00:00
Stephan Aßmus
264df95726 All input device add-ons should already do this, but make sure that
mouse messages have a "when" field with the event system time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 20:29:18 +00:00
Stephan Aßmus
d36ae78cc6 Added two tests:
* statusbar was used to test and improve some BStatusBar behavior
* lagging_get_mouse demonstrates what the problem is with older
  applications using synchronous GetMouse() calls without specifying
  that they actually don't care about mouse history.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 20:01:31 +00:00
Oliver Ruiz Dorantes
48cca06a81 Add new virtual method in the delegates to launch the device, Instantiation meant only to open/register the localdevice
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 18:39:41 +00:00
Stephan Aßmus
6be60b2d19 Applied patch by Jan Kloetzke:
The PUSHF/POPF instructions were not emulated correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 18:25:45 +00:00
Stephan Aßmus
fc8e77f863 When a BBitmap is drawn with scale, but also only partly, the inverse
image scan generator matrix was calculated wrongly. The part of the offset
that lies within the bitmap bounds needs to have the scale applied as well.
Maybe this code can be simplified. Appearantly there is not a lot of code
that uses BBitmap drawing this way, perhaps because the R5 version has had
issues with rounding. But MediaPlayer uses this feature for drawing the peak
levels and this is fixed by this change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 17:48:30 +00:00
Stephan Aßmus
93016537eb Check if the Painter even has a clipping region set before trying to take the
short cut when no text needs to be rendered. I've seen a crash yesterday in
the app_server test environment when the decorater was drawing something,
although it may also have been because I had a screwed up objects folder
where some objects were not recompiled because I am switching back and forth
between two app_server code folders.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 17:41:15 +00:00
Stephan Aßmus
bafcc63bcc This is either a fix or a workaround for a problem in Pe, where the
application modifies the scrollbars one by one and the changes would
have some weird cyclic effect where the constrains of one scrollbar
affected the scrolling already while they would be lifted afterwards.
It sounds weird, but maybe it is simply a resulting behavior of the
BeOS implementation which does not check the scrollbar restrictions
in the BView code. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 17:21:39 +00:00
Jérôme Duval
81a7dedd6b init buffer_cycle
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 16:41:52 +00:00
Ingo Weinhold
65748dc8d9 Remove() was moving an additional array element. Mostly harmless, but
would cause a crash when the array end was page-aligned and the next
page was not accessible. Happened to me during a "rm -rf ...".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 16:15:41 +00:00