TabWidgets couldn't be used in GML properly, as the GML creation
routines didn't actually call the necessary functions in the TabWidget
to get a new tab added. This commit fixes that by making the name of the
tab a normal property, the previously introduced "title", which can be
trivially set from GML. Therefore, try_add_widget() loses an argument
(while try_add_tab doesn't, because it newly constructs the widget).
This allows us to get rid of the silly "fixing my widget tree after the
fact" code in Help and will make it super easy to use TabWidget in
future GML. :^)
It is now possible to quickly switch to specific tabs directly without
having to 'search linearly'.
Pressing Ctrl plus a number from 1 to 8 switches to the tab of that
index. Pressing Ctrl-9 swithes to the last tab.
This feature already exists in Firefox and Chrome.
I went into fullscreen mode, via the View menu, before looking at the
associated key (F11). I had to kill Qemu to be able to escape.
Escape is an intuitive way to exit most fullscreen modes.
The README was getting a bit outdated in places, and it didn't have its
priorities straight (libc uwu, also we have browser no big deal). These
changes are largely based on what was discussed among major contributors
and maintainers, though I put in some extra stuff I'm bothered by.
The start of README is unchanged. The project blurb is probably its best
part, both then and now, so it definitely stays. The FAQ is moved up
under the About section because it's easier to find that way and makes
more sense logically.
The Features section is a highly compressed version of the previous
several features sections. Priorities are a big focus here: List what
matters to a reader, what they will likely care about, what's impressive
to them and what's probably not. The list therefore starts with the
factual basics about the Kernel followed directly by Browser+LibJS, the
probably biggest userland feat in this project. Then, we pedal back and
talk about OS basics, like security, POSIX, services, libraries,
devtools. We finish out by addressing the end user concerns
(customization, UI apps, multimedia & file format support), which
includes a bunch of things previously underrepresented. I think it's
rather important that Serenity has a unified style and UX philosophy, so
this should definitely be mentioned :^) At the end, I think it's very
important to state the NIH philosophy, but also the fact that there are
more than two hundred (!) ports.
Documentation section is slightly expanded to mention the Documentation
folder which doesn't really appear anywhere in the previous version.
Build instructions include a simple mention of the fact that Serenity
runs on almost anything. It's good to not scare off Windows users :^))
(self-deprecating humour overload)
The Get in Touch section and the issues section are combined into one
"how do i talk to u help" section that contains the same information but
includes a general link to CONTRIBUTING.
The Contributors section is now one big list of 100+ commit people.
Also, the GitHub contributor list is linked, as that lists over 30
additional people IIRC + detailed statistics.
This builds on the work done by implementing the flex order CSS
property and implements flex reverse layouts by just reversing
the order and the items within each order bucket.
Adds a new optional parameter 'reserved_chars' to
AK::URL::percent_encode. This new optional parameter allows the caller
to specify custom characters to be percent encoded. This is then used
to percent encode plus signs by HttpRequest::to_raw_request.
This almost fully implements the SSE extension, similar to the x87 and
MMX extensions, using a separate class "SoftVPU".
Currently missing are all shadow and exception checks, as well as the
denormals-are-zero and flush-to-zero flags.
Also missing are some integer-SIMD functions.