Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-05-01 | WindowServer+LibGUI: Wait for the extra_data to arrive. | Andreas Kling | |
Since the sockets we use are non-blocking, just slap a select before the second call to read(). This fixes some flakiness seen under load. This should eventually work a bit differently, we could use recv() once it has MSG_WAITALL, and we should not let WindowServer handle all the client connections on the main thread. But for now, this works. Fixes #24. | |||
2019-05-01 | WindowServer: Spawn a secondary thread to decode wallpapers. | Andreas Kling | |
The threading API's are not very mature, so this code looks a bit crufty but it does take the load off the WindowServer main thread when changing wallpapers. :^) | |||
2019-04-30 | WindowServer: Tweak window minimize button appearance. | Andreas Kling | |
2019-04-29 | WindowServer: Make WSMenu wide enough that shortcuts are always rightmost. | Andreas Kling | |
2019-04-28 | WindowServer: Add 1280x720 resolution to the system menu. | Andreas Kling | |
2019-04-26 | LibGUI+WindowServer: Make it possible to have checkable GActions. | Andreas Kling | |
They show up as checkable GButtons in GToolBar, and with (or without) check marks in menus. There are a bunch of places to make use of this. This patch only takes advantage of it in the FileManager for the view type actions. | |||
2019-04-25 | WindowServer: Ignore title change notifications for non-normal windows. | Andreas Kling | |
2019-04-23 | WindowServer+TaskBar: Add a taskbar window button popup menu. | Andreas Kling | |
This patch only hooks up the minimize and unminimize actions. | |||
2019-04-23 | WindowServer: Add some padding to the window switcher items. | Andreas Kling | |
2019-04-23 | WindowServer: Remove debug spam about activating non-normal windows. | Andreas Kling | |
2019-04-23 | Do a pass of compiler warning fixes. | Andreas Kling | |
This is really making me question not using 64-bit integers more. | |||
2019-04-23 | WindowServer: WSButton should be more discerning with MouseUp/MouseMove. | Andreas Kling | |
2019-04-22 | WindowServer+LibGUI: Allow arbitrary number of rects in messages. | Andreas Kling | |
To get truly atomic updates, add a mechanism for passing arbitrary amounts of extra data along with WindowServer messages. This allows us to pass all the rects in a single message. | |||
2019-04-21 | WindowServer: Limit paint request rects to the visible window rect. | Andreas Kling | |
Don't send unnecessarily large paint requests to clients. This avoids some unnecessary work and fixes choppiness when dragging widgets outside the visible part of a VisualBuilder form. | |||
2019-04-21 | Include Makefile.common in all other Makefiles. | Andreas Kling | |
2019-04-20 | WindowServer+LibGUI: Coalesce multiple client paints into GMultiPaintEvents. | Andreas Kling | |
This allows GWindow to paint up to 32 separate rects before telling the WindowServer to flip the buffers. Quite a bit smoother. :^) | |||
2019-04-20 | WindowSerer+LibGUI: Send multiple rects in invalidation/flush messages. | Andreas Kling | |
This patch moves to sending up to 32 rects at a time when coordinating the painting between WindowServer and its clients. Rects are also merged into a minimal DisjointRectSet on the server side before painting. Interactive resize looks a lot better after this change, since we can usually do all the repainting needed in one go. | |||
2019-04-20 | WindowServer: Introduce a WM event mask so Taskbar can ignore window rects. | Andreas Kling | |
Taskbar was waking up to do nothing every time a window rect changed. | |||
2019-04-20 | AK: Add String::copy(BufferType) helper. | Andreas Kling | |
This will create a String from any BufferType that has data() and size(). | |||
2019-04-20 | Get rid of SERENITY macro since the compiler already defines __serenity__ | Andreas Kling | |
This makes it a bit easier to use AK templates out-of-tree. | |||
2019-04-20 | WindowServer: Fix minor header dependency issue. | Andreas Kling | |
2019-04-18 | WindowServer: Improve the look of menu separators. | Andreas Kling | |
2019-04-18 | WindowServer: Broadcast window icons to newly joined WM listener clients. | Andreas Kling | |
2019-04-18 | ProcessManager+WindowServer: Do a little less malloc() in CPU monitor code. | Andreas Kling | |
2019-04-18 | WindowServer: Tweak window icon placement again. | Andreas Kling | |
2019-04-18 | WindowServer: Make window title bars slightly thicker. :^) | Andreas Kling | |
2019-04-18 | WindowServer: Generate a separate WM event for window icon changes. | Andreas Kling | |
2019-04-18 | WindowServer: Use CFile in the CPU monitor code. | Andreas Kling | |
2019-04-17 | WindowServer: Mouse switching between system menu and app menu was broken. | Andreas Kling | |
2019-04-16 | WindowServer: Tweak window icon placement. | Andreas Kling | |
2019-04-16 | WindowServer: Improve the look of menus. | Andreas Kling | |
This patch makes menus stand out a bit more from their background by using the same kind of shading that Windows 2000 had. | |||
2019-04-16 | WindowServer: Don't waste time pre-filling windows with background color. | Andreas Kling | |
There's a subsequent pass that fills whatever the backing store didn't cover anyway, just a few lines later. This was all wasted work. | |||
2019-04-16 | Make better use of geometry class helpers in some places. | Andreas Kling | |
2019-04-15 | WindowServer: Let the CPU monitor keep /proc/all open between refreshes. | Andreas Kling | |
Just seek to the beginning on every iteration and start over. This avoids a bunch of syscalls. | |||
2019-04-14 | LibCore: Add a convenience constructor for CTimer. | Andreas Kling | |
new CTimer(250, [] { thing_to_do_every_250_msec(); }); | |||
2019-04-14 | WindowServer: Simplify a few things in WSEventLoop. | Andreas Kling | |
2019-04-14 | WindowServer: Rename WSMessage* => WSEvent*. | Andreas Kling | |
Since I'm on a roll here, I'll just rename WSMessageFoo to WSEventFoo now that these inherit from CEventFoo anyway. | |||
2019-04-14 | WindowServer: Port WindowServer to LibCore. | Andreas Kling | |
This was pretty straightforward thanks to the work I did separating out LibCore from LibGUI already. :^) - WSMessageLoop now inherits from CEventLoop. - WSMessage now inherits from CEvent. - WSMessageReceiver goes away. Now there is only one event loop in Serenity. Very nice! | |||
2019-04-14 | WindowServer: Move the CPU monitor thingy to its own class. | Andreas Kling | |
2019-04-14 | AK: Improve smart pointer ergonomics a bit. | Andreas Kling | |
2019-04-14 | WindowServer: Make menu windows inherently modal. | Andreas Kling | |
It was confusing that you could interact with other windows with a menu up. | |||
2019-04-14 | LibGUI+WindowServer: Add a way to dismiss opened menus from the client. | Andreas Kling | |
2019-04-13 | WindowServer+LibGUI: Add ability to set per-window icons. | Andreas Kling | |
The icons are passed around as filesystem paths for now, since the shared memory bitmaps only support 2 sides. | |||
2019-04-12 | LibGUI+WindowServer: Add support for per-GWidget context menus. | Andreas Kling | |
You can now simply assign a GMenu as a GWidget's context menu and it will automagically pop up on right click. :^) | |||
2019-04-12 | LibGUI+WindowServer: Add support for enabled/disabled actions. | Andreas Kling | |
The enabled state of a GAction now propagates both to any toolbar buttons and any menu items linked to the action. Toolbar buttons are painted in a grayed out style when disabled. Menu items are gray when disabled. :^) | |||
2019-04-11 | WindowServer: Tweak window title positioning. | Andreas Kling | |
2019-04-11 | WindowServer: Add 1440x900 resolution shortcut to system menu. | Andreas Kling | |
2019-04-10 | Introduce LibCore and move GElapsedTimer => CElapsedTimer. | Andreas Kling | |
I need a layer somewhere between AK (usable both by userspace and kernel) and LibGUI (usable by userspace except WindowServer.) So here's LibCore. | |||
2019-04-10 | WindowServer: Stop tracking whether clients have painted since last resize. | Andreas Kling | |
This optimization is no longer needed now that clients coalesce resizes on their own. :^) | |||
2019-04-10 | LibGUI+WindowServer: Coalesce paints and resizes on the client side. | Andreas Kling | |
Only process paint and resize events on the GUI client side if those events have the latest up-to-date window size. This drastically reduces async overdraw during interactive resize. |