Age | Commit message (Collapse) | Author |
|
๐ซ - U+1F4AB DIZZY
๐จ - U+1F4A8 DASHING AWAY
๐ค - U+1F464 BUST IN SILHOUETTE
๐ฅ - U+1F465 BUSTS IN SILHOUETTE
๐ฆ - U+1F987 BAT
๐ฆ - U+1F988 SHARK
๐ - U+1F41D HONEYBEE
๐ฅ - U+1F940 WILTED FLOWER
๐ฆ - U+1F980 CRAB
๐ฆ - U+1F991 SQUID
๐ฅ - U+1F942 CLINKING GLASSES
๐ - U+1F692 FIRE ENGINE
๐ - U+1F694 ONCOMING POLICE CAR
โต - U+26F5 SAILBOAT
๐๏ธ - U+1F6CE BELLHOP BELL
โ - U+231A WATCH
๐ - U+1F320 SHOOTING STAR
๐ฅ - U+1F949 3RD PLACE MEDAL
๐ฅ - U+1F94A BOXING GLOVE
๐ - U+1F454 NECKTIE
๐งฆ - U+1F9E6 SOCKS
๐ - U+1F484 LIPSTICK
๐ฅ - U+1F941 DRUM
๐ - U+1F4E0 FAX MACHINE
โ - U+2753 RED QUESTION MARK
โ - U+2754 WHITE QUESTION MARK
โ - U+2755 WHITE EXCLAMATION MARK
โ - U+2757 RED EXCLAMATION MARK
|
|
More similar in style to U+203C:
โ๏ธ - U+2049 EXCLAMATION QUESTION MARK
Add transparency:
๐ง - U+1F4E7 E-MAIL
๐จ - U+1F4E8 INCOMING ENVELOPE
๐ฉ - U+1F4E9 ENVELOPE WITH ARROW
No joy in a joystick without an action-button!
๐น๏ธ - U+1F579 JOYSTICK
|
|
This requires a special case with names as the default function is
supposed to have a unique name ("*default*" in our case) but when
checked should have name "default".
|
|
Before this we attempted to hack around this by only overriding
has_binding. However this did not cover all cases, for example when
assigning to variables before their declaration it didn't throw.
By using the new find_binding_and_index virtual method we can just
pretend the indirect bindings are real.
Since indirect binding do come from a normal environment we need to
ensure you cannot modify the binding and that properties like mutable
are false as expected by the spec for such an indirect binding.
|
|
This will allow other environments which extend DeclarativeEnvironment
to provide their own custom bindings.
|
|
|
|
Together with removing an incorrect VERIFY this allows multiple star
imports in a single module.
|
|
|
|
|
|
This is an export which looks like `export {} from "module"`, and
although it doesn't have any real export entries it should still add
"module" to the required modules to load.
|
|
This means we should accept a string after 'export * as '.
|
|
This is required for ECMA-404 compliance, but probably not for serenity
itself.
|
|
Also make clang-tidy happy by making line a const&
|
|
|
|
When the value for a SpinBox equals the max, disable the increment
button. Functionally, clicking the button doesn't do anything because
the set_value() clamps the value to min/max and updates the textbox.
However it is still nice to indicate to the user that they've reached
the max. Same goes for minimum value and the decrement button.
|
|
Previously the value of the SpinBox is re-evaluated after every change
to the TextBox control. This leads to very unintuitive behavior such as
the user deleting the contents of the box and it having no
visible effect. This happens because the TextBox no longer has a valid
number and so gets reset to the current m_value of the SpinBox.
By defering the update of to the SpinBox value until focus leaves the
control we provide a much more intuitive experience with the text box.
We do still validate when a user types something that it parses to an
int. If it does not we delete the most recent character. This in effect
prevents non-numeric numbers from being entered.
Upon losing focus the value will be checked. If empty we set the SpinBox
value to the minimum allowed value.
|
|
โ๏ธ - U+2694 Crossed Swords
๐งช - U+1F9EA Test Tube
โ๏ธ - U+2695 Medical Symbol
๐ - U+1F340 Four Leaf Clover
|
|
It was the same as the normal Hidden cursor (a transparent image).
|
|
This makes cursors in a 2x Display Scale without a special upscaled
version (such as a Hand cursor) display the 1x version instead.
|
|
|
|
|
|
With a new DragCopy cursor icon being used on accepted events, this
caused a 'false assumption' that everything can be dropped into
AbstractView.
This will now only happen if the View is editable, which still isn't
perfect, but at least the Settings app will no longer change cursors.
Also note that we won't get "drag move" events as the comment below
says, which disables automatic scrolling when dragging an element.
|
|
|
|
... instead of in the center of the cursor bitmap.
It doesn't make much of a difference, as the default cursor hotspot is
center. But since now we switch between a normal Drag cursor and
DragCopy one that has set hotspot, this caused the overlay to shake.
|
|
Previously, the cursor would use a default cursor on window frames such
as the title bar and menu bar, which was not quite correct as drop
events were still handled there.
|
|
|
|
The purpose of this cursor is to indicate if a current dragged object
(file, Spreadsheet cell) can be dropped onto a widget.
|
|
Failing to load 2x cursor resulted in using the default arrow cursor
instead of scaling the 1x one.
|
|
Layer::erase_selection used to erase the entire bounding box of the
selection. With the add/subtract merge modes for the selection tool it
is possible to create selections which are not rectangular. This leads
to deleting pixels that were not selected.
This change adjusts the erase behavior to walk the selection rect and
check if a pixel is selected or not before deleting.
|
|
|
|
Wand Selection tool uses similar logic to the Bucket Tool. Flood filling
and threshold calculations to determine the affected area just in this
case we do not set the pixels of the selected area, instead we use
those pixels to alter the selection mask.
In the future we can probably abstract out the shared flood logic so
both tools can share the code.
|
|
This allows us to unlock the region tree lock early, to avoid keeping
the lock while we are doing IO.
|
|
This limits our interaction with the "real" region tree (and therefore
its lock) to the time where we actually read from the user address
space.
|
|
This resolves some cases where the existing filling algorithm could get
stuck in a recursion loop and evenutally overflow the stack.
|
|
This fixes an issue where BucketTool would consider "black"
and "transparent" the same color.
|
|
|
|
|
|
Before, the warning dialog would be opened after the NewProjectDialog,
leading to focus-fighting by the two windows. This fixes that and makes
the action more consistent with the standard serenity way of handling
unsaved changes by asking before the NewProjectDialog is brought up.
The way this is achieved avoids having to rewrite open_project as well.
|
|
This commit fixes a crash that would occur due to an unnamed file being
automatically saved via EditorWrapper::save(). Now, we throw up a
FilePicker::get_save_filepath.
|
|
There were a lot of unrelated formatting changes in the patch, which is
now shrunk by roughly 60%.
|
|
Our DynamicLoader would choke on a couple of missing symbols. I'm not
certain how this could have worked before, but there we go. :^)
|
|
All commits have been combined into one platform support patch.
|
|
SDL2 applications are prone to reinitializing the SDL components when,
for example, changing the display resolution. This would lead to
crashes since we were doing things in the wrong order.
* We now decouple `GLContext` from `SDL_Window` a bit more, allowing
the window to be destroyed before the GLContext.
* Do not quit the `GUI::Application`, let our event loop handle exiting
These changes allow changing the display resolution in the Quake3 port.
|
|
Specializing point_position_to_preferred_cell for the
RectangleSelectTool as it selects a new cells with a rounding
behavior instead of a flooring behavior
|
|
When handling mouse events, different tools may want to interact
with a different pixel in the image for the same input position.
|
|
This is done to allow querying the current active tool inside the
event_with_pan_and_scale_applied and event_adjusted_for_layer
functions without risking a null pointer dereference
|
|
This method is used to point a position at the preferred pixel of
the image. Certain tools may want to specify a different preferred
pixel for the same input position.
|
|
|
|
When the location currently displayed in FileManager is removed, find
the nearest existing parent path and open it in the window.
Without the fix, the FileManager window remained in the deleted
directory.
Changing the path in 'DirectoryView' object will automatically update
other components in the FileManager (breadcrumb bar, directory tree
view).
|
|
This commit fixes FileSystemModel behaviour when the root path of the
model has been deleted.
In this case, the model index resolved for the root path is invalid and
passing it to 'begin_delete_rows' would trigger assertion failure.
Instead of deleting all children rows one by one, we simply invalidate
the whole model.
|