mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 04:58:13 +00:00
LibGUI: Introduce widget content margins + improve splitters
A GUI::Widget can now set an optional content margin (4x0 by default.) Pixels in the content margin will be ignored for hit testing purposes. Use this to allow frame-like widgets (like GUI::Frame!) to ignore any mouse events in the frame area, and instead let those go to parent. This allows GUI::Splitter to react "sooner" to mouse events that were previously swallowed by the child widgets instead of ending up in the splitter. The net effect is that 2 more pixels on each side of a splitter handle are now interactive and usable for splitting! :^)
This commit is contained in:
parent
9badcff1ba
commit
42f0b2522b
6 changed files with 57 additions and 17 deletions
|
@ -42,6 +42,14 @@ Frame::~Frame()
|
|||
{
|
||||
}
|
||||
|
||||
void Frame::set_frame_thickness(int thickness)
|
||||
{
|
||||
if (m_thickness == thickness)
|
||||
return;
|
||||
m_thickness = thickness;
|
||||
set_content_margins({ thickness, thickness, thickness, thickness });
|
||||
}
|
||||
|
||||
void Frame::paint_event(PaintEvent& event)
|
||||
{
|
||||
if (m_shape == Gfx::FrameShape::NoFrame)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue