Age | Commit message (Collapse) | Author |
|
We will now actually use MIME types for clipboard. The default type is now
"text/plain" (instead of just "text").
This also fixes some issues in copy(1) and paste(1).
|
|
This commit moves the clipboard from WindowServer into a new Clipboard
service program. Clipboard runs as the unprivileged "clipboard" user
and with a much tighter pledge than WindowServer.
To keep things working as before, all GUI::Application users now make
a connection to Clipboard after making the connection to WindowServer.
It could be interesting to connect to Clipboard on demand, but right
now that would necessitate expanding every GUI app's pledge to include
"unix" and also unveiling the clipboard portal, which I prefer not to.
|
|
Closes https://github.com/SerenityOS/serenity/issues/2080
|
|
This allowes the active layer to be moved up or down.
|
|
This allows the active Layer to be removed through the Menu or by using
the shortcut Ctrl+D.
|
|
|
|
|
|
|
|
Tools can now have an in-image context menu which you get when right-
clicking inside the image editing area. Our first use of this is to
provide the ability to move layers to the back/front. :^)
|
|
|
|
If we don't go via the action, the tool button becomes checked which
can bypass the exclusivity mechanism. That should probably also be
fixed but it's far outside the scope of where I am right now. :^)
|
|
This feels very intuitive and nice, although maybe we need some way to
override this behavior for the scenario where you're intending to move
something currently behind something else.
|
|
|
|
|
|
This action pops up a dialog asking for a name + dimensions. If OK is
clicked, you get a new layer with those specifications. :^)
|
|
|
|
|
|
|
|
|
|
This allows us to easily make them exclusive and uncheckable. :^)
|
|
|
|
I've used the shortcuts from GIMP for the most part, since that's what
I'm used to. We can definitely iterate on these to find better options
as the app develops. :^)
|
|
This allows you to do things like start a line outside the layer,
or spray a little outside but still partly hitting the layer. :^)
|
|
You can now see what you're drawing before committing to it. This works
by passing the second_paint_event from the ImageEditor to the tool.
We also pass the active layer which makes it easier for the tool to
keep his logic in layer-relative coordinates even while drawing preview
states directly into the ImageEditor backing bitmap.
|
|
You can now nudge layers around with the arrow keys. :^)
|
|
|
|
|
|
Moved the current colors to ImageEditor for now, although I don't think
that will be their final home.
|
|
This ensures that the layer table view always shows the correct
coordinates for the layer.
|
|
|
|
Tool mouse event handlers now receive both a layer-relative mouse event
and the original event. This is needed for the move tool since it moves
the layer and thereby changes the origin of future events every time it
moves.
|
|
|
|
These two have the same semantics as GUI::Widget. The rect() is always
at location { 0, 0 }, while the relative_rect()'s location is relative
to the "parent", which in this case is the Layer's Image.
|
|
Many tools are not working perfectly right yet, but we'll fix them!
|
|
|
|
The main editing widget is now the new ImageEditor widget, which works
on an Image object, which internally has a stack of Layer objects.
Layers are composited back-to-front when painting the Image inside an
ImageEditor.
|
|
|
|
This will allow you us to implement special behavior when Ctrl+clicking
a button.
|
|
This was looking a bit too whimsical and didn't really fit with the
overall look of the window anymore. The actions are available via
the context menu still.
|
|
- Use the same reload action in menu and toolbar
- Scope more actions inside Browser::Tab
|
|
HTTP headers are case-insensitive, so just add CaseInsensitiveTraits
to the HashMap and we're good to go! :^)
|
|
|
|
|
|
This can be overridden in Browser.ini, but if there's no value there,
we now use "about:blank"
|
|
For now, we simply load an empty resource from any about: URL.
|
|
|
|
|
|
|
|
We now support basic hyperlinking in the terminal with <OSC>;8;;URL<ST>
Links are opened via LaunchServer on Ctrl+LeftMouse.
|
|
Moves DirectoryServices out of LibCore (because we need to link with
LibIPC), renames it Desktop::Launcher (because Desktop::DesktopServices
doesn't scan right) and ports it to use the LaunchServer which is now
responsible for starting programs for a file.
|