summaryrefslogtreecommitdiff
path: root/WindowServer/WSAPITypes.h
AgeCommit message (Collapse)Author
2019-03-20Move WindowServer into Servers.Andreas Kling
2019-03-19WindowServer: Add special treatment for modal windows.Andreas Kling
While a WSClientConnection has a modal window showing, non-modal windows belonging to that client are not sent any events.
2019-03-19LibGUI: Implement nested event loops to support dialog boxes.Andreas Kling
This patch adds a simple GMessageBox that can run in a nested event loop. Here's how you use it: GMessageBox box("Message text here", "Message window title"); int result = box.exec(); The next step is to make the WindowServer respect the modality flag of these windows and prevent interaction with other windows in the same process until the modal window has been closed.
2019-03-17Add client-side double buffering of window backing stores.Andreas Kling
This prevents flicker and looks rather good. The main downside is that resizing gets even more sluggish. That's the price we pay for now.
2019-03-08LibGUI+WindowServer: Implement drag-to-select behavior in GTextEditor.Andreas Kling
To make this feel right, I needed to start passing keyboard modifiers along with mouse events. That allows shift-clicking to extend the selection. :^)
2019-03-08WindowServer+LibGUI: Add a server-side clipboard.Andreas Kling
On the client side, use GClipboard's data() and set_data(String) to access the global clipboard. :^)
2019-03-02LibGUI+WindowServer: Add app-global keyboard shortcuts.Andreas Kling
This patch adds a GShortcut class. Each GAction can have a GShortcut which will cause the event loop to listen for that key combination app-globally and activate the event in case it's pressed. The shortcut will also be displayed when the action is added to a menu. Use this to hook up Alt+Up with the "open parent directory" action in the FileManager app. :^)
2019-02-26WindowServer+LibGUI: Send the window size along with Paint server messages.Andreas Kling
This way GWindow doesn't need to do synchronous IPC to fetch the appropriate size for the window's backing store. This is mostly only relevant during live resize.
2019-02-25More moving towards using signed types.Andreas Kling
I'm still feeling this out, but I am starting to like the general idea.
2019-02-21Add concept of size increments to windowing system.Andreas Kling
Use this to implement incremental resizing for Terminal so that we only ever resize to fit a perfect number of rows and columns. This is very nice. :^)
2019-02-20Rework the rendering model so that clients instantiate backing stores.Andreas Kling
This makes interactive resizing work a lot better, althought it's still not perfect. There are still glitches and unpleasant flashes of zeroed memory.
2019-02-20WindowServer: Support resizing windows.Andreas Kling
This is pretty limited and not entirely stable, but it does work! :^)
2019-02-20LibGUI: Implement enter/leave events (with WindowServer support.)Andreas Kling
Windows now learn when the mouse cursor leaves or enters them. Use this to implement GWidget::{enter,leave}_event() and use that to implement the CoolBar button effect. :^)
2019-02-19WindowServer: Support windows with alpha channels. And per-WSWindow opacity.Andreas Kling
This patch also adds a Format concept to GraphicsBitmap. For now there are only two formats: RGB32 and RGBA32. Windows with alpha channel have their backing stores created in the RGBA32 format. Use this to make Terminal windows semi-transparent for that comfy rice look. There is one problem here, in that window compositing overdraw incurs multiple passes of blending of the same pixels. This leads to a mismatch in opacity which is obviously not good. I will work on this in a later patch. The alpha blending is currently straight C++. It should be relatively easy to optimize this using SSE instructions. For now I'm just happy with the cute effect. :^)
2019-02-17Move WindowServer to userspace.Andreas Kling
This is a monster patch that required changing a whole bunch of things. There are performance and stability issues all over the place, but it works. Pretty cool, I have to admit :^)
2019-02-16Kernel: Add a simple shared memory API for two processes only.Andreas Kling
And use this to implement shared bitmaps between WindowServer and clients.
2019-02-15WindowServer: Rename GUI_Foo to WSAPI_Foo.Andreas Kling
2019-02-15Move WindowServer API types header into WindowServer/.Andreas Kling