a concurency problem in the DrawingEngine, so there is some debugging
stuff added, as well as some unnecessary locking removed there. The
problem was in Painter though, in that certain functions adjusted clipping
at the "rasterizer level", while some other functions didn't care about
that. Now the clipping is consistently set at the rasterizer level (rough
estimate to avoid scanline generation outside real clipping region bounds).
There are a number of bugs fixed by this, I'm going to find out later,
what their ticket numbers are... Mouse preflet draws the mouse now,
Backgrounds preflet draws the screen reliably... probably more, anything
to do with bitmaps, round rects and possibly ellipses.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18828 a95241bf-73f2-0310-859d-f6bbb57e9c96
the responsiveness of the GUI, and should also fix bug #742.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18821 a95241bf-73f2-0310-859d-f6bbb57e9c96
its resources -> now also the vector icons (thanks Jérôme for
the hint)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18806 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Deskbar uses 32 bit icons now
* vector icons are now correctly converted to B_CMAP8 bitmaps
if no B_CMAP8 icon is available
* small fixes in Tracker (window mode menu)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18803 a95241bf-73f2-0310-859d-f6bbb57e9c96
for saving later
* added "Clean Up" feature to "Path" menu
* added "Freeze Transformation" to "Shape" menu (will apply the
current shape transformation onto the path and reset the shape
transformation to identity)
* small cleanup in ShapeListView
* implemented zooming in CanvasView
* added context menu while editing a path
* implemented undo/redo for transforming points
(press T or use context menu)
* added "Split Points" feature (path editing context menu), it will
make two points from one control point
* improved selecting path points with selection rect
* improved SVG import for zuMis BeOS icons (more precise scale)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18800 a95241bf-73f2-0310-859d-f6bbb57e9c96
This improves abstraction and allows bus drivers that are independant of ide_adapter.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18794 a95241bf-73f2-0310-859d-f6bbb57e9c96
- space-based indentations replaced with tab-based ones;
- a bit of cleanup;
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18785 a95241bf-73f2-0310-859d-f6bbb57e9c96
- space-based indentations replaced with tab-based ones;
- a bit of cleanup;
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18784 a95241bf-73f2-0310-859d-f6bbb57e9c96
- space-based indentations replaced with tab-based ones;
- USB_v3.h removed - now use system USB interface descriptions;
- a bit of cleanup;
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18783 a95241bf-73f2-0310-859d-f6bbb57e9c96
- space-based indentations replaced with tab-based;
- a bit of cleanup;
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18782 a95241bf-73f2-0310-859d-f6bbb57e9c96
- space indentation replaced by tab-based one to conform with Haiku coding guidelines;
- a bit of cleanup;
NB: Sorry for big amount of changes. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18781 a95241bf-73f2-0310-859d-f6bbb57e9c96
not yet working but a bit better :
GLTeapot display is now white instead of black :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18776 a95241bf-73f2-0310-859d-f6bbb57e9c96
imported missing pieces of mesa
GLView now gets a renderer correctly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18772 a95241bf-73f2-0310-859d-f6bbb57e9c96
TODO : reorganization for GLRenderer.h MesaRenderer.* and libmesa.a
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18765 a95241bf-73f2-0310-859d-f6bbb57e9c96
It includes a change to xsltproc to accept catalog paths on the command line.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18763 a95241bf-73f2-0310-859d-f6bbb57e9c96
leading "mailto:" from any insertions (like from a clipboard pasting).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18742 a95241bf-73f2-0310-859d-f6bbb57e9c96
the next step would be to rescan the partition tree with a job to recognize unrecognized partitions (asynchronously ?)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18737 a95241bf-73f2-0310-859d-f6bbb57e9c96
in several steps:
1. early pre-registration with the registrar ("I wanna launch the
app, make sure noone interferes.")
2. load the app image
3. finish pre-registration with the registrar ("I have launched
the app, here is its team ID.")
4. start app main thread
5. send "on launch" messages to the app (argv, refs, others)
If the app is already running or being launched, 1. fails with a
conclusive error code and returns the team ID and the pre-registration
token of the app. Steps 2 - 4 are skipped and only the messages are
delivered using the team ID returned by 1.
This change fixes a race condition: The failed early pre-registration
request obviously cannot return the team ID, if the other thread
launching the app has not finished step 3 yet. Thus the argv/refs
message would not get delivered and Launch() would not return the
correct team ID.
Now we wait for the pre-registration to be finished in this case, using
the former _IsAppPreRegistered() mechanism, which already provided
such a waiting feature for one request. It has been extended to
accomodate an arbitrary number of waiting requests and renamed to
_IsAppRegistered().
This fixed bug #763.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18728 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Started cleaning up the style (WIP)
* I'll slowly phase out ohci_software.h, since it is BSD legacy
* Cleanup other BSD inspired naming. I like full names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18723 a95241bf-73f2-0310-859d-f6bbb57e9c96
if nothing is read or an error happens on read, continue with next attribute, same for write.
Also, use actual written byte count for looping.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18722 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameter during construction).
* Doing so will now result in a kernel panic whenever your file system tries to
write to a block.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18719 a95241bf-73f2-0310-859d-f6bbb57e9c96
system was mounted read-only.
* bfs_rename() did not check the access privileges of the directories involved.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18718 a95241bf-73f2-0310-859d-f6bbb57e9c96
will now grab a reference to the vnode as well if successful. This way, vfs_get_vnode_cache()
now actually works how it should: it will now always grab a reference to the cache and
its underlying vnode. This removes an extra reference to the vnode (and vm_cache) that
got ignored before and prevented volumes to be unmounted (or file caches to be removed).
Thanks to Korli for pointing this out.
* file_cache_create() is now aware of that extra vnode reference and releases it; unmounting
volumes is now working again as it should.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18716 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Don't inherit Device and Interface from pipes anymore. The device has a default pipe member now.
* Since the parent of each Object is now known, we can send control messages using the default pipe of the device from all attached elements (pipes and interfaces).
* Fixed the generic {Set|Clear}Feature() and GetStatus() calls to include the endpoint address for pipe specific requests.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18710 a95241bf-73f2-0310-859d-f6bbb57e9c96
bad characters, it will be rejected, at least after bug #675 has been fixed.
* In the future, we should use the same mechanism as the TextSnifferAddon of the
registrar; it would also be nice to use additional charset information (at least
differentiating between latin-1 and UTF-8).
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18703 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Changed the usb module accordingly. Isochronous is all still left ToDo though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18700 a95241bf-73f2-0310-859d-f6bbb57e9c96
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)
If someone feels like looking over the changes, that would be much
appreciated! :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Scancodes greater 255 are now handled correctly, and will no longer crash
the input_server. This fixes bug #830.
* Use new (std:nothrow) instead of a simple new
* Now checks all allocations and appropriately handle failure
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18694 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Cleanup, separated hook and driver functions from the rest.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18690 a95241bf-73f2-0310-859d-f6bbb57e9c96
of waiting threads by ID (instead of just the queue head and tail pointers).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18688 a95241bf-73f2-0310-859d-f6bbb57e9c96
(that was part of the problem of bug #702).
* Fixed send_signal_etc() when you called it with a pid_t of zero: the signals should
go to all teams in the calling team's group, not only to the team (for -1, we do
the same for now).
* Made team_get_process_group_locked() public, and rewrote send_signal_etc() to use
it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18684 a95241bf-73f2-0310-859d-f6bbb57e9c96
some signals could go to some group when a negative value was passed in.
This actually fixes bug #702 where SoundPlay obviously does a kill_thread(-1)
at the end (which accidently killed all userspace applications, including the
input_server, app_server, ...).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18683 a95241bf-73f2-0310-859d-f6bbb57e9c96
at the comment in r5_compatibility.h.
* Intentionally broke source compatibility and removed all that outdated Nettle stuff.
* Also, I took the liberty of making m_init private and rename it to fInit - again, this
will only affect source compatibility.
* Rewrote NetEndpoint.h
* Fixed quite a few small bugs around the code that I touched, for example in NetAddress,
SetTo() never set fInit, and therefore could be wrong.
* Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18680 a95241bf-73f2-0310-859d-f6bbb57e9c96
as it takes so many shapes anyway. If you have a "noname" you might actually have one!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18674 a95241bf-73f2-0310-859d-f6bbb57e9c96
It doesn't do anything yet, but it allocates the io registers properly and
now the values that are returned when reading it make sense.
More to come...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18673 a95241bf-73f2-0310-859d-f6bbb57e9c96
so you'll have to wait for Haiku's USB to support them anyway,
as R5 nor Zeta's really grock iso.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18672 a95241bf-73f2-0310-859d-f6bbb57e9c96
Update clean rule in makefile
Rename binary from webcam.media_addon
to usb_webcam.media_addon
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18671 a95241bf-73f2-0310-859d-f6bbb57e9c96
Uses the USB Kit (userland API, needs libusb) to publish a
media node representing the webcam.
It currently only works with my Sonix webcam (3Euro cheapo
cam), but is modular enough to easily expand it, some code
is already there to detect Quickcams.
For now you should be able to build it under Zeta with the
makefile provided.
Making a Jamfile might get tricky as several source files are
created by the makefile itself to include addons and censors
in the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18670 a95241bf-73f2-0310-859d-f6bbb57e9c96
size of 3 pixels. To be verified, but seems to work better.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18657 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented the EHCIRootHub
* Reworked UHCIRootHub to be more of a utility class and moved the actual work into the UHCI BusManager
* Implemented port reset in EHCI. Ports with low and fullspeed devices are now correctly handed over to the companion host controller.
Attachs and detachs as well as port resetting / enabling works now in EHCI. Only the actual data transfers are missing thereafter ;-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18656 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added individual register operations for operational and capability registers
* Added resetting the host controller which appearantly actually works
Note that you shouldn't install the ehci module if you want uhci to work.
It disables the companion host controller drivers (uhci and ohci) because it takes port ownership and does not yet give it back for low and fullspeed devices.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18648 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed the DesktopSettings lock itself - it's not really needed at all,
and causes some trouble with a clean locking design. This may even have
fixed bug #757, at least I couldn't reproduce it anymore.
* There is now a class for read-only access that requires you to have locked
the desktop (either read or write).
* There is now another class LockedDesktopSettings that allows you to set
settings (and only that) - when you're changing the settings, you must not
have read locked the desktop (ie. hold the single window lock). The class
will obtain a write lock, but write locks can be nested.
* Moved SetWorkspacesCount() into the Desktop class.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18646 a95241bf-73f2-0310-859d-f6bbb57e9c96
because the SeekSlider knows if the knob position actually changed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18634 a95241bf-73f2-0310-859d-f6bbb57e9c96
BMimeType and Tracker in general, nothing should have changed
visually, Tracker is now using 32 bpp icons though
I hope I have not broken anything...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18632 a95241bf-73f2-0310-859d-f6bbb57e9c96
hash. This also allows them to stay valid after the group leader died when there are
other teams left in it. This closes bug #1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18622 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed warnings
* Some cleanup
* Added myself as an author to some files
No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18614 a95241bf-73f2-0310-859d-f6bbb57e9c96
private BWindow::_StealMouseMessage() which makes sure only messages for the
preferred handler are stolen, and also, that nothing gets lost that shouldn't
get lost.
Also updates the fLastMouseMoved view in case the message is actually removed
due to GetMouse().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18601 a95241bf-73f2-0310-859d-f6bbb57e9c96
At least there is a pending bug in BView::GetMouse() that causes this restriction.
This fixes bug #762 for now (will do the part in GetMouse() next).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18597 a95241bf-73f2-0310-859d-f6bbb57e9c96
* EventDispatcher now adopts the cursor position from the HWInterface upon
assignment, so that even the initial cursor reports match the on screen
visuals.
* The message was never sent because "target" in Desktop::_SendFakeMouseMoved()
was never set.
* EventDispatcher::SendFakeMouseMoved() now accepts an EventTarget and no
longer a BMessenger (fits better to the rest of the API).
* EventDispatcher::SendFakeMouseMoved() now sends out the exit transit message
to the previous target directly (doesn't wait until the next actual mouse
move), and updates the previous target as well, so that scrolling now
works in that new window.
* This only partially fixes bug #762, though, as GetMouse() can still steal
this mouse message (BTextViews do that in WindowActivated()).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18596 a95241bf-73f2-0310-859d-f6bbb57e9c96
the new workspace - this fixes bug #755. Unlike floating windows, they aren't
even redrawn :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18592 a95241bf-73f2-0310-859d-f6bbb57e9c96
style cleanup
allows to use a disk image in case ioctl calls fail
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18586 a95241bf-73f2-0310-859d-f6bbb57e9c96
ignored even if it was not visible on the previous workspace (only normal windows
can be moved this way).
This fixes bug #765.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18585 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Joined the resource files together, updated version info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18575 a95241bf-73f2-0310-859d-f6bbb57e9c96
Looks like our fdopen() does not work correctly, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18572 a95241bf-73f2-0310-859d-f6bbb57e9c96
are still plenty of them left, though. Hey Jonas, we do have a coding style guideline!
* Removed an extra copy of the message passed in to the settings constructor.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18571 a95241bf-73f2-0310-859d-f6bbb57e9c96
this issue has been solved in the code that needs them (which is the same as
the PPC version also does at this time).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18570 a95241bf-73f2-0310-859d-f6bbb57e9c96
Transformable, should have been part of the last commit...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18556 a95241bf-73f2-0310-859d-f6bbb57e9c96
clutter, straight from the sources of release 1.95.8, configured
to obtain expat_config.h, seems to work fine
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18552 a95241bf-73f2-0310-859d-f6bbb57e9c96
This change fixes that on non-haiku targets. Please note that the change is only needed on R5 and bone probably, but it won't do any harm on other build platforms either.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18551 a95241bf-73f2-0310-859d-f6bbb57e9c96
alarm, or 0 if there isn't any.
* setitimer() now also sets the previous timer values correctly, so that
alarm() and ualarm() now return the correct values as well - this fixes
the test fork_9-1 failing at alarm().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18545 a95241bf-73f2-0310-859d-f6bbb57e9c96
a waitpid() can no longer succeed; this fixes the occasional fork 3-1 test failures.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18544 a95241bf-73f2-0310-859d-f6bbb57e9c96
it waited for a specific child), as B_RELEASE_ALL opened up a race condition between
looking for an existing death entry, and waiting for the dead children semaphore.
Now we're counting all waiting threads for teams and groups separately.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18543 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Rewrote both headers on the way.
* The usb module now exports both, the v2 and v3 module_info.
* Changed the internals of the USB Stack to give out usb_ids instead of opaque handles to internal classes.
* Cleaned up some more of the Stack by moving members into other classes and removing unused stuff.
* Updated the usb_raw driver from v2 to v3 API.
Since both usb_hid (which still uses the v2 API) and usb_raw (which now uses the v3 API) work, I'd call it a success ;-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18539 a95241bf-73f2-0310-859d-f6bbb57e9c96
wait_for_child() hanging less probable - there is a general problem with
this code, though, as we need to have a dedicated free counter for the
semaphore to remove all race conditions.
* Also, test fork_3-1 still sometimes fails because the thread is still
available to the public for a short time, even after its death entry
has been collected.
* Added a TODO in the code for these issues.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18529 a95241bf-73f2-0310-859d-f6bbb57e9c96
wanted to wait for a specific child; it always assumed you had specified WNOHANG.
This fixes the bug the fork_3-1 and fork_4-1 test applications reported. 3-1 still
sometimes fails, but that's a different problem (to be solved later).
* Also, it could return B_BAD_THREAD_ID instead of the expected ECHILD (for waitpid()).
* There was a race condition between testing for a thread, and checking its death
entry.
* wait_for_child() can now be interrupted in case it has to wait.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18528 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed the build of most of targets using these rules. Though the build can be still broken, feel free to fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18521 a95241bf-73f2-0310-859d-f6bbb57e9c96