Age | Commit message (Collapse) | Author |
|
|
|
Let's put the root directory up top so the buttons are in order of
directory specificity.
|
|
We now use the checked state of these buttons to indicate that you are
in that specific folder. The checked state is updated automagically
no matter how you navigate the file system. :^)
|
|
This patch adds a handy set of buttons on the left hand side that can
take you to common locations such as:
- Your home directory
- Your desktop directory
- The root directory
|
|
When a button has a menu, it opens the menu on mousedown and the
menu gains input focus immediately. While the menu is open, the
button is painted in a pressed state.
|
|
This will allow clients to react to these events.
|
|
Fixes #6141. Allows to copy "backward" selections.
|
|
This API felt backwards, so let's change it.
|
|
Many apps want a "Properties" action with the same icon and shortcut.
|
|
|
|
|
|
Having to rely on GUI::Desktop's on_rect_change is quite limiting and a
bit awkward (continuing to use it would mean having to setup the
callback in every application using a webview) - we need a better way of
letting widgets know of a screen rect change automatically.
The specific use case will be IPWV/OOPWV which need to keep track of the
screen rect and notify the WebContent service of any change (which on
its own deliberately can't interact with WindowServer at all).
It'll also be useful for notification windows and the taskbar, which
currently both rely on the GUI::Desktop callback but will now be able to
listen and react to the event themselves.
|
|
Fixes #6079.
|
|
While space distribution along the primary axis of a BoxLayout is
pretty sophisticated, the secondary axis is very simple: we simply
center the widget.
However, this doesn't always look very nice if we don't take margins
into account, so make sure we subtract them from the rect we do all
the centering within.
|
|
Fixes selected dates and today's date not painting correctly when
viewed from adjacent months
|
|
Fixes incorrect painting with variable thickness and cuts down
on some layout boilerplate.
|
|
Since applet windows live in the applet area window, the AppletManager
has to keep track of which applet is hovered and send the appropriate
enter/leave events to the applet windows.
This makes applet tooltips work again. :^)
|
|
WindowServer now collects applet windows into an "applet area" which is
really just a window that a WM (window management) client can position
via IPC.
This is rather hackish, and I think we should come up with a better
architecture eventually, but this brings back the missing applets since
the global menu where they used to live is gone.
|
|
Previously, when jumping to the next word on the last column of a line,
or when jumping to the previous word on the first column, it would
crash. This checks if that is the case, and if so, will do nothing.
|
|
And overhaul resize and paint events to fix layout edge cases in
which Calendar wasn't filling its parent widget completely. Ensures
month views always display prior month days for click navigation.
Converts Calendar app layout to GML.
|
|
Fixes wrapped text candidates not first eliding
|
|
Having the same enum in two places was annoying. Let's just "using"
the WindowServer::WindowType enum into the GUI namespace.
|
|
This is particularly useful when wanting to open files in ~/.config
from the Text Editor. The option is currently not persistent, but could
be hooked into File Manager's configuration.
|
|
|
|
You can now specify the font, font_size, font_weight
and font_type (fixed_width/normal) through GML
|
|
This simplifies GML syntax when the object doesn't have
any childs or properties
|
|
While iterating the items contained by the rubberband we need to skip
the correct number of items either vertically or horizontally, depending
on which direction the items flow.
Fixes #5993
|
|
|
|
|
|
This is the case for symlinks that point to themselves, for example -
previously the returned icon would be empty.
Fixes #5978.
Fixes #5979.
|
|
The size is visible only in TableView mode of the filemanager.
|
|
|
|
This leaves menu applets running but invisible, and that's a regression
we need to take care of obviously. But not today, because it's getting
too late.
|
|
This is the space between the icon and the text on buttons that have
both icon and text.
|
|
|
|
This patch begins the transition away from the global menu towards
per-window menus instead.
The global menu looks neat, but has always felt clunky, and there
are a number of usability problems with it, especially in programs
with multiple windows.
You can now call GUI::Window::set_menubar() to add a menubar to
your window. It will be specific to that one window only.
|
|
Just exposing the menubar ID on the WindowServer side.
|
|
|
|
|
|
Since input events may trigger window portions to be invalidated,
rather than making a round trip to WindowServer to get paint events
we can simply fake an immediate paint event and update the window
contents more quickly.
Improves #5881
|
|
|
|
|
|
When the notification was closed, the connection was kept around. This
caused the core event loop to take up nearly all CPU, so instead of
checking the connection we clear it on close and add state variables
to check state.
|
|
With this RefPtr, we can initialize the connection to the
NotificationServer upon showing the notification. With this, we can
prevent double shows and updates or closes before showing.
|
|
This commit puts all of the remaining pieces in place. This adds a
mechanism to update the text, title, and icon of an image. If an image
is not provided, the default ladybug will be shown.
|
|
If a notification was closed, the connection will now be dead. To
prevent inconsistencies between when a user closes a notification and
when an application closes an applicated, check if the notification has
been closed before allowing any action.
|
|
Closing a notification will now allow it to be shown again, as
m_showing being false means it can be re-shown.
|
|
In order to allow notifications to be updated, we will create a persistent connection for the lifetime of the notification.
|
|
This makes it possible to use it as a model for e.g. TableViews.
|
|
|