- Always grab the address value from the actual register value column,
rather than the one that's in fact under the mouse. Fixes the "Inspect"
item sending you to inspect address 0 if you happened to right click over
the register name rather than the value.
- The offset calculation for mapping the current point wasn't taking
into account the number of bytes per hex block, causing it to be
proportionally further off if one switched to 16/32/64-bit hex mode.
Gets mouse selection working properly in said modes.
This helps when debugging, since when a driver/module causes a crash
while registering with the device manager, you can actually look at
the device manager state ;-)
The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.
For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.
Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))
The "blobs" in a U-Boot uimage are aligned at 4 bytes, which we
did not take into account. Found this when adding a 3rd blob
containing the Flattened Device Tree for ARM.
* Seems like there was no easy way to simply invalidate
a given BRow. Introduced BColumnListView::InvalidateRow().
* BRow::SetField() tried to invalidate the row, but invalidated
the listview instead of the BOutlineView responsible for
drawing the list contents. Use the new InvaalidateRow().
- B_PRIx8 unfortunately doesn't necessarily strictly stay within the bounds
of an 8-bit hex constant, so force the size passed to snprintf to make it
that way.
- The Inspector's memory view now supports selecting chunks of the hex display in
the manner one would in a TextView. The selection can also be copied to the clipboard,
or if it matches the size of a target address, can be used as input for an address to
inspect directly.
Still needs some fine tuning, but basically works.
- If it was necessary to help the debugger locate a particular source
file due to it not being found on disk at the location specified in
the debug information, the associated user-supplied path mappings
are now saved and restored in the team settings. The file manager still
needs a bit of extra work to apply these as files are added though.
The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.
Instead of storing PackageInfo objects directly in the
PackageLists, store PackageInfoRefs instead. This makes a
lot of operations much cheaper, and it also allows making
changes to a PackageInfo (which now exists only once)
and have those changes reflect everywhere. In particular,
it will be easier to populate some information of the
PackageInfo lazily, and to listen for changes on a
PackageInfo object.
This as the intel partition addon just does a very weak test, and the
NTFS test is much safer. This prevents NTFS filesystems that have a
valid boot sector signature but no partition table, from being
picked up by the intel partition table add-on instead of the ntfs
add-on.
Patch provided by markh, thanks!
...instead of B_DEV_NO_MEDIA. The latter seems to imply we stop testing
the unit is ready in usb_disk_device_added().
Based on a patch provided by markh in #9589.
This is a workaround for hiding U-Boot that is stored in the first 2
128k blocks, so we can put a BFS image into NOR to boot from (since
we do not have support for SD/MMC yet in Haiku).
When manually putting a BFS filesystem at block 3 we actually get
right up to the point where BootScript is attempted to be executed!
Specifying -Werror in the Jamfiles directly prevents the build
system from disabling error-on-warning for some arch specific
warnings (or even globally), breaking the ARM build.
The "src/apps" directory is already setup to compile with -Werror
by the build system anyway, so remove the explicit setting here.
Turns out dd on MacOS does not like '1M' as size descriptor, but
wants '1m'. To prevent us breaking Linux builds (as it does not
accept 1m), just use the actual number of bytes explicitely instead.
- Since we actually draw a selection now, change the target address
highlight to clearly distinguish it. Rather than inverting it, it's
now drawn with a normal background and red text in the hex display.
The text mode subcomponent still shows it as an invert though, since
the latter doesn't currently indicate the selection.
- Always grab the address value from the actual register value column,
rather than the one that's in fact under the mouse. Fixes the "Inspect"
item sending you to inspect address 0 if you happened to right click over
the register name rather than the value.
- The offset calculation for mapping the current point wasn't taking
into account the number of bytes per hex block, causing it to be
proportionally further off if one switched to 16/32/64-bit hex mode.
Gets mouse selection working properly in said modes.
This helps when debugging, since when a driver/module causes a crash
while registering with the device manager, you can actually look at
the device manager state ;-)
The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.
For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.
Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))
The "blobs" in a U-Boot uimage are aligned at 4 bytes, which we
did not take into account. Found this when adding a 3rd blob
containing the Flattened Device Tree for ARM.
* Seems like there was no easy way to simply invalidate
a given BRow. Introduced BColumnListView::InvalidateRow().
* BRow::SetField() tried to invalidate the row, but invalidated
the listview instead of the BOutlineView responsible for
drawing the list contents. Use the new InvaalidateRow().
- B_PRIx8 unfortunately doesn't necessarily strictly stay within the bounds
of an 8-bit hex constant, so force the size passed to snprintf to make it
that way.
- The Inspector's memory view now supports selecting chunks of the hex display in
the manner one would in a TextView. The selection can also be copied to the clipboard,
or if it matches the size of a target address, can be used as input for an address to
inspect directly.
Still needs some fine tuning, but basically works.
- If it was necessary to help the debugger locate a particular source
file due to it not being found on disk at the location specified in
the debug information, the associated user-supplied path mappings
are now saved and restored in the team settings. The file manager still
needs a bit of extra work to apply these as files are added though.
The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.
Instead of storing PackageInfo objects directly in the
PackageLists, store PackageInfoRefs instead. This makes a
lot of operations much cheaper, and it also allows making
changes to a PackageInfo (which now exists only once)
and have those changes reflect everywhere. In particular,
it will be easier to populate some information of the
PackageInfo lazily, and to listen for changes on a
PackageInfo object.
This as the intel partition addon just does a very weak test, and the
NTFS test is much safer. This prevents NTFS filesystems that have a
valid boot sector signature but no partition table, from being
picked up by the intel partition table add-on instead of the ntfs
add-on.
Patch provided by markh, thanks!
...instead of B_DEV_NO_MEDIA. The latter seems to imply we stop testing
the unit is ready in usb_disk_device_added().
Based on a patch provided by markh in #9589.
This is a workaround for hiding U-Boot that is stored in the first 2
128k blocks, so we can put a BFS image into NOR to boot from (since
we do not have support for SD/MMC yet in Haiku).
When manually putting a BFS filesystem at block 3 we actually get
right up to the point where BootScript is attempted to be executed!
Specifying -Werror in the Jamfiles directly prevents the build
system from disabling error-on-warning for some arch specific
warnings (or even globally), breaking the ARM build.
The "src/apps" directory is already setup to compile with -Werror
by the build system anyway, so remove the explicit setting here.
Turns out dd on MacOS does not like '1M' as size descriptor, but
wants '1m'. To prevent us breaking Linux builds (as it does not
accept 1m), just use the actual number of bytes explicitely instead.
* It simplifies putting regular layout-aware views or layout items into
a BScrollView.
* Not quite complete yet: Height-for-width support is missing, but that
also requires fixing BScrollView in this respect. Scroll bar auto-hide
support would be nice as well.
For some reason calling PopulateScreenSaver() list in AllAttached()
scrolls the selection off-by-one, so, call PopulateScreenSaverList()
in AttachedToWindow() and then call ScrollToSelection() again in
AllAttached() which seems to fix the problem.
...rather than font spacing which only scales linearly in the horizontal
direction. This sets the min window height nicely at 11pt font while
continuing to work at 12pt, 8pt, and 18pt.
..instead of calling _OpenSaver() directly.
At least one screensaver, Message, depended on the Bounds() of the
preview to be set when run, which wasn't established when you first
started the app causing the app to quit while trying to draw.
Also call PopulateSaverList() in AllAttached() so that ScrollToSelection()
works without having to be called again.
Also, fix pointer style in ScreenSaverWindow::MessageReceived()
Split out the list emptying into an EmptyScreenSaverList() method and use it in
various places where it should happen.
Call PopulateScreenSaverList() in ModulesView::AttachedToWindow() instead
of in the constructor because some of the methods depend on the view being
attached.
Don't try to select Blackness saver by name, instead if no other selection
is located select it as the default. Also, a tiny optimization, once we've found a
selection there's no reason to continue to keep looking for another one.
For some reason this file was encoded as a MacRoman or some sort
of high ASCII non utf-8 encoding that made my editor sad.
Also, update the copyright and style while I'm at it.
Fixing the autoconf test: attempt to create file in place of already
existing symlink. On error exit put_vnode was called explicitly before
returning error. The second, implicit call to put_vnode was issued on
destroying the VNodePutter instance that references the same vnode. At
this time the vnode has references count equal to 0 so corresponding
panic was executed. Great thanks to Ingo for pointing it out!
Fixes#9140.
... for package changes performed manually by the user (i.e.
adding/removing files in a packages directory). Currently only done for
the system root. Alternative roots should still work as before, so this
shouldn't affect haikuporter (not tested yet).
Needs some more work (e.g. the GUI part).
* Rename TransactionHandler -> InstallationInterface and
DaemonClientTransactionHandler -> ClientInstallationInterface.
* Add InstallationInterface::InitInstalledRepository(). Use in
_AddInstalledRepository() to get the repository packages instead of
using the package roster. The ClientInstallationInterface
implementation does it that way.
* parameters web compilation improved - harvest the feature units
assigned to non-streaming output terminals in the same way as ones
assigned to streaming output terminals.
Fixes#9950
* The bullet paragraphs were already working, now we have
bold and italic plus the heading style. The links in the
original changelog are not yet supported.
* Also include the terminating \0 in the loop
over the characters, in order to consume the
last paragraph correctly when it's not finished
by a line break.
* Follows MediaWiki or TracWiki style.
* Supports only level 2 headings, bold, italic and top-level
bullet paragraphs.
* Line break handling would need to be changed.
* Outputs a TextDocument.
* Bail early if the TextSpan length is 0.
* When the span starts with a space, the work
around for the app_server bug, which I should fix,
needs to offset by the other delta.
* Added convenience methods to derive the bold and italic
font face from the currently set font. May not yield
results depending on wether a specific face is available
for the font.
Ü * Changed test accordinly.
Also:
* Fixed off-by-one bug when extracting wrapped TextSpans until the
line's end text offset.
* ParagraphStyle::FirstLineInset() is now additional to LineInset().
* Potential Bullet::Spacing() is added to all lines as inset.
* Use TextDocumentLayout in TextDocumentView.
* Extend test case demonstrating paragraphs with
different alignments, something unsupported in
BTextView.
* TextDocumentView still only shows the first paragraph
of a TextDocument, but this time using the new
ParagraphLayout. A class for layouting all paragraphs
of a TextDocument is up next.
* A simple test app shows that TextSpans with different
CharacterStyles already work in one Paragraph. The test
is nowhere extensive and does not test for bugs in
corner cases.
* The biggest problem was that adding the wrapped
sub-TextSpan to the LineInfos was missing. Other
problems included missing handling of ascent and
descent per CharacterStyle.
I noticed while testing the nightly on vmware which, unlike vbox, includes
a video driver with DPMS support that this checkbox wasn't working.
This should fix it.
... just in case a long translation needs an extra line to fit
(in English 3 is enough) and because we've got enough room next
to the screen image to fit another line of text anyway.
* Since additional handlers put themself in the front the
handler list, asking the tablet handler last actually puts
its handler in the first position, as before my changes.
* The HID driver publishes devices for all handlers that claim
to know how to work with a device. I see how that is good for
a combo device like keyboard with built-in touch pad or a single
USB receiver for a keyboard and mouse. But I wonder about devices
that publish multiple alternative HID configurations. I think
my Wacom Tablet has a configuration for a regular mouse and the
configuration for the actual tablet. And the driver should publish
a device for one, but not the other. I also don't see in the code
how a specific configuration is made the active one before the
protocol is used.
Show the "Read-only" status for documents that are living on read-only
volumes and do not show unlock menu for such files.
* The enhancement pointed out by Sergei Reznikov (Diver). Thanks!
* The previous approach of combining tablet and mouse support
in MouseProtocolHandler was unintuitive and had the potential
problem that if a device has multiple HID descriptors, one
simulating a simple mouse, that one may be found first and
there is no mechanism of choosing the best handler for a device.
Now we can look for tablets before looking for mice.
* Implement pressure, eraser and tilt support. Untested. This
mostly comes from the patch in #7354, but eraser support should
work more like intended by the Be API.
* It appears that my Wacom Intuos 2 cannot be accessed via the
HID framework, except as regular mouse. So I couldn't actually
test these changes. I believe what worked before, i.e. QEMU
absolute mouse position support, should work as good as before.
Please shout if not!
* If more recent Wacom tablets /could/ work with these changes,
they will not, because the HID driver still explicitely ignores
Wacom devices and the dedicated Wacom driver will not pick up
newer devices, with its hard-coded and un-generic device support.