1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 05:05:07 +00:00
Commit graph

492 commits

Author SHA1 Message Date
Marcus Nilsson
72a5347f91 LibGUI: Pass path to FileSystemModel when creating FilePicker
This saves a few lstat lookups since otherwise '/' is indexed before
set_path() is called. It also cleans up warnings if '/' is not
unveiled when opening FilePicker, like in WidgetGallery.
2021-07-18 00:55:04 +02:00
Matthew Hall
3b5b7c5e65 VimEditingEngine: Add support for repeats of J 2021-07-15 10:10:07 +02:00
Matthew Hall
2653ad36ee VimEditingEngine: Add support for repeats of p and P 2021-07-15 10:10:07 +02:00
Matthew Hall
7b7548ce9d VimEditingEngine: Allow repeats for dd, yy and x 2021-07-15 10:10:07 +02:00
Matthew Hall
c1e2710a0d VimEditingEngine: Add P command to put before cursor 2021-07-15 10:10:07 +02:00
Matthew Hall
180e2469af VimEditingEngine: Add J command to join two lines 2021-07-15 10:10:07 +02:00
Matthew Hall
a7e7f62d08 VimEditingEngine: Operate on real lines rather than wrapped ones
In the normal editing engine keys like Home, End etc work on visual
lines, but vim operates on real ones. Eg if you have a really long line
and wrapping is on then in normal editing Home would take you to the
beginning of the wrapped line, but 'I' would put you insert mode at the
beginning of the real line in vim.
2021-07-15 10:10:07 +02:00
jakubiakdev
4a396dc7e8 Base+LibGUI: Add icon to the Rename action 2021-07-14 13:05:01 +02:00
LuK1337
62c5a5351c LibGUI: Handle KeyDown when checking for Key_Escape in Dialog too
This makes 'escaping' the dialogs seem bit faster :^)
It also follows what RunWindow and probably others do.
2021-07-13 23:23:49 +02:00
Karol Kosek
5c89305fc6 LibGUI: Don't clear textbox on save mode in FilePicker
This fixes a rather frustrating issue during saving a file,
when clicking on a folder (to change the path of saved file)
caused the filename to disappear from the text box.
2021-07-13 21:16:44 +02:00
Karol Kosek
886e011608 LibGUI: Add Rename action 2021-07-13 17:54:37 +02:00
Ariel Don
5140994c69 LibGUI: Select radio buttons with keyboard 2021-07-13 07:11:47 +02:00
Karol Kosek
f99507bf02 LibGUI: Ignore drop events by default
Before this change, parent widgets such as Buttons or Labels
were stealing drop events their parents.

I noticed it during drag-n-dropping files into visualization widgets
in Sound Player (which takes practically the entire application size
and gave impression that drop events weren't supported in the app
at all).
2021-07-12 15:59:33 +02:00
LuK1337
d940f7ba4f LibGUI: Use wrapped text rect for paint invalidation
This fixes an issue where after anything past first line would not get
invalidated after unhovering an icon.
2021-07-12 15:59:16 +02:00
LuK1337
8992271c5c LibGUI: Redraw widgets when default font changes 2021-07-12 11:08:09 +02:00
LuK1337
b40d771512 LibGUI: Add FontsChanged event and deliver it to windows and widgets 2021-07-12 11:08:09 +02:00
Jelle Raaijmakers
0f35912bd7 TableView: Do not select input on keydown
In the Spreadsheet app, selecting a cell and typing something (like
"1") would create an empty editing delegate, set "1" as its value and
immediately select the entire contents of the text box. If your goal
was to type "123", that "1" was selected and will be replaced by "23".

This changes the behavior of TableView to not select the editing
delegate's contents if its creation was a result of a keydown event.
2021-07-11 22:07:57 +02:00
Andreas Kling
b368560800 LibGUI: Only repaint the affected indices on AbstractView item hover
Previously, moving the cursor over items in an item view would cause it
to repaint itself completely. Now we only repaint the two affected
items (the old hovered item and the new hovered item.)
2021-07-10 18:30:46 +02:00
Andreas Kling
df96380121 LibGUI: Tighten paint invalidation rects in item views :^)
AbstractView now has a paint_invalidation_rect(index) function that
subclasses can override to provide a tighter invalidation rect for
an index.
2021-07-10 18:30:46 +02:00
Andreas Kling
148e72bfa0 LibGUI: Add AbstractView::editing_rect() to allow custom editing rects
This allows view classes to customize the editing rect for an index.
2021-07-10 18:30:46 +02:00
Timothy
73226a2861 LibGUI: Convert TextEditor to east-const style 2021-07-10 15:33:46 +02:00
Timothy
73ae5200a9 TextEditor+LibGUI: Use unveil and FileSystemAccessServer
Making use of the new FileSystemAccessServer we are able to use
unveil without restricting our ability to open and save files.
A file argument will be unveiled automatically however all other files
require user action via the FileSystemAccessServer to gain access.
2021-07-10 15:33:46 +02:00
networkException
2e4be5e98c LibGUI: Rename "to_gmousebutton" => "to_mouse_button" 2021-07-10 09:31:01 +02:00
Andreas Kling
f4a318ee2d LibGUI: Only repaint grabbable part of Splitter when hovered/unhovered
Before this change, we would repaint the Splitter and all of its split
children when hovering over it. Now we only repaint the grabbable part.
2021-07-10 01:40:51 +02:00
LuK1337
5e1e67277b LibGUI: Remove left margin on MessageBox text when icon is unset
It looks better when text is properly centered.
2021-07-09 23:36:34 +02:00
LuK1337
f234c416af LibGUI: Handle TTF size selection changes in font picker properly
This patch addresses the following issues:
- size resetting to 1 when switching from bitmap font size 10 to TTF
- size resetting to 1 when incrementing spinbox from 8 to 9
- selection mode not being set on m_size_list_view selection change
2021-07-09 18:15:05 +02:00
Aziz Berkay Yesilyurt
6f594b36f5 LibGUI: Verify m_window_id is not-zero in set_maximized
Window::set_maximized requires non-zero window id to be a valid call,
i.e. calling Window::show beforehand. A verify statement before the
server call can help developers by hinting correct usage.
2021-07-09 13:32:30 +04:30
Ali Mohammad Pur
0459a111b2 Revert "Userland: Add ability to screenshot rectangular region in shot (#8515)"
This reverts commit 1c06d77262.
This was squashed by mistake, the rebased version will follow.
2021-07-09 13:27:56 +04:30
Aziz Berkay Yesilyurt
1c06d77262
Userland: Add ability to screenshot rectangular region in shot (#8515)
* LibGUI: Verify m_window_id is not-zero in set_maximized

Window::set_maximized requires non-zero window id to be a valid call,
i.e. calling Window::show beforehand. A verify statement before the
server call can help developers by hinting correct usage.

* LibGUI: Paint background when the fullscreen window is transparent

The windows in the background are ignored when the window is fullscreen.
However, we still would like to see the background if that window is
transparent.

* Userland: Add ability to capture rectangular region in shot

A click and drag selectable, transparent, fullscreen window is
displayed with the command line argument -r for screenshots.
2021-07-09 13:11:24 +04:30
Daniel Bertalan
98a9a1d7f9 Everywhere: Add break after the last case label before default
We already do this in most places, so the style should be consistent.
Also, Clang does not like it, as this could cause an unexpected compile
error if some statements are added to the default label or a new label
is added above it.
2021-07-08 10:11:00 +02:00
Daniel Bertalan
714bd011e1 Everywhere: Use the correct literal suffixes
When performing arithmetic with long doubles/floats, we want to avoid
floating point promotion and narrowing.
2021-07-08 10:11:00 +02:00
Andreas Kling
c0e20252da LibGUI: Don't repaint disabled scrollbars when mousing over them 2021-07-07 23:57:21 +02:00
Andreas Kling
86d0145260 LibGfx+LibGUI+WindowServer: Use move() on Core::AnonymousBuffer more 2021-07-07 18:02:43 +02:00
Andreas Kling
e0986c2766 LibGUI: Fix some clang-tidy warnings in Window.cpp 2021-07-07 18:02:43 +02:00
Andreas Kling
d66dab2d41 LibGUI: Remove spammy debug message from ColumnsView 2021-07-07 18:02:43 +02:00
networkException
3fce0e58e5 LibGUI: Use east const style in InputBox.{cpp,h} 2021-07-07 15:29:03 +02:00
networkException
72776b2f61 LibGUI: Allow InputBox to show placeholder
If passed as an argument, showing an InputBox now supports to
set a placeholder text which will be shown in its TextBox.
2021-07-07 15:29:03 +02:00
networkException
f8798c154b LibGUI: Draw the placeholder of a TextEditor also when it is focused
Previously focusing a TextEditor would cause the placeholder to
disapper. This is unpractical editors that get focused automatically
for example.
2021-07-07 15:29:03 +02:00
Andreas Kling
b7e551b164 LibGUI: Make Widget ignore paint events that don't intersect it
LibGUI widgets fully contain their child widgets, so there's no pass
the paint event on to our children if we get a paint event that doesn't
intersect with our rect.

While Gfx::Painter was already dutifully clipping out any attempts at
painting, this avoids even more pointless work.
2021-07-07 13:01:20 +02:00
LuK1337
f15ad9523d LibGUI: Fix go_upwards_instead check in ComboBox
This change addresses an issue where ComboBox list window would always
be drawn upwards if the number of elements is lower or equal 3.
2021-07-06 17:26:50 +02:00
Andreas Kling
27fecf57bd LibGUI: Don't fire visibility-tracking timers in non-visible widgets
We were already avoiding firing timers within non-visible *windows*.
This patch extends the mechanism to support timers within non-visible
*widgets*.
2021-07-05 20:03:31 +02:00
Andreas Kling
c2dfa9d54c WindowServer+LibGUI: Add a way to force a window to have a drop shadow 2021-07-04 23:15:17 +02:00
Andreas Kling
782a5c88ce WindowServer: Make most remaining WindowServer IPC calls async
The only remaining sync call from client to server is now the call
that switches a window's backing store. That one actually relies on
the synchronization to hand over ownership of the backing stores,
so it has to stay synchronous for now.
2021-07-04 23:15:16 +02:00
LuK1337
62d4b4abf3 LibGUI: Make tooltip height line count aware
Previously multiline was not handled properly thus in case of the
Network applet the tooltip would be drawn improperly.
2021-07-04 11:31:01 +02:00
Marcus Nilsson
2264de9921 LibGUI/TextEditor: Set cut and copy actions to disabled on init
We can presume that there is nothing to cut or copy on init since
nothing is selected yet.
2021-07-03 17:36:50 +02:00
Tom
7984c2836d WindowServer: Add API to change virtual desktop settings
This also adds the ability to query how many virtual desktops are
set up, and for the Taskbar to be notified when the active virtual
desktop has changed.
2021-07-03 12:27:23 +02:00
Timothy
944e5cfb35 Everywhere: Use IPC include syntax
Remove superfluous includes from IPCCompiler's generated output and
add include directives in IPC definitions where appropriate.
2021-07-03 12:16:00 +02:00
Spencer Dixon
00f93b2545 LibThreading: Add ability to cancel ongoing BackgroundActions
Handlers of the BackgroundAction are responsible for checking if the
action has been cancelled and returning early.
2021-07-02 16:47:14 +02:00
Sam Atkins
f5e63f785a FileManager: Remove clicked breadcrumbs for non-existing directories
This fixes #8204.

In the case that we just navigated up from a directory because it was
deleted, we can detect that easily by checking if the child directory
exists, and then remove the relevant breadcrumbs immediately.

However, it's harder to notice if a child directory for a breadcrumb
is deleted at another time. Previously, clicking that breadcrumb would
crash, but now we check to see if the directory it points to actually
exists. If it doesn't, we pop that breadcrumb and any after it, off
of the breadcrumbbar.

This may not be the ideal solution - maybe it should detect that the
directory is gone automatically - but it works and doesn't involve
managing additional directory watchers.
2021-07-01 17:15:26 +04:30
Sam Atkins
d8e0535116 LibGUI: Add search/removal methods to Breadcrumbbar
Both are used by FileManager in the next commit.

find_segment_with_data() was previously a single-use lambda in
FileManager, but making it a method of Breadcrumbbar means we can
re-use it more easily.
2021-07-01 17:15:26 +04:30