* Fix the condition so that big images are fitted to the window on first
time only if the option is set.
* Small images are never stretched to the window size, as this isn't
very useful.
The interaction of this global setting with the zoom buttons is a bit
confusing. Should they be merged?
A value node might not have a location due to e.g. issues resolving its parent.
Guard against this case and simply return early as we won't be able to take any
meaningful actions on such a node. Fixes the second crash listed in #10781.
Default is shown, a menu option in the View menu allows you to show
or hide the bar.
Also move the bookmark bar below the tab frame, it looks better
here I think and matches other browsers (e.g. Firefox.)
* This is a BMenuBar with IconMenuItems.
* Uses node monitoring to live-update the bar as bookmarks are modified.
* Bookmark folders are BNavMenus and can be browsed.
* This needs some improvements, for example handling more bookmarks than
the window width allows us to show (with an extra menu like for tabs?)
Fixes#10232.
As suggested by stippi, we can use system_time and the CurrentMessage
when field to determine the relative time of the actual mouse clicks,
rather than the time of message delivery.
* Simple, incomplete JSON string-builder.
* Not yet using the new bulk information method of the web-app.
* Not yet parsing the reply and doing anything with it, consequently
commented out.
* What works is generating a JSON command and receiving the reply.
* This may be fine in media server where it lands in logs, but certainly
not when the code is run in applications.
* Helps with all media-related webkit tests.
* MHTML: give a higher priority than HTML to improve detection results,
as MHTL is likely to contain HTML in the first chunk.
* HTML: scan the first 512 bytes to increase likeliness of finding a tag
* XHTML: don't try to identify on the dectype, this is not reliable and
missing from some documents. Recognize "<html xmlns" and the utf-16
equivalent, as well as part of the DTD tag.
The menu was closed, but immediately reopened by the click on the
button. If the time since the menu closing is shorter than a
double-click delay, don't open the menu again.
Fixes#9538.
* Setting the important/failure color on the whole view looked ugly.
* Important notifications use B_CONTROL_HIGHLIGHT_COLOR, instead of
white.
* We may want to select better success and failure colors. Pure red and
green don't look very good. Suggestions welcome.
* They crash app_server if you try to use them, which is not a good idea.
* we could clamp them to 0/255, but reporting the error to the user
seems better.
* Instead of forcing the hash-table to use a copy of the key,
introduce and use TypeOperation template to avoid taking a
reference of a reference type (which gcc2 doesn't allow).
* Fixes missing atomic stuff that gcc requires
* The gcc build still fails further down, because of a mixup of
VFP/nonVFP objects (at least for beagle build).
* This is built for the host system, so we can't use B_PRIdOFF.
* Until POSIX introduces a format constant for off_t, cast the variable
to long long to avoid a warning.
The scheduler expects that all threads expect the initial idle threads
have priority in range [THREAD_MIN_SET_PRIORITY, THREAD_MAX_SET_PRIORITY].
If the requested pririty is out of range the value is clamped. Failing
with B_BAD_VALUE is probably an overkill since there isn't any real
change in the guarantees provided by the scheduler about the behavior
of such thread. Also, BeBook suggests that spawn_thread() can specify
priority 0.
* PackageFSVolumeInfo: Add the directories for all relevant states.
* PackageFSPackageInfo: Include the package file's parent directory node
ref.
Package daemon and package kit still don't support old states yet.
If an old state is specified via mount parameters we load the packages
as specified in its activated-packages file.
The interface for the package daemon, the package daemon itself, and
the package kit are still to be adjusted, so ATM some PM components
might be a bit confused when an old state was booted.
For potential boot volumes with older packages states the respective
item in the boot volume menu now has a sub menu for selecting a state.
The boot loader functionality for this feature is complete -- i.e. the
respective kernel is loaded and the name of the old state is added to
the kernel args -- but kernel packagefs and package daemon support is
still missing.
Some tests in WebKit have no <html> and no <head>...
* Allow "<style", "<script", and "<a href" to identify HTML
* Scan up to 256 characters instead of 64
* Also remove the rule identifying "<!--", because this really isn't html
specific.
* qrspec.h isn't yet part of the package for some reason.
* removed qrencode from the bootstrap package.
* only include qrencode when the qrencode package is found.
* didn't check qrencode itself, tests welcome.
* The DataReceived hook gets a position argument, making it possible for
listeners to handle out-of-order data (from two range requests at
different positions, for example)
* Adjust HaikuDepot (only user of the API in our sources)
* Add a copy constructor to HTTPRequest that copies the relevant
parameters from an existing request. Makes it easy to repeat a request
with a different range. Could be useful for restarting downloads, or
paralellizing them.
* Add SetRangeStart, SetRangeEnd calls to HTTPRequest, no implementation
yet. I'm putting all the API changes in this commit as it needs to be
synced with a matching haikuwebkit release.
* All archs must update to HaikuWebkit 1.3.0. Previous versions are
broken by this.
These were acceptable in media kit log, but are only annoying now that
the AddOnManager is ran in applications. Moreover, these get to stdout
and make some WebKit tests fail.
... in filenames. Replace the existing Unicode conversion functions
with UTF conversion functions from js that he relicensed MIT for us.
Put the UTF conversion functions in a private but shared code location
so that they can be accessed throughout the kernel.
Right now we only provide functions to convert between UTF-8 and UTF-16.
At some point we should also add functions to convert between UTF-8 and
UTF-32 and UTF-16 and UTF-32 but these aren't needed by exfat.
Remove the old Unicode conversion functions from exfat as they assumed
UCS-2 characters and don't work with UTF-16 used by exfat.
Rename most variables with the term length with code unit where code units
are intended. The term length, when used, means length in bytes while code
units represent either a full 2-byte UTF-16 character or half a 4-byte
surrogate pair.
Add becomes +, Remove becomes −, the current button labels "Add" and "Remove"
are used as tool tips. Relayout the controls so that they fit nicely with the
buttons:
The add button is placed left of the server text control showing that it
adds new server names while the remove button is placed next to the list
view showing that it removes server names from the list.
The reset button is placed next to the "Synchronize" button at the bottom of
the tab group and is renamed "Reset to default server list".
This makes the window a bit taller.
* WebKit testsuite relies on the MIME types being correct, so when the
file doesn't have one, try to identify it.
* May be useful for other apps using FileRequest, anyway.
* WebPositive testsuite relies on the mimetype to parse xhtml files.
* This has a higher priority than HTML, because it is more reliably
detectable
* Uses the same icon as html and mhtml. Who wants to draw new ones?
This patch remove the old thread migration logic which used few special
cases and (broken) general check that attempted to balance threads.
The new logic is pretty straightforward and seems perform well without
any additional special cases. Current core is compared with the least loaded
one and the thread is migrated if that would result in estimated loads of
both cores (i.e. the current one and the least loaded one) to become closer
to the average load (i.e. average of that two cores).
Currently, ThreadData::ShouldRebalance() (and mode specific functions
it calls) only decides whether to migrate thread to another core or not.
However, in most cases it actually needs to find the best candidate for
new core so it could as well return that information.
Create and use BLayoutUtils::AlignOnRect() to position the button label
in BControlLook::DrawLabel().
AlignOnRect(), unlike AlignInFrame(), provides the possibility to return
a rectangle with dimensions greater than the available size.
Add some comments above the methods in LayoutUtils that indicate such.
Also update copyright headers in LayoutUtils and ControlLook
* Uses the same icon as HTML. Anyone wants to design something better?
* Also add support to Web+ (not actually supported yet, but the next
version will).
These files are useful as self-contained documents (application
offline documentation), and for saving web pages in a single file.
* In a first round, icons are trying to be loaded
from the icon cache.
* In a second round, the cached icons are updated from the
server, unless the icons files have been modified within
the last hour. The web-app does support headers for checking
if the resource has been modified since a certain date, however,
with hvif being so small and the time it takes to connect to the
server per individual icon being so relatively long, it doesn't
seem worth it just yet to optimize for not actually getting the
icon data in response.
* These classes were moved from Media Server, making the use of ports
and messages to communicate with the app irrelevant.
* Split in a separate commit to help git keep track of moved files.
Fixes#4893.
The media server tried to use node monitoring to dynamically add and
remove plug-ins, but it isn't that useful:
* When a plug-in is added, applications would have to query the media
server to get an up to date list of available formats. For example
MediaConvert populates its format menus on startup.
* When removing a plugin, if an app already had it loaded, there is not
much that can be done to keep it working.
* The list of plugins was not sorted by directories (user vs system
add-ons), so the directories were re-scanned to make sure user add-ons
were returned first, rendering the node monitoring less interesting.
Now, the format handling is done by each application. The node
monitoring is removed, instead the apps will scan the plugin directory
when first using the media kit classes. Restarting the application is
needed to update the media formats list.
This reverts a portion of hrev46580 concerning placement of a label on a button.
The label was draw too low on the button in some cases, notably in Keymap.
Restoring the old code for the icon-less case fixes the problem.
There still may be a problem drawing labels on buttons with icons, but, the code
should behave the same as it did in hrev46580 for that case, which is when
buttons with icons was introduced.
* Add button is disabled initially (as the server name is blank)
* Use B_FAILURE_COLOR when server name is invalid instead of hardcoding red
* Some code refactoring
* Some style fixes
* Replace code to find the plug-ins with the new APIs.
* Prepare for hybrid-aware code (but we need to use the app
architecture, not the media_server one)
These are used when an app uses BMediaFile/BMediaTrack, which leads to
the plug-ins being instanciated on the application side.
* Fixes one more part of #10049 (media add-ons are still missing).
* Will probably not solve any real-world issue because of #4893.
* With the muxer & demuxer tables merged in hrev47063, the
list of output formats included media file formats that
weren't flagged as writable
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
46b39e8378 contained a change to the
rounding for non-subpixel-precise drawing. This changes it back
from using round() to casting to int32. This also reverts a change
to StrokeLine() which meant that lines on integer pixels appeared
at the same location regardless of using B_SUBPIXEL_PRECISE or not.
On further thought, this doesn't make any sense, since it means
to treat the meaning of coordinates different for stroking and
filling. This fixes WonderBrush's brush tip preview, but breaks
Gobe Productive's caret rendering for zooms smaller than 150%.
The change to the rounding fixes#10690.
Interestingly, it only complained about some of them. Changing them all
to %define though, as equ means it should try to evaluate it once, which
of course it can't really if those are ebp+CONSTANT.
Didn't catch those since I wasn't building gcc2h.
Thanks to jessicah for reporting and testing the fix!
* Transformed ConnectionTest into WebAppInterface
* Added methods to Model to trigger the population of all packages
with additional information that is needed in the list view.
* This launches a thread which tries to retrieve icons for all known
packages from depot.haiku-os.org. This is uncached and very slow. I
guess it could even be fast enough with a change to the protocol where
icons are not retrieved one at a time.
* The media_file_format struct has B_READABLE and B_WRITABLE flags,
allowing us to tell which formats we support decoding and encoding
* This allows application to query for the supported decoding formats.
* Also adjust some of the MIME types to match what's actually used (eg.
in HTML5 audio).
This makes html5test.com detect which formats we declare we can decode.
BListView::RemoveItem() doesn't delete the item, it just removes it
from the list. We have to delete the item to free the memory it
consumes ourselves.
Application "Time" crashes when you push "Remove" button without any
selection on list of network time servers.
Fixes#10716
Please use git format-patch to create your patches in the future so that
the author information is preserved.
Signed-off-by: John Scipione <jscipione@gmail.com>
* The maximum vector icon data size was a bit low. That may
be hard to track down why a certain vector icon doesn't work,
especially when imported from SVG...
* Don't allocate the vector buffer on the stack anymore.
When installing a package, it is set to pending, which removes
the Install button from the package info area. When multiple
packages are downloaded, theould all be put to pending,
right now, they will still offer to be installed, although they
are already scheduled for downloading. Requesting a package to
be installed when it is already schduled will mess things up later.
Godm, I hate this nano bug...
...when sending the whole view state over the link.
Also inherit the fill rule when pushing states (DrawState
copy constructor). A somewhat sloppy oversight, I must add.
* Base class needs to check this as well because the subclass might
not override it (e.g. InitParametersPanel).
* Fixes crash when trying to initialize partition map. Thanks to
jessicah for pointing this out.
After load_image() the child thread is suspended and the parent is
expected to resume it later. However, it is possible that the parent
attempts to resume its child after it has been notified that the image
had been loaded but before the child managed to suspend itself. In such
case the child would suspends itself after that wake up attempt and,
consequently will not be ever resumed.
To mitigate that problem flag Thread::going_to_suspend has been added
which helps synchronizing thread suspension and continuation in a similar
way that "traditional" thread blocking is performed. This means that
the child should behave in a following manner: set its going_to_suspend flag,
notify the parent (i.e. any thread that may want to resume it), acquire
its scheduler_lock and suspend itself if the going_to_suspend flag is set.
The parent should follow pattern: clear going_to_suspend flag of the thread
that is about to be resumed, acquire that thread scheduler_lock and enqueue
it in a run queue if it is suspended.
Thanks Oliver for reporting the bug and identifying what causes it.
Most of the actual UserEvent work is done in DPC so that we don't have
to care about the limitations of the context in which UserEvent::Fire()
is invoked. This requires appropriate management of lifetime of UserEvent
instances to make sure that DoDPC() method is always called on a valid
object.
* That's the only one I would ever want to see (in most cases).
* I must admit that I don't really understand why the lists are created
and updated only for filtering, instead of just testing against the
package state.
* However, I also have no idea, why the NotContainedInFilter does not
work. I left it in because someone might see what I didn't, and maybe,
if the first confusion is cleared, it might even find some use.
* BView gets SetFillRule/FillRule methods. The fill rule is part of the
view state.
* The B_NONZERO rule is the default. This is what we implemented before.
* The B_EVEN_ODD rule is the other common possibility for this, and
we need to support it to help WebKit to render properly.
- POSIX says the behavior for pthread_equal is undefined for
uninitialized arguments.
- However, gcc C++11 threads supports expects C++-compatible behavior,
that is, two uninitialized pthread_t should compare equal.
Avoids some runtime asserts in latest WebKit version.
In low latency mode the scheduler would not attempt to balance load
on not heavily loaded cores unless difference in load exceeded
kLoadDifference * 2 (i.e. 40 percentage points), which does not seem
to be good enough.
To make sure that load statistics are accurate on idle cores each time
idle thread is scheduled a timer is set to update load when current
load measurement interval elapses. However, core load is defined as the
average load during last measurement interval and idle core may be still
considered busy if it was not idle during entire measurement interval.
Since, load update timer is a one shot timer that information will not be
updated until the core becomes active again.
To mitigate that issue load update timer is set to fire after two load
measurement intervals had elapsed.
Should fix#10628. If there is a race condition with a writer getting
minimum or maximum from double ended heap may incorrectly result NULL.
Which is not expected in the most of the thread migration logic. Apart
from that, because of the race condition heap state may be observed as
inconsistent thus failing assertions.
ended heap
- Per DWARF4's specification, if a type's complete definition is
contained in a .debug_types unit, it should be referenced via the
DW_AT_signature attribute. 4.8 now actually does this rather than
setting e.g. DW_AT_attribute_origin to a signature ref, and
consequently we weren't finding said reference any more.
Gets .debug_types section support working again.
- Various other places in Debugger expect the highpc attribute to be
an address rather than an offset. As such, resolve it to one when
setting the attribute in the corresponding DIE so the resolved value
is available everywhere. Fixes variable scopes not being computed
properly, and consequently the missing variables mentioned in the
previous commit.
This gets things working properly again under gcc4.8.
- For DWARF4, lowpc/highpc can be specified as constants in addition
to addresses. Furthermore, they can also be specified such that highpc
is a relative offset from lowpc rather than an absolute address. We
weren't handling this case, which gcc4.8 is now using when emitting
version 4 debug information. Fixes another part of #10659.
There still remains a problem with regards to class/structure variables not
showing up in the local variables view.
* When the add-on provides no parameter editor, still add the set of
of default controls instead of just bailing out of the Init()
method.
* Before, DriveSetup never added the default controls in such cases
and simply showed an empty window. This happened when e.g. trying
to create a new partition inside an extended partition (because
ExtendedPartitionAddOn provides no parameter editor).
* Fixes#10569
* When determining the output link, look at the internal encoder in
the transmitter setup.
* Fixes getting no picture on digital output of certain systems.
... instead of vertically. This actually swaps horizontal and vertical
so if you have a mouse with a fancy 2-axis scroll ball it will swap
the x and y coordinates. (untested)