* Renaming things in Tracker list mode no longer magically grows the text view.
* ScrollToOffset() is not supposed to depend on the existence of any scroll
bars, in R5 text views simply scroll to where they need to. This fixes
renaming things in Tracker when hitting the window bounds (text widget stops
growing and starts to autoscroll) and also the Text tool in WonderBrush.
* _ScrollToOffset() is therefor no longer needed.
* The insets of the text rect are not so interesting as the original width.
In auto resizing mode, the original width is important when there is no
container view. In this setup, the text rect auto resizing is mainly needed
for auto scrolling, but it should never shrink below the original size.
* Further improved auto scrolling for right aligned and center aligned text
views, it works like R5 now. Also take the line height into account when
checking for the bounds bottom. Removed extra spacing for vertical
scrolling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24130 a95241bf-73f2-0310-859d-f6bbb57e9c96
hda_stream::buffer_ready_sem was deleted but not recreated again. Moved its
maintenance to hda_stream_{start|stop}().
* Replaced snooze(10) with spin(10) because that's probably what's wanted here.
* Added hda_stream::type field.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24122 a95241bf-73f2-0310-859d-f6bbb57e9c96
unhandled. Otherwise it brings more trouble than it solves as it also disables
the interrupt of other devices (most often USB or network).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24120 a95241bf-73f2-0310-859d-f6bbb57e9c96
* hda_widget_get_stream_support() did reference an out-of-bounds response for
the stream support parameter.
* Bit 18 in the PCM support parameter is 20bit sample support, not 18bit support.
* Enabled reporting B_FMT_FLOAT capability (not tested at all yet).
* Fixed B_FMT_FLOAT size (float is only 4 bytes, not 8).
* No longer clobbers the request_* parameters in B_MULTI_GET_BUFFERS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24117 a95241bf-73f2-0310-859d-f6bbb57e9c96
NodeMonitor.h.
* The latter will be set in "statFields" for interim updates when you have
asked to get them via the former.
* BFS now uses the B_STAT_INTERIM_UPDATE flag for sending updates to actively
written files.
* This makes us more compatible with BeOS again; if you only asked for
B_WATCH_STAT, you will now only receive a notification if the file in
question has been closed.
* Tracker now uses B_WATCH_INTERIM_STAT to always get all updates (ie.
downloading a file will update its size and modification time in Tracker
periodically during the download).
* Wether "needsTrimming" was true or not has no influence on wether or not
the size index needs to be updated in BFS - only the actual file size is
stored there, not the on-disk size.
* Added a TODO comment in Inode::WriteAt() that it would actually need to
update the size index when changing the file size, not when the file has
been closed (but that's probably too slow).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24114 a95241bf-73f2-0310-859d-f6bbb57e9c96
* made keys move down when pressed
* reduced font size of locks light's text to fit in
This fixes#251, style cleanup will follow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24110 a95241bf-73f2-0310-859d-f6bbb57e9c96
* copyright headers for the files of the libraries linprog and alm
* new class Summand for representing summands in a linear constraint
* merged class SoftConstraint into class Constraint; Constraint now
supports both soft and hard constraint functionality
* new AddConstraint methods in class LinearSpec for directly setting
constraints with 1 to 4 summands
* code cleanups by using aforementioned AddConstraint methods
* a new very simple test application for alm
* some style corrections
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24108 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed building Haiku images on FreeBSD, which was broken since the
introduction of the device support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24107 a95241bf-73f2-0310-859d-f6bbb57e9c96
headers/os version and removed the now duplicate icon type constant
definitions from several sources.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24106 a95241bf-73f2-0310-859d-f6bbb57e9c96
be empty, thus the pointer into that string should point to empty data...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24104 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Placed _BTextInput_ into BPrivate namespace.
* Made _BTextInput_::AlignTextRect() smarter, it centers the line vertically,
for the case that the BTextControl has a larger label font. Improved insets
for asthetics.
* Used _BTextInput_::AlignTextRect() consistently in BTextControl, no more
custom calls to SetTextRect(). Account for minimum vertical inset of 2
pixels in GetPreferredSize().
* Consistendly select all text when gaining focus in _BTextInput_.
* Override MouseDown() in case the control did not have focus before, or else
BTextView::MouseDown() will deselct the text again and place the cursor.
(in line with BeOS behavior)
* Removed unused fBool member from _BTextInput_ and other cleanup.
BTextView:
* Reimplemented BTextView::_AutoResize() so that it works well with
BTextControl and autoscrolling when the alignment is not B_ALIGN_LEFT.
I needed two new members for this, fLeftInset and fRightInset which are
the original insets from the fTextRects. It might currently be broken
for renaming things in Tracker, I will have to check. _AutoResize() no
longer messes up the fTextRect insets.
* Fixed stray carrets sometimes being left over, mostly when auto scrolling,
but I observed them in other cases as well.
* Prevent negative scrolling offsets when autoscrolling. Fixes weird scrolling
offsets when navigating to the left.
* Reset scrolling to B_ORIGIN when SetText() is called. Fixes for example
starting to type in the middle of the control in Vision when entering new
text and autoscrolling was triggered before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24101 a95241bf-73f2-0310-859d-f6bbb57e9c96
with other controls. (BTextControl patch with the same change is upcomming, but
it includes many other changes I didn't want to mix in.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24100 a95241bf-73f2-0310-859d-f6bbb57e9c96
used the BRect version of HideSoftwareCursor() but then called
ShowSoftwareCursor() unconditionally.
* Renamed Hide/ShowSoftwareCursor() to Hide/ShowFloatingOverlays().
* Removed no longer needed FontLocker.
* Implemented AutoFloatingOverlaysHider and got rid of a lot of
code duplication this way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24095 a95241bf-73f2-0310-859d-f6bbb57e9c96
* BListItems now store the top offset of the frame within the parent BListView.
* This allows binary searching the clicked item.
* ItemFrame() is now a cheap call.
* Fixed several bugs in the sorting code of BOutlineListView which lead to
crashes of client applications.
* Implemented previously unimplemented functions in BOutlineListView.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24092 a95241bf-73f2-0310-859d-f6bbb57e9c96
workspaces view can now be any view in the hierarchy.
* Added private view flag kWorkspacesViewFlag that identifies such a
view - note though, that you must not remove a view before closing or
hiding its window for now (and that you still need to set the
kWorkspacesWindowFlag, too).
* Fixed Workspaces check for valid screen coordinates; after a crash, it
managed to open its window offscreen for me.
* Added a ViewLayer method FindView() that finds a view with the
specified flags set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24090 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Add check whether directory to store settings exists. If not, create it.
* Use global constant (like in DefaultManager.cpp) for path/file names.
* Cleaned up a little bit and made debug output only appear in case
debugging is turned on (meaning printf->TRACE).
-> Fixes#1531.
(I added a few more error checks to the code, maybe there should be even
more...)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24089 a95241bf-73f2-0310-859d-f6bbb57e9c96
was not used in case of 32 bit VESA modes. Gives a huge performance boost
for 32 bit VESA mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24084 a95241bf-73f2-0310-859d-f6bbb57e9c96
need to make sure that we never get that far with a negative timeout or
we'll wait forever.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24083 a95241bf-73f2-0310-859d-f6bbb57e9c96
timeout, not just -1. Paranoia only, since that should happen anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24082 a95241bf-73f2-0310-859d-f6bbb57e9c96
correctly in some cases inside HashEscapements(). Also, when looking for
a value in the hash, we checked the same position twice in some
cases (did not cause any problem, was just a bit slower).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24079 a95241bf-73f2-0310-859d-f6bbb57e9c96
Looks like the class has some problems (hangs while calculating width of
lines inside termcap, cf bug #1690
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24070 a95241bf-73f2-0310-859d-f6bbb57e9c96
out that buffer exchange would return more often than it actually exchanged
a buffer in hmulti_audio.
* Implemented setters for commands "format", and "channel".
* "play" now accepts a play mask to mute certain channels.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24066 a95241bf-73f2-0310-859d-f6bbb57e9c96
interrupted early, i.e. when signals were already pending when we
started waiting. Fixes#1832.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24063 a95241bf-73f2-0310-859d-f6bbb57e9c96
* A bit of refactoring to let the driver more easily accept more devices.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24062 a95241bf-73f2-0310-859d-f6bbb57e9c96
AddSourceDirectoryToHaikuImage work there (it currently only works on Linux).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24057 a95241bf-73f2-0310-859d-f6bbb57e9c96
* made laplinkll module buildable, untested. Still requires a driver on the other box I need to port from zeta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24056 a95241bf-73f2-0310-859d-f6bbb57e9c96
* laplink low level debug output I wrote for zeta, needs some work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24055 a95241bf-73f2-0310-859d-f6bbb57e9c96
lchown replacement was using rpl_chown too (could not understand how this works)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24053 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed ResEdit build.
* Small cleanups and simplifications.
* Removed reference to CapitalB resource in ReadyToRun().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24049 a95241bf-73f2-0310-859d-f6bbb57e9c96
utilizes the THREAD_FLAG_DONT_RESTART_SYSCALL (but only in SIGCONT
for now).
* resume_thread() is now using that flag to be compatible with BeOS.
* This fixes the Terminal hanging on close.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24045 a95241bf-73f2-0310-859d-f6bbb57e9c96
inside menus: first sub, then current, then super. It's more logical,
and handles every case (hopefully I've tested every possible
combination) of overlapping menus correctly.
Fixes bug #1821.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24044 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added team::flags. Currently only used for setting a flag when a team
has exec()ed.
* Some improvements of _user_setpgid():
- It failed incorrectly when the target process was a process group
leader. According to the standard it shall fail when the process is
a session leader. Moving a process group leader to another process
group is fine, even if that leaves the group leaderless.
- Fixed race conditions. We need to recheck the error conditions when
we hold the team spinlock. Otherwise the situation could change
while we allocated the new process group. This was one of the
reasons for bug #1799 -- after the shell fork()'s both parent and
child invoke setpgid() for the child.
- Fixed behavior for pid == pgid. It doesn't necessarily mean that a
new group has to be created.
- Fixed update of target process group orphaned state.
- Squashed TODO: setpgid() on a child is supposed to fail after the
child has exec()ed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24041 a95241bf-73f2-0310-859d-f6bbb57e9c96
success.
* setpgrp() is not supposed to fail (could happen, if the calling
process was a session leader).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24040 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Right now, only already known loaded drivers will be monitored for changes;
their devices aren't republished, though, since that would cause a deadlock
in the node notification mechanism (listeners are called synchronously);
need to offload that the event handling to another thread.
* On changes of (known) driver directories, the device manager will now print
some info to the syslog.
* Fixed republish_driver() I broke recently (would skip every other node), and
moved it to the driver functions section of the devfs.cpp.
* Implemented currently unused unpublish_driver() function that would have to
be called before reloading a driver.
* If a driver is in use when it's updated, we mark it, but we don't do anything
with that info when we could.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24036 a95241bf-73f2-0310-859d-f6bbb57e9c96
when mounting/unmounting a partition).
* Set the enabled state of the Unmount menu item when a partition is not
mounted (was using previous state from last partition).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24034 a95241bf-73f2-0310-859d-f6bbb57e9c96
want to mix too much cleanups into real changes.
* Got rid of the weird lines between rows.
* Tweaked colors (selections are usually dark everywhere else in Haiku).
* Implemented slightly tinting alternating rows.
* Removed the code duplication to figure out the appropriate background
row color, fixed some inconsistencies between Draw() and RedrawColumn()
in this regard.
TODO: Default colors should be computed based on current panel color though.
TODO: Figure out why the outline view does not scroll (at least not visibly)
when the vertical scroll bar is used.
TODO: Remove remaining redraw bugs. I observe a column of pixels not being
updated in some cases when resizing columns.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24033 a95241bf-73f2-0310-859d-f6bbb57e9c96
enabling/disabling of the revert button too.
Initialize Settings::fAuto to a default value on construction.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24032 a95241bf-73f2-0310-859d-f6bbb57e9c96
alpha mode. Thanks to Ralf Schuelke for pointing this out.
* Also check the bitmap color space and only use alpha drawing for bitmaps
with valid alpha channel.
* Don't just reset the parent to B_OP_OVER, but use the previous mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24031 a95241bf-73f2-0310-859d-f6bbb57e9c96
should prevent the app_server to send any update messages to the client. It
should just keep adding to the pending update sessions region until the client
enabled updates again. If anything is already in the pending session, an
update request will be send immediately.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24029 a95241bf-73f2-0310-859d-f6bbb57e9c96
it is already implemented they way I thought it could be done - nice! Just
some simplifications.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24027 a95241bf-73f2-0310-859d-f6bbb57e9c96
fixes indicating the focus of the resized column if it isn't the first one.
* Code cleanups by myself in the archiving implementation. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24026 a95241bf-73f2-0310-859d-f6bbb57e9c96
entire screen when exiting the kernel debugger. It sets up a thread that sends
a message to the (currently hardcoded) desktop message looper. The desktop then
does mark the whole screen dirty which causes a full redraw.
Since interrupts need to be enabled I went with an asynchronous thread and
releasing a request sem in the add-ons' exit hook.
Added the add-on to the image as it shouldn't hurt to have it for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24025 a95241bf-73f2-0310-859d-f6bbb57e9c96
* our flock::l_len was inclusive, while it's exclusive (the last byte locked
is (l_start - 1 + l_len) not just (l_start + l_len).
* F_UNLCK removes all locks of the calling process that are within the specified
region - existing locks might also cut or divided.
* Apparently, a single team can lock the same region as often as it wants.
* advisory_locking is now using a DoublyLinkedList instead of its C counterpart.
* advisory_lock now has start + end fields, instead of offset + len, it's
handier this way.
* This fixes bug #1791.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24020 a95241bf-73f2-0310-859d-f6bbb57e9c96
stuff.
* It's a while since I wrote this code, and I don't remember why I don't
always "set the configuration". Appearantly on BeOS and ZETA, the
active configuration was not yet set on the device when the driver examined
it, but on Haiku it is. The special control command which puts a tablet
into tablet mode is then not executed. I simply commented out this check
(always set the configuration) and now my Wacom Intuos 2 is working fine
in Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24019 a95241bf-73f2-0310-859d-f6bbb57e9c96
from the input_server implementation to create a log file.
* DeviceReader already provided the data byte count, since this is a USB
only Wacom driver, we can simply use the max_packet_size from the endpoint
descriptor. Changed TabledDevice accordingly to use the already existing
DeviceReader::MaxPacketSize().
* Reworked DeviceReader::ReadData(). Renamed variables for clarity and
removed the restriction to read exactly the requested ammount of bytes,
reading more than the "header" (which contains vendor id, product id
and max packet size) is already considered a successful read.
* Refactored TabledDevice::poll_usb_device().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24018 a95241bf-73f2-0310-859d-f6bbb57e9c96
it has several issues, and a F_UNLCK semantic different from other OSs,
causing bug #1791.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24017 a95241bf-73f2-0310-859d-f6bbb57e9c96
name of the drivers.
* Allow driver::publish_devices() to return NULL to hint that it has no devices
to publish anymore (ie. existing devices will be unpublished in this case).
* republish_driver() now also calls load_driver() in case the driver is not
loaded.
* publish_device() and unpublish_node() now maintain the new
driver_entry::devices_published field, so we always know how many devices
a driver has now.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24016 a95241bf-73f2-0310-859d-f6bbb57e9c96
initializers before sLogFile was created in the InputServer constructor.
Even moving the log file creation to a global initializer didn't help,
since the order is not guaranteed. So I changed the code to create the
log file on the fly in the PRINT method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24014 a95241bf-73f2-0310-859d-f6bbb57e9c96