Andreas Kling
c4703bedea
WindowServer: Get rid of the WSWindow lock now that accesses are serial.
2019-02-14 10:35:56 +01:00
Andreas Kling
aa7947c889
WindowServer: Add WSClientConnection class to manage an individual client.
...
This makes both object lifetimes and object ID's a lot easier to understand.
2019-02-14 08:22:47 +01:00
Andreas Kling
732f273949
WindowServer: Switch menubar based on the currently active window.
2019-02-13 00:19:21 +01:00
Andreas Kling
c61f9eba61
WindowServer: Add a WSWindowType enum.
...
So far there's only Normal and Menu. Maybe we'll need more later.
2019-02-12 11:53:45 +01:00
Andreas Kling
443b043b49
WindowServer: Start implementing a menu system.
...
I'm going with a global top-of-the-screen menu instead of per-window menus.
The basic idea is that menus will live in the WindowServer and clients can
create menus via WindowServer requests.
2019-02-11 09:47:10 +01:00
Andreas Kling
0c38a4c30f
WindowServer: Sever the WSWindow/Process link when the process dies.
...
This fixes a deadlock where the WindowServer would get stuck trying to
acquire a dead process's event stream lock.
2019-02-05 08:32:32 +01:00
Andreas Kling
069d21ed7f
Make buttons unpress when the cursor leaves the button rect.
...
Implement this functionality by adding global cursor tracking.
It's currently only possible for one GWidget per GWindow to track the cursor.
2019-01-27 08:48:34 +01:00
Andreas Kling
244d5bcce1
WindowServer: More event -> message renaming.
2019-01-26 05:35:45 +01:00
Andreas Kling
bba21adae3
WindowServer: Rename WSEvent to WSMessage.
...
Also do the same for WSMessageLoop and WSMessageReceiver. More to come.
2019-01-26 05:28:02 +01:00
Andreas Kling
86eae0f8df
Let userland retain the window backing store while drawing into it.
...
To start painting, call:
gui$get_window_backing_store()
Then finish up with:
gui$release_window_backing_store()
Process will retain the underlying GraphicsBitmap behind the scenes.
This fixes racing between the WindowServer and GUI clients.
This patch also adds a WSWindowLocker that is exactly what it sounds like.
2019-01-24 23:44:19 +01:00
Andreas Kling
291922b1af
WindowServer: Show PID and window ID in title bars for now.
...
This is useful for debugging since I'm often wondering which process some
window belongs to (and what the window ID is.)
2019-01-21 02:43:38 +01:00
Andreas Kling
7e5b81fe48
Make a SharedGraphics directory for classes shared between Kernel and LibGUI.
2019-01-19 23:22:46 +01:00
Andreas Kling
f7ca6d254d
Tear out or duplicate what's unique for WindowServer from Widgets.
...
This turned into a huge refactoring that somehow also includes
making locks recursive/reentrant.
2019-01-16 16:03:50 +01:00