Age | Commit message (Collapse) | Author |
|
This shortcut has the same effect as pressing the "Show Desktop" button
in the taskbar. This shortcut already exists in Windows.
|
|
This function is added to separate the desktop toggling functionality
from the "Show Desktop" button in the taskbar and to enable calling this
behaviour via a keyboard shortcut in a later commit.
|
|
|
|
Previously when setting an action's icon we would only change the bitmap
stored by the action. This patch adds logic to propagate that change to
toolbar buttons as well as window menus.
This fixes an issue in SoundPlayer that would cause the play button not
to reflect the play state.
|
|
Resetting the interface just based on the fact that it already has an IP
assigned doesn't make much sense, considering that we frequently end up
here after having configured an interface via DHCP already.
Instead, just keep the part that prevents us from sending DHCP
discoveries to interfaces that shouldn't be using DHCP.
While we are at it, place some of the logging behind a debug flag, as
this function is apparently meant to be run frequently.
This partially reverts commit e14d4482a18f250787cbf64bae596de1f7278d8d.
|
|
This patch fixes the additional bookmarks menu button getting pushed all
they way to the right until a bookmark is out of bounds of the bar by
instead collapsing a bookmark into the menu as soon as it intersects
with the additional button.
|
|
For example, with this input:
```xml
<C>]]>
```
After seeing `<C>`, the parser will start parsing the content of the
element. The content parser will then parse any character data it sees.
The character parser would see the first two `]]` and consume them.
Then, it would see the `>` and set the state machine to say we have
seen this, but it did _not_ consume it and would instead tell
GenericLexer that it should stop consuming characters. Therefore,
we only consumed 2 characters.
Then, it would see that we are in the state where we've seen the
full `]]>` and try to take off three characters from the end of the
consumed input when we only have 2 characters, causing an assertion
failure as we are asking to take off more characters than there really
is.
|
|
The up/down side mouse buttons will now also trigger the back/forward
common actions, as used by the Browser, File Manager etc.
This matches standard behaviour of most apps on other operating systems.
|
|
We now check if a mouse_down event matches any action shortcuts,
and if so activate it accordingly, following the same consumption
rules to key_down events.
|
|
Instead of having widget/window/application create a shortcut from a
KeyEvent within their find methods, we'll just pass them a Shortcut
so that the "where to search" logic doesn't need to be duplicated
for different Shortcut types.
It also lets us handle invalid Shortcut rejection at a higher level,
with most things letting the caller be responsible for not searching
for actions with an invalid shortcut.
|
|
A Shortcut can now be either have a keyboard key, or a mouse button,
along with any modifiers.
Decided to add an extra type field instead of subclassing, which means
callers will have to be a little careful before accessing a particular
input method's "key", but it keeps things simple for now.
|
|
It's useful to be able to print mouse button names to the user in other
parts of the system.
Went with a hardcoded switch instead of an enumeration macro like
KeyCode since there were only a handful of cases, and it's unlikely that
many more will ever be added (but can always change it then)
|
|
With this, the headless browser can now connect to the web.
Thanks a lot to Ali and Sin-ack for their help with this!
Co-authored-by: Ali Mohammad Pur <mpfard@serenityos.org>
Co-authored-by: sin-ack <sin-ack@users.noreply.github.com>
|
|
With this, the headless browser can now decode images on its own!
|
|
This utility creates a 'screenshot' of the given page after a
few seconds of loading.
|
|
|
|
This is useful when using LibWeb in environments that aren't Serenity
|
|
|
|
|
|
This looks nicer in every way imaginable.
|
|
|
|
This looks so much nicer, as the '-' and '>' are not aligned in the
default font configuration.
|
|
The system's official language is American English.
|
|
|
|
When the user executes chres to change to a new resolution, the
WindowManager removes for each window its intersections with the
screens (window.screens()) and recalculates its rect. Finally, a
Window::set_rect call sets the window's new rectangle. The set_rect
call also triggers a call to Compositor::invalidate_occlusions which
fills for each window the intersections with the screens again in
window.screens().
In case chres switches to an already present resolution the set_rect
call exits prematurely as it checks if the window's rect really
changed. This means that nobody calls invalidate_occlusions
resulting in a rendering issue for each window.
Moving the call to Compositor::screen_resolution_changed after the
clearing of window.screens() and recalc of the window rect for each
window resolves the rendering issue as screen_resolution_changed
calls invalidate_occlusions.
|
|
|
|
This commit adds an IPv4Gateway to Network.ini. If that option is set to
value other than 0.0.0.0, the NetworkServer adds a default route (e.g.
with address 0.0.0.0/0) with the specified destination.
|
|
(Previously, it would open the performance monitor tab)
|
|
|
|
Deduced this mostly by looking at unveil()s.
|
|
|
|
|
|
The app refused to run in the Required+Browser system configuration,
because unveil was angry that BrowserSettings wasn't being installed.
|
|
Despite being a small and useful program, it doesn't feel being
essential enough to be included in every build configuration.
|
|
When in visual mode with text selected, on Key_Tilde press, uppercase
characters convert to lowercase and lowercase ones to uppercase.
|
|
Previously the netstat utility crashed when LookupServer wasn't running
because it tried to unveil nonexistent /tmp/portal/lookup socket. This
commit fixes that.
|
|
This service is responsible for loading network configuration from a
/etc/Network.ini config file. It sets up static IP address + mask or
starts DHCPClient depending on configuration.
|
|
Now, the caller needs to give interface names in command-line arguments.
The DHCPClient will perform DHCP discovery only on these adapters. The
service now immediately closes when no interfaces were given.
We don't check if interface has already IP address assigned; we just
reset it to zero so that DHCP resolution will not fail.
|
|
Previously guesses were not checked which allowed guesses
like 'aaaaa' to be entered.
Currently there's an option to set if a guess should be checked
against the dictionary and rejected if it doesn't exist there.
Additionally settings from Game menu have been moved to its own
entry - Settings.
|
|
|
|
This is quite elusive.
|
|
The only major functional change is that the Track now needs to know
whether it's active or not, in order to listen to the keyboard (or not).
There are some bugs exposed/created by this, mainly:
* KeysWidget sometimes shows phantom notes. Those do not actually exist
as far as debugging has revealed and do not play in the synth.
* The keyboard can lock up Piano when rapidly pressing keys. This
appears to be a HashMap bug; I invested significant time in bugfixing
but got nowhere.
|
|
That's very much an informational API.
|
|
This is technically only a stepping stone but needed to happen at some
point anyways. Now, there's no more integer time stored in Piano's
legacy datastructures directly.
|
|
This is a class for handling user MIDI input, which is combined by the
Track with roll note data if applicable.
|
|
If Key_U is pressed while in visual mode, the currently selected text
will be converted to lowercase.
|
|
If Shift+Key_U is pressed while in visual mode, the currently selected
text will be converted to uppercase.
|
|
Allows the passing of a Casing enum, Lowercase or Uppercase, and
converts the selected text accordingly. If Lowercase is passed as the
parameter, it converts the selected text to lowercase. If Uppercase is
passed as the parameter, it converts the selected text to uppercase.
|
|
On some dark themes, it becomes impossible to dark button icons
against their dark button backgrounds. This change tries to
mitigate that by inverting the icon color if the contrast ratio
(against the button background) is less the 4.5 (the recommended
minimum for text).
This is only done for icons that are a solid color (e.g. all back),
where the desired icon would likely be the same inverted anyway.
Fixes a lot of cases of #13978
|
|
|