* This makes the keymap behave as in every other operating system.
* I don't really understand the original purpose of this change. Please
enlighten me (see #4464).
* Before, you had to have both, the text view layout item, and the label
layout item or else nothing would ever be visible.
* Now you can only create the text view item, and it will still work.
* Also, no matter the order you added the layout items, they would always
put the label on the left, and the control to the right.
* You can place the label and text view layout items anywhere now, although
you should keep in mind that the view spans over their frame unions; IOW
they should always adjacent to each other, but not necessarily horizontally
and left to right.
* No longer uses a fixed label spacing, but utilizes
BControlLook::DefaultLabelSpacing() instead.
* However, the spacing is always added to the right of the label, no matter
how you place it in the layout. Maybe one wants to add a SetLabelTextViewGap()
like method.
* The only implementation that would accept more than 2 TB was the one in
scsi_disk. But even that one was limited to 63 TB.
* Now there is a new utility function devfs_compute_geometry_size() which
does it correctly for sizes up to 2^64 which should be good enough for
quite some time :-)
* This fixes bug #8992.
* HaikuMailFormatFilter is using the new extract_from_header() method
to retrieve its fields, but that one is often rather slow in comparison.
* Added a test parse_fields() method that outperforms it considerably.
* The controller structure is static, so if you closed the device,
and the driver failed to initialize correctly (ie. finds no codec)
on the second try, it would have crashed accessing an already freed
codec.
* Not sure why it fails to detect any codecs on second open, yet,
though.
* When a block was only used in a sub-transaction, it was thrown away,
but the transaction::num_blocks field was not decremented.
* This caused transactions never considered finished which eventually
led to bug #8942. This does not explain the disk corruption occurring
in #8969, though.
* When we do not have a predefined model string, we now try to parse
the reported model string into something that is at least usable,
and should look comparable to what we have now.
* For models where the parsed type string is acceptable, we could remove
the predefined ones.
* The ASSERT() I introduced in r44585 was incorrect: when the sub transaction
used block_cache_get_empty() to get the block, there is no original_data for
a reason.
* Added a test case that reproduces this situation.
* The block must be moved to the unused list in this situation, though, or else
it might contain invalid data. Since the block can only be allocated in the
current transaction, this should not be a problem, though, AFAICT.
* In cache_abort_sub_transaction(), the original_data can already be freed
when the block is being removed from the transaction.
* block_cache::_GetUnusedBlock() no longer frees original/parent data - it
now requires them to be freed already (it makes no sense to have them still
around at this point).
* AFAICT the previous version did not have any negative consequences besides
freeing the original data late.
* cache_abort_sub_transaction() was setting the transaction_next pointer to
NULL in order to remove a block from a transaction -- however, it forgot to
actually remove it from the transaction's block list.
* Minor restructuring.
* This fixes a regression I introduced in hrev43648; the mouse cursor
was only being hidden in case the controls were visible (ie. only
after an extra mouse move in full screen).
* cache_abort_transaction() left the block dirty which was causing bug
#8123 as well.
* cache_abort_sub_transaction() did, in addition to not clearing the dirty
flag, not reset the block's transaction member either if the block was
not part of the parent transaction.
* SizeSlider::MaxPartitionSize() also now returns the size instead of the end
offset.
* Renamed CreateParamsPanel::_UpdateTextControl() to _UpdateSizeTextControl().
* Removed code duplication, and instead just call _UpdateSizeTextControl()
twice.
* Minor other cleanup.
* When you press on a value, that value will be shown with a
highlighted background across the board until another value is set.
* Changed the colors to those from the Haiku logo rather than the BeOS
logo. This makes it a bit more colorful which one might need to get
used to -- comments welcome.
* Following the previous discussion on the mailing list and Stippi's final mail.
* I tried to get used to it in the last couple of weeks, but I think it just
looks out of place, and not good either.
* In this case, the value is drawn a bit less intense than incomplete values.
* Make the keyboard focus background color depend on the actual background
color.
* No longer allow to drag remove random hint values after removing a value
from a field.
* Called mvattr, move is not yet implemented which is why it's not part of
the image yet.
* Defaults to rename, moving attributes needs an extra option.
* Suggestions welcome :-)
* The areas allocated for BBitmaps were never deleted, even though the
app_server deleted its part when the memory got freed.
* This resulted in a constant memory increase if the application in question
would operate on many changing large bitmaps, like photos.
* Since the bitmaps are reference counted, we don't actually know when to delete
the areas, so that the app_server now notifies the client whenever that is
possible.
* This might fix#6824.
* Since bitmaps are reference counted, it might not be easy (and already not
the case) that holding the ServerApp lock can be enforced.
* To be on the safe side, allocations and freeing memory now performs its own
locking.
* Brought the documentation to the status quo.
* This removes the fVisibleToolTip member from BView, and fixes bug #5669;
BToolTipManager::ShowTip() now gets the owner of the tool tip as an extra
parameter.
* Removed the work-around to hide that bug.
* Improved ToolTipTest application to include more test cases like a view that
periodically update its tool tip via SetToolTip(const char*), and one that
sets a new tool tip every second.
* Furthermore, added a test that shows that inner views inherit the tool tip
of their parents.
* Fixed another bug in BToolTipManager::ShowTip() that would release an
extra reference to the tool tip currently shown.
* The tree does keep a reference to the inode as well as long as it is part
of a transaction.
* Even if it wouldn't have done it (and would not have triggered the panic),
Haiku would likely have crashed, as the inode (and therefore its tree) was
already deleted at the time when the transaction discarded its listeners.
* Calling FindBlockRun() would only work for the direct range anyway, as it
would need to call into the block cache for anything else.
* bfs_block_runs now accepts a few more arguments that make finding an offset
much easier.
* Added a new CachedNode::SetTo() variant that actually returns an error code.
* Only bail out if there was an actual I/O error, not already if the offset
was invalid.
* This should help fixing some corruption corner cases.
* The node might not be a normal tree node, so we must not check it before
writing.
* Also, it's always a good idea to check if the function you called didn't
succeed.
* This fixes a crashing bug when running checkfs in some rare circumstances.
* This would cause "transaction too large" messages, and repairing the index
would actually be thrown away.
* We now properly finish/restart transactions instead which is actually
working.
* Removed the misleading Split() method altogether, as it's not even used
anywhere (not very surprising given that it doesn't do what its name
suggests).
* This should not have harmed normal operation (as an Inode is only destroyed
when it is no longer being used), but the fs_shell could run out of
semaphores easily.
* There are now two passes in case a corrupted index tree has been found.
* The second pass will clear the affected indices at first, and will then walk
over all inodes again to fill them.
* As a side effect, this will also defragment the indices; ie. the same
mechanism could be used for this some day.
* The sources are unchanged, and most of it doesn't follow Haiku's coding
style -- stuff that I updated over the years might also have seen a coding
style update.
* This was also the basis on which Haiku's BFS has been written.
* In the long run, the stuff in 'lib' that is already part of BFS should
be removed, and used directly from BFS itself.
* I haven't yet added any other of the tools to the image. Not sure if they
are ready for inclusion yet; 'recover' could also be renamed to reflect that
it is BFS specific.
* Renamed the sorted_array to duplicate_array (which was only a typedef
before), and moved it into the BPlusTree.cpp file, as its specific to
that one.
* Utilities.cpp is no longer needed.
* Introduced endian safe getters/setters so that little endian BFS volumes
should now work fine on a big endian architecture.
* Walks the complete B+tree and checks all nodes for validity
(duplicate/fragment as well), ie. if no key is larger than those of its
parent, and that the left/right links are valid.
* This does not yet support repairing of broken trees, though.