ConstrainClippingRegion was used in BControlLook to limit drawing to
inside the update rect. There are two problems with that:
- It would ignore any other clipping set by the application, as calls to
ConstrainClippingRegion are not cumulative,
- ConstrainClippingRegion ignores transforms on the view, so on a
transformed view, we would not draw anything in most cases.
If constrained clipping is needed here, it should be achieved using
ClipToPicture instead.
Expanded window items are listed right under the team item. So, it is
not needed (and a waste of space) to repeat the team name there.
Detect two common patterns for adding the application name to windows:
AppName: Window
and
Window - AppName
Remove both from the item labels, leaving a little more space for useful
information in DeskBar.
- The XHCI version register is at offset 2, but we can't do a 32-bit
read at that address. Instead read at address 0 and shift. Fix a freeze
on my system (this register is currently used only for tracing, but I
noticed my USB controller implements version 0.96 and not 1.0 of the
spec, so maybe this will have to change). All other registers in the
capability area are already properly aligned.
- Usual printf type mismatch error in xhci.cpp.
On an empty line terminated by \n, we would access the temporary buffer
(stack allocated) with an index of (uint32)-1. On 32bit machine this
would just read the byte before the array on the stack, but on 64bit it
would crash.
Check that the length is at least 1 before trying to access a character
in the array.
Fixes#13625.
Thanks to accessays for proofreading the code:
It is too similar to the long format and does not add much value.
And it creates some problems with using a locale format with another's
string.
Fixes#11343.
The default error handling code in libpng uses setjmp/longjmp. This is
annoying, because stack variables may be corrupt, unless they are
declared volatile.
Instead of declaring everytihng volatile, we can tell libpng to use
custom error functions, which will throw a C++ exception, making the
code more readable and less crashy.
Also handle the png_read_end function returning errors without failing
the whole decoding. This happens for example in the old diskusage
documentation screenshots, where this function fails after the image was
completely and correctly decoded. Ignoring the error lets ShowImage show
these pictures.
Fixes the crash reported in #6775.
This is a common extension to XMODEM, which replaces the checksum with a
more resilient CRC.
The receiver must explicitly enable this, so if the receiver doesn't
handle it, the traditional checksum is still used. Hence, this is
backwards-compatible with XMODEM.
- hub: had an annoying problem preventing to run the script directly.
Now uses a proper "shebang" so it finds ruby.
- mako, setuptools: needed to build Mesa.
- neonlights: my favorite screensaver.
- python 3.6.
- advancemame, for arcade gaming on Haiku.
- sox and gnuplot, for various experiments.
The asynchronous listener is meant to be used when the functions are
meant to be called from the main thread (or another looper the listener
is explicitly atached to).
For this to work, the request should be attached to
listener->SynchronousListener(), which was not the case here. Assume it
is fine for the functions to be called from the HTTP thread directly
then (if I'm wrong, revert this and attach the synchronous listener to
the http request, however wihout further changes it will just move the
execution of the callbacks to the main thread, which may not be the
right place either).
This fixes a crash when exiting WebKit while playing a youtube video
(somehow the handler isn't cleanly deleted and removed from the main
looper there - going without a handler at all fixes this).
These were added in C99 to avoid interferring with C++, but then C++11
caught up with inttypes/h/stdint.h and removed the need for the macros.
They have disappeared from C11 as a result, and also from current glibc
implementation (https://sourceware.org/bugzilla/show_bug.cgi?id=15366)
So it seems reasonably safe to do the same, and it will save people
having to enable access to these macros explicitly when writing C++.
The SRT file format unfortunately does not specify a text encoding (in
fact, there isn't even really a specification for it). Just loading the
bytes and assuming UTF-8 does not work so well, so we now try to detect
the encoding from the first line of text found.
Fixes#9668
(sometimes watching a movie is all an adventure!)
ffmpeg decodes some videos in this format: separate planes for G, R and
B values of the pixels. It does not manage to perform the conversion on
its own (we would need to use swscale for that), so provide our own
converter (the code is trivial anyways).
This allows to fit a lot more text in the same horizontal space, so we
can fit the label in various locales, without spreading the checkboxes
further apart.
Fixes#6987
The non-locale aware version is kept in src/build/libshared for use on
the host system and in packagefs (kernel add-on). In both cases, ICU is
not available.
Fixes#8192
- Strength is now set once, instead of at each comparison, to improve
performance and fix potential locking issues
- Add a way to enable "numeric" collation (aka "natural order")
The about window relied on two sets of strings to be translated exactly
the same way and used lengths from one set to do things in the other.
Several translations got this wrong, and as a reult, the bold text in
the window was not at the expected places.
Fix by having only one set of translated strings, and build the dialog
from it.
Fixes#10559.
GPT should have its partition table both at the start and end of the
disk. Our GPT partitionning system is able to cope with just one of the
two being available. However this has the unwanted effect that when
erasing only the start of the disk, it is still recognized with its old
GPT scheme.
To avoid this, lower the score of GPT if it finds only one of the two
headers, allowing MBR and BFS to get more priority in that case.
Should fix#12290, #13434.
limits.h is part of the C standard, but POSIX and XSI extend it with
various defines. We should not add these unless the application requests
support for them.
In this case, PAGE_SIZE should only be defined if XSI support is
requested by defining _XOPEN_SOURCE. Note that PAGESIZE (plain POSIX for
the same thing) and B_PAGE_SIZE are alternatives that remain available.
BEntry.InitCheck returns B_OK even if the leaf does not exist. So the
code in launch daemon to create directories (/tmp and
/var/shared_memory) was never run.
Fixes#12760.
BListView automatically sets the vertical scrollbar range already. Do
the same for the horizontal scrollbar.
Also fix BOutlineListView to compute the preferred size taking into
account the items outline levels (it needs a little more space).
This fixes the horizontal scrollbars in Locale preferences, second part
of #6747.
The goal of sanitize_display_mode is to create a mode that the hardware
can use. The code was doing that, but if any change was required to the
initial mode, it threw the result away.
Now accept the sanitized mode, and log it for debugging purposes.
This should fix#12927
As pointed by Marcus, FindString returns a pointer to the internal data
of the BMessage, so the message must stay in scope as long as we use the
pointer.
Thanks for reviewing!
ffmpeg, especially older versions, is not very good at detecting file
types and relies on us giving it a file extension for a better guess.
Use our MIME sniffing to have a first try at detecting the file we are
about to play, and pass this information to ffmpeg.
Fixes#13150.
- Both Noto and Noto Sans CJK JP are now used as font fallbacks,
allowing to cover a rather large range of characters. This also makes
it possible to mix the two fonts easily.
- Remove VL-Gothic from packages and from AboutSystem
- Add Noto fonts to the dependencies of the Haiku package.
This provides a similar look for all languages as discussed on the
mailing list.
Revert changes from d0ac609964
The People window include a dark grey stripe, which must be next to the
window border with no spacing. The spacing was properly done inside the
main view.
Thanks to Diver for noticing the issue.
As discussed in 2008
(http://www.freelists.org/post/haiku-development/BString-on-GCC4,1),
this class was not efficient because of lack of inlining. Implement the
suggested solution of a SetCharAt method instead. Also add a CompareAt
which covers a specific use case in KeyboardLayout.cpp.
Adjust all places which were using this feature to safer APIs.
Also fixes a copypaste error in FormattingConventions.cpp.