Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-01-16 | Tear out or duplicate what's unique for WindowServer from Widgets. | Andreas Kling | |
This turned into a huge refactoring that somehow also includes making locks recursive/reentrant. | |||
2019-01-16 | Window: Update coding style. | Andreas Kling | |
2019-01-14 | Build Painter & friends into LibC. Use it in the GUI test app. | Andreas Kling | |
2019-01-14 | So long SDL stuff. You were a nice bootstrapping environment. | Andreas Kling | |
2019-01-13 | Keep back and front painters around in WindowManager. | Andreas Kling | |
The internal state never changes in some meaningful way for these (at this time.) | |||
2019-01-13 | Flush the old and new cursor rects in a single rect. | Andreas Kling | |
2019-01-13 | Make a nice bitmap cursor. | Andreas Kling | |
It's rendered as two CharacterBitmaps right now because I don't have a good primitive for this and I wanted it right away. I should add 2-color bitmaps.. Also make a neat little effect where the cursor becomes inverted on press. | |||
2019-01-13 | Make GraphicsBitmaps be Region-backed when running in the kernel. | Andreas Kling | |
This is a lot better than having them in kmalloc memory. I'm gonna need a way to keep track of which process owns which bitmap eventually, maybe through some sort of resource keying system. We'll see. | |||
2019-01-13 | Have WindowManager::invalidate() unite dirty rects that intersect each other. | Andreas Kling | |
This is kinda primitive but it avoids double-draw when slowly dragging stuff. | |||
2019-01-12 | Optimize WindowManager::flush() with fast_dword_copy(). | Andreas Kling | |
2019-01-12 | Draw the cursor *after* flushing all dirty rects. | Andreas Kling | |
2019-01-12 | Update Painter class to the new coding style. | Andreas Kling | |
2019-01-12 | Give WindowManager member copies of the Framebuffer& and the screen rect. | Andreas Kling | |
These are used all the time, let's avoid function calls for them. | |||
2019-01-12 | WindowManager::invalidate() can just use Rect::intersection(). | Andreas Kling | |
2019-01-12 | WindowManager should only flush pixels inside the screen rect. | Andreas Kling | |
2019-01-12 | Add a Vector::clear_with_capacity() that doesn't release the backing store. | Andreas Kling | |
Use this for WindowManager's dirty rects to avoid kmalloc traffic. | |||
2019-01-12 | Let the EventLoop drive the WindowManager through WM_Compose events. | Andreas Kling | |
2019-01-12 | All right, let's double buffer the display. It looks so much better. | Andreas Kling | |
This performs like dogshit. I need to make some optimizations. :^) | |||
2019-01-12 | Only initiate window title bar drags for left mouse button clicks. | Andreas Kling | |
2019-01-12 | Tidy up window border rendering a bit. | Andreas Kling | |
2019-01-12 | Get rid of the "root widget" concept in WindowManager. | Andreas Kling | |
Instead just create a GraphicsBitmap wrapper around the display framebuffer and teach Painter how to draw directly into a GraphicsBitmap. | |||
2019-01-12 | Don't repaint the root layer in invalidated areas with windows over them. | Andreas Kling | |
2019-01-12 | Ignore WindowManager invalidations inside already invalidated rects. | Andreas Kling | |
2019-01-12 | Start refactoring the WindowManager to be invalidation driven. | Andreas Kling | |
2019-01-11 | Throw up some widgets on screen so we can see what they look like. | Andreas Kling | |
2019-01-11 | Hook up the PS2MouseDevice to the AbstractScreen+WindowManager. | Andreas Kling | |
Render the mouse cursor by xor'ing the pixels. I don't know anything about hardware cursors yet and this way we don't need to recompose the window hierarchy every time you move the mouse. :^) | |||
2019-01-10 | Hook everything up to run the GUI on top of the kernel. | Andreas Kling | |
Okay things kinda sorta work. Both Bochs and QEMU now boot into GUI mode. There's a ton of stuff that doesn't make sense and so many things to rework. Still it's quite cool to have made it this far. :^) | |||
2019-01-10 | Start separating out the SDL-related stuff in Widgets. | Andreas Kling | |
2019-01-10 | More window manager hacking. Get rid of TerminalWidget for now. | Andreas Kling | |
2019-01-09 | More window manager hacking. FocusIn/FocusOut events. | Andreas Kling | |
2019-01-09 | Remove some #if 0'd code. | Andreas Kling | |
2019-01-09 | Stop recomposing the window hierarchy after every dang widget paint. | Andreas Kling | |
2019-01-09 | Print the number of WindowManager recompose() calls to debugger. | Andreas Kling | |
2019-01-09 | Let WindowManager send out events for WindowBecame{Active,Inactive} | Andreas Kling | |
2019-01-09 | More window management work. | Andreas Kling | |
- Fix inverted mouse event hit test z-ordering. - Let the RootWidget backing store simply be the display framebuffer. | |||
2019-01-09 | Add basic z-order for Windows. | Andreas Kling | |
2019-01-09 | Start refactoring graphics system to have per-window backing stores. | Andreas Kling | |
It was fun for everyone to share a single framebuffer but it was also kinda really awful. Let's move towards having a "GraphicsBitmap" as the backing store for each Window. This is going to need a lot of refactoring so let's get started. | |||
2018-12-21 | Yet another pass of style fixes. | Andreas Kling | |
2018-10-14 | Close the MsgBox when clicking the OK button. | Andreas Kling | |
This feels vaguely crashy. I haven't tested window/widget destruction before so there's sure to be bugs. | |||
2018-10-13 | Implement basic focus. | Andreas Kling | |
2018-10-13 | Let the WindowManager track the active window. | Andreas Kling | |
We draw the active window in a different color, obviously. :^) | |||
2018-10-13 | Start using WeakPtr for some of the WindowManager window pointers. | Andreas Kling | |
2018-10-13 | Use HashMap::remove() in some places that I wanted it. | Andreas Kling | |
2018-10-12 | Some color cleanup. | Andreas Kling | |
2018-10-12 | After moving a window, try to repaint a bit less. | Andreas Kling | |
Only repaint windows that intersect either the old or the new rect. Also only repaint those rects in the root widget. | |||
2018-10-12 | Add a CheckBox widget. | Andreas Kling | |
2018-10-12 | Add a clock widget. | Andreas Kling | |
2018-10-12 | Window contents move along with the window! | Andreas Kling | |
2018-10-12 | Very hacky support for dragging a window around. | Andreas Kling | |
2018-10-12 | The WindowManager can now react to mouse events on the window title bar. | Andreas Kling | |