summaryrefslogtreecommitdiff
path: root/Services/WindowServer
AgeCommit message (Collapse)Author
2020-06-05WindowServer: Make perror() strings slightly more detailed.Nico Weber
If one fails, it's now easier to see which one it is.
2020-06-03WindowsServer: Add scancode value to KeyEventHüseyin ASLITÜRK
2020-06-01WindowServer: Remove keyboard shortcut for toggling the system menuAndreas Kling
100% of the time I activated this shortcut, I did not want to activate this shortcut.
2020-05-30WindowServer+LibGUI: Add per-window progressAndreas Kling
Each window now has an associated progress integer that can be updated via the SetWindowProgress IPC call. This can be used by clients to indicate the progress of ongoing tasks. Any number in the range 0 through 100 indicate a progress percentage. Any other number means "no progress"
2020-05-26AK: Rename FileSystemPath -> LexicalPathSergey Bugaev
And move canonicalized_path() to a static method on LexicalPath. This is to make it clear that FileSystemPath/canonicalized_path() only perform *lexical* canonicalization.
2020-05-26Userland et al: Pledge sigaction when neededSergey Bugaev
* In some cases, we can first call sigaction()/signal(), then *not* pledge sigaction. * In other cases, we pledge sigaction at first, call sigaction()/signal() second, then pledge again, this time without sigaction. * In yet other cases, we keep the sigaction pledge. I suppose these could all be migrated to drop it or not pledge it at all, if somebody is interested in doing that.
2020-05-25WindowServer: Don't crash when minimizing EyesSergey Bugaev
Or any other window that globally tracks the mouse cursor.
2020-05-20LibGUI: Replace up and down arrows with emojiHüseyin ASLITÜRK
2020-05-20WindowServer: Remove WindowManager::invalidate(Window) API'sAndreas Kling
Instead, we now tell Windows to invalidate themselves. Window will then pass on the requests to Compositor. My basic idea here is that WindowManager should do window management, dealing with incoming events, moving, resizing, etc. Compositor should deal with painting the window stack in the right order with the least amount of effort. :^)
2020-05-20WindowServer: Move occlusion things from WindowManager to CompositorAndreas Kling
2020-05-19WindowServer: Always send mouse events to the full-screen windowAndreas Kling
Full-screen mode is pleasantly exclusive, so we only need to send the incoming mouse events to the active full-screen window. This fixes an issue where clicking on the area normally covered by the menubar while in full-screen mode would not send mouse events to the full-screen window.
2020-05-19WindowServer: Ignore overlap when compositing full-screen windowsAndreas Kling
Normally we walk the window stack to see if a given dirty rect is covered by an opaque window. When the active window is full-screened, we can skip this check and just unconditionally paint the window. This fixes an issue where windows with higher inherent z-order (like the taskbar and menu windows) would get cursor ghosting in them while a normal window was full-screened. Fixes #2289.
2020-05-18WindowServer: Rename WindowManager wm_config() to config()Shannon Booth
It looked a little silly with all of the callers saying wm.wm
2020-05-18WindowServer: Make some WindowManager member functions constShannon Booth
2020-05-18WindowServer: Remove uneeded const_casts for getting a submenuShannon Booth
2020-05-18WindowServer: Add const version of Menu::find_menu_by_id(int menu_id)Shannon Booth
It's a little sad having two diferent versions of this function, but I don't know of any better way to do it. This also gets rid of some const casts down the line.
2020-05-18WindowServer: Add const qualified version of MenuItem::submenu()Shannon Booth
2020-05-16LibIPC: Allow opt-in UTF-8 validation on message parametersAndreas Kling
You can now mark String message parameters with the [UTF8] attribute. This will cause the generated decoder to perform UTF-8 validation and reject the message if the given parameter is not a valid UTF-8 string. This frees up the receiving side from having to do this validation at a higher level.
2020-05-16LibGUI+WindowServer: Allow applications to set custom cursor bitmapsShannon Booth
This will allow e.g PaintBrush to use custom cursors for each tool.
2020-05-14Clipboard: Move the system clipboard to a dedicated service process :^)Andreas Kling
This commit moves the clipboard from WindowServer into a new Clipboard service program. Clipboard runs as the unprivileged "clipboard" user and with a much tighter pledge than WindowServer. To keep things working as before, all GUI::Application users now make a connection to Clipboard after making the connection to WindowServer. It could be interesting to connect to Clipboard on demand, but right now that would necessitate expanding every GUI app's pledge to include "unix" and also unveiling the clipboard portal, which I prefer not to.
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-13WindowServer: Invalidate the cursor when setting an override cursorDexesTTP
2020-05-13LibGUI+WindowServer: Allow apps to use the "move" cursor :^)Andreas Kling
2020-05-10WindowServer: Shade the bottom of the menu bar like a buttonAndreas Kling
This adds a row of secondary (darker) shade to the menubar, giving it a more buttonish look to match the highlight added to the Taskbar. :^)
2020-05-10WindowServer: Add 2px of tasteful space above maximized windowsAndreas Kling
This makes the visual interaction between the menu bar and the window a lot less janky looking.
2020-05-10WindowServer: Add basic search functionality in menusShannon Booth
Perform a case insensitive search through the current menu. Jump to the first item matching all keys in the current search. Backspace can clear the current search, and the search will timeout after 3 seconds.
2020-05-10WindowServer: Rework and simplify Menu event handlingShannon Booth
The menu manager will now send events directly to the current menu. Previously if a menu was opened it would always be set as the current menu. Now when opening a menu you can optionally say that you do not want to have it as the current menu. One scenerio when this happens is when a menu is popped up as part of a preview, for example, when hovering over a menu item that is a submenu. Sending the event to the current menu simplifies things and solves a few inconsistencies in bevhaviour (such as hovering over a submenu, but key events not being sent to the submenu).
2020-05-10WindowServer: Remove stray semicolonShannon Booth
2020-05-09WindowServer: Cancel any ongoing input tracking when a menu pops upAndreas Kling
When the user opens a context menu by right-clicking on something, we now immediately stop sending mouse events to whoever was doing active input window tracking before. There are probably more situations where we should do this, and maybe there's also a more generic way to express it, but this works for now.
2020-05-08Services: Renamed from ServersAndreas Kling
It didn't feel right to have a "DHCPClient" in a "Servers" directory. Rename this to Services to better reflect the type of programs we'll be putting in there.