1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 04:04:58 +00:00
Commit graph

108 commits

Author SHA1 Message Date
Andreas Kling
dff70021ab Make it possible to invalidate only a portion of a window.
Use this in Terminal to only invalidate rows where anything changed.
2019-01-18 04:37:49 +01:00
Andreas Kling
dad58db757 Add WindowActivated and WindowDeactivated events.
Use this to implement different looking Terminal cursors depending on
the window active state.
2019-01-17 17:38:04 +01:00
Andreas Kling
133f9aa352 WindowServer: Slap everything with locks. 2019-01-17 16:21:04 +01:00
Andreas Kling
61bba1b9dd WindowServer: Skip blitting windows into the back buffer if possible.
Windows that don't intersect any of the dirty rects don't need to be copied
into the back buffer since they won't be affected by the subsequent flushes.
2019-01-16 20:21:44 +01:00
Andreas Kling
b6c3df5188 Optimize Painter::draw_rect() a bit.
Reorganize the loops to make it go fast. The draw_rect() part of painting
window frames is now ~2.65x faster.
2019-01-16 20:21:41 +01:00
Andreas Kling
7750e6952b Move some more classes to the new coding style. 2019-01-16 17:57:58 +01:00
Andreas Kling
a2ec09bc20 Allow the scheduler to unblock the current process.
It's a bit confusing that the "current" process is not actually running
while we're inside the scheduler. Perhaps the scheduler should redirect
"current" to its own dummy Process. I'm not sure.

Regardless, this patch improves responsiveness by allowing the scheduler
to unblock a process right after it calls select() in case it already has
a pending wakeup request.
2019-01-16 17:47:18 +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
Renamed from Widgets/WindowManager.cpp (Browse further)