summaryrefslogtreecommitdiff
path: root/WindowServer/WSWindowManager.cpp
AgeCommit message (Collapse)Author
2019-03-20Move WindowServer into Servers.Andreas Kling
2019-03-19WindowServer: Don't allow Logo+RMB to resize blocked-by-modal windows.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-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-14WindowServer: Fix crash when initiating resize from a window edge.Andreas Kling
2019-03-10WindowServer: Show the username of the WindowServer owner in the menu.Andreas Kling
2019-03-10WindowServer: Window iteration should see the highlight window "in front".Andreas Kling
2019-03-10WindowServer: Tweak CPU usage history color.Andreas Kling
2019-03-10WindowServer: Fix bug where window content could bleed through menus.Andreas Kling
We have to iterate using for_each_visible_window_from_back_to_front() if we want every window in the correct order.
2019-03-09WindowServer: Skip composing windows where entire dirty rect is covered.Andreas Kling
If another window is currently in front of us and is fully opaque, we can just skip to the next window. This avoids a whole lot of painting with overlapping windows. :^)
2019-03-09SharedGraphics: Allow passing a Font to text drawing functions.Andreas Kling
This way we don't have to juggle around with calls to Painter::set_font() which simplifies a bunch of places.
2019-03-09WindowServer: Initiating a window drag/resize should also make frontmost.Andreas Kling
2019-03-09WindowServer: Always clip window updates to the window's outer rect.Andreas Kling
2019-03-09SharedGraphics: Add PainterStateSaver RAII helper and Point::operator-().Andreas Kling
Two little things to help tidy up a bit in WSWindowManager.
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: Fix slightly off alignment of menubar clock.Andreas Kling
2019-03-07Base+WindowServer: Add a new default wallpaper for fun.Andreas Kling
2019-03-06WindowServer: Add window icons. Every window has the same icon for now.Andreas Kling
The icons show up both in the title bars and in the window switcher. Eventually I'd like to be able to minimize to icon, and maybe even have myself a taskbar.
2019-03-06WindowServer: Only the left mouse button should initiate window drag.Andreas Kling
2019-03-06WindowServer: Tweak appearance of window close buttons.Andreas Kling
2019-03-06WindowServer: Use the right font for computing titlebar text rects.Andreas Kling
2019-03-06More work on the variable-width font support.Andreas Kling
Katica is now the default system font, and it looks quite nice. :^) I'm gonna need to refine the GTextBox movement stuff eventually, but it works well-enough for basic editing now.
2019-03-06Make a preparation pass for variable-width fonts.Andreas Kling
2019-03-06WindowServer: Let the window switcher render itself as a WSWindow.Andreas Kling
Much better than drawing directly into the back buffer.
2019-03-05WindowServer: Store the mouse button state in one variable.Andreas Kling
This makes the logic around it a lot less verbose.
2019-03-04WindowServer: Determine resizing "hot corner" based on window's outer rect.Andreas Kling
2019-03-03WindowServer: Add a window switcher.Andreas Kling
This needs some work on the window ordering and things like that, but it works quite nicely as a starting point. The keyboard shortcut is Logo+Tab. :^)
2019-03-03WindowManager: Allow moving windows around using Logo+LMB.Andreas Kling
2019-03-03Detect the "Logo" (Windows/Apple/whatever) key and use it for window resize.Andreas Kling
This will be comfortable enough while I'm still developing with emulators. QEMU keeps eating my "Alt" key presses and it's making things difficult.
2019-03-01Put miscellaneous debug spam behind #ifdefs.Andreas Kling
2019-03-01Base: Add Csilla Bold 7x10 variant.Andreas Kling
It's nice to have a thin and a bold variant to complement each other.
2019-02-28SharedGraphics: Make Painter clipping work with translated clip origin.Andreas Kling
2019-02-28WindowServer: Add "Open ProcessManager..." to system menu.Andreas Kling
This will no doubt come in handy. :^)
2019-02-26WindowServer: Add 1920x1080 resolution option.Andreas Kling
Because it's fun to go fullscreen on my development machine. :^)
2019-02-26WindowServer: Reduce resize related debug spam.Andreas Kling
2019-02-26WindowServer: Bump height of window titlebars and menus from 16 to 18.Andreas Kling
2019-02-26WindowServer+LibGUI: Fix global mouse tracking with recursive widget trees.Andreas Kling
Also avoid sending multiple copies of mouse events to global trackers.
2019-02-26WindowServer: Add a simple CPU usage graph to the global menu bar.Andreas Kling
This is pretty cute and helps me spot when something's chewing up CPU.
2019-02-26WindowServer: Only invalidate the menubar rect when an app changes menubar.Andreas Kling
2019-02-26WindowServer: Make message receivers be weak pointers.Andreas Kling
2019-02-25Convert more RetainPtr use to Retained.Andreas Kling
2019-02-21WindowServer: Choose resizing direction based on where it's initiated.Andreas Kling
Divide the window into 3x3 hot areas and resize in the direction of the corner where the resize starts. The middle is a no-op area. This needs some polish but the basic mechanism is good.
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: Don't spam clients with resize events.Andreas Kling
Wait for them to finish a paint, then send them a new resize event. The exception is when releasing the mouse button to end the resize. Then we send a new resize event right away.
2019-02-20WindowServer: Support resizing windows.Andreas Kling
This is pretty limited and not entirely stable, but it does work! :^)
2019-02-20WindowServer: Minor style tweak.Andreas Kling
2019-02-20WindowServer: Remove some unused WSWindowManager members.Andreas Kling
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: Only invalidate the menubar rect when switching menubars.Andreas Kling