Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
The open menu stack is an internal data structure that outside classes
shouldn't really need to know about. Add MenuManager::has_open_menu()
so that the WindowManager can still know whether a menu is open or not.
|
|
We were failing to check if the current menu being set was already open.
This could result in multiple occurrences of the menu in the open menu stack.
When we close all menus descending from a menu we only delete the first
occurrence of a given menu from the menu stack (a fair assumption to make as
a menu should only be open once).
Because of this a menu (or multiple instances of it) could remain in the open
menu stack when it should actually be closed, leading to goofy behaviour.
Fixes #1238
|
|
|
|
|
|
We were not repainting windows that were occluded at the time of the
theme changing. This patch adds a way to bypass occlusion testing when
invalidating window rects.
Fixes #1249.
|
|
|
|
Since this device doesn't actually hand out raw PS/2 aux packets,
let's just call it "mouse" instead. :^)
|
|
|
|
This is no longer needed now that we have SystemMenu. :^)
|
|
Now that the system menu is out-of-process, we no longer need to exec()
from WindowServer, allowing us to drop this promise. Very cool!
|
|
This patch removes the internal system menu from WindowServer and
replaces it with two IPC API's:
SetSystemMenu(menu_id)
SetSystemTheme(theme_path, theme_name)
These API's will allow us to complete the SystemMenu program and
move it entirely out of process.
|
|
This class was too small and unnecessary.
|
|
Don't stack notifications on top of each other, instead put them below
one another on the y axis.
This will obviously break if the screen fills with notifications, but
that's a FIXME for now. :^)
|
|
This patch adds NotificationServer, which runs as the "notify" user
and provides an IPC API for desktop notifications.
LibGUI gains the GUI::Notification class for showing notifications.
NotificationServer is spawned on demand and will unspawn after
dimissing all visible notifications. :^)
Finally, this also comes with a small /bin/notify utility.
|
|
This allows RefPtr to be stored in a HashTable<RefPtr<T>> :^)
It's unfortunate about the const_casts. We'll need to fix HashMap::get
to play nice with non-const Traits<T>::PeekType at some point.
|
|
This is in preparation for running WindowServer as a separate user.
|
|
|
|
|
|
|
|
|
|
This patch adds <LibGfx/Forward.h> with forward declarations for Gfx.
|
|
This patch adds <LibCore/Forward.h> and uses it in various places to
shrink the header dependency graph.
|
|
You can now #include <AK/Forward.h> to get most of the AK types as
forward declarations.
Header dependency explosion is one of the main contributors to compile
times at the moment, so this is a step towards smaller include graphs.
|
|
This allows windows/widgets to learn when something is being dragged
over them. They can then repaint themselves somehow to indicate that
they are willing to accept a drop.
Currently this is piggybacking somewhat on the mouse event mechanism
in WindowServer. I'm not sure that's the best design but it seemed
easier to do it this way right now.
|
|
We will now send a redirect (301) if a directory listing is requested and the
request URL doesn't end with a slash character. This makes relative file URLs
that we generate in directory listings actually work as expected.
|
|
|
|
I left a FIXME in here about implementing URL encoding.
|
|
This exposed an issue with the unveil() implementation which currently
short-circuits path resolution for any path containing "/..". This will
cause the ".." entry to show up with a 1970-01-01 mtime for now. FIXME.
Also add some rulers and a nice little footer. :^)
|
|
If a directory does not have an index.html file, we will now generate
a directory listing HTML document for that directory on the fly. :^)
|
|
Shuffle around some menu related code from window manager into menu
manager. This still is not perfect, and results in a little more of the
window manager to be publically exposed - but this is another step
towards better seperation of concerns between menu and window manager.
We also move the mouse_event handling into a new function in menu manager
as event handling was beginning to become a bit chunky.
|
|
|
|
|
|
|
|
|
|
This gives a small but nice indication that the switcher window list
items are clickable. :^)
|
|
If the window switcher is up when a window is made frontmost (usually
by clicking on it), the window will now become the selected window in
the switcher.
This still has a slight feeling of "hmm" but is definitely better than
what we had before.
|
|
You can now switch between windows using your mouse to click them in
the window switcher. :^)
|
|
Whenever a new menu item is hovered through a up or down key press, we
should always end up hovering a valid item.
|
|
|
|
|
|
|
|
Move applet logic to the own class. Remove applet code from MenuManager.
With new AppletManager applet order is configurable via WindowManager.ini file.
|
|
Fixes #1200.
|
|
This makes it easier to observe the protocol in packet logs.
|
|
|
|
This server listens on port 8000 and serves HTML files from /www.
It's very simple and quite naive, but I think we can start here and
build our way to something pretty neat.
Work towards #792.
|
|
Now, we have UserName applet.
|