1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 13:17:35 +00:00

Magnifier: Make the main widget a GUI::Frame

This makes the magnifier window look slightly nicer. :^)
This commit is contained in:
Andreas Kling 2021-07-04 22:33:28 +02:00
parent 782a5c88ce
commit 3e63633e1c
2 changed files with 11 additions and 8 deletions

View file

@ -39,15 +39,18 @@ void MagnifierWidget::set_scale_factor(int scale_factor)
void MagnifierWidget::sync() void MagnifierWidget::sync()
{ {
Gfx::IntSize grab_size { size().width() / m_scale_factor, size().height() / m_scale_factor }; auto size = frame_inner_rect().size();
Gfx::IntSize grab_size { size.width() / m_scale_factor, size.height() / m_scale_factor };
m_grabbed_bitmap = GUI::WindowServerConnection::the().get_screen_bitmap_around_cursor(grab_size).bitmap(); m_grabbed_bitmap = GUI::WindowServerConnection::the().get_screen_bitmap_around_cursor(grab_size).bitmap();
update(); update();
} }
void MagnifierWidget::paint_event(GUI::PaintEvent&) void MagnifierWidget::paint_event(GUI::PaintEvent& event)
{ {
GUI::Frame::paint_event(event);
GUI::Painter painter(*this); GUI::Painter painter(*this);
if (m_grabbed_bitmap) if (m_grabbed_bitmap)
painter.draw_scaled_bitmap(rect(), *m_grabbed_bitmap, m_grabbed_bitmap->rect()); painter.draw_scaled_bitmap(frame_inner_rect(), *m_grabbed_bitmap, m_grabbed_bitmap->rect());
} }

View file

@ -6,19 +6,19 @@
#pragma once #pragma once
#include <LibGUI/Widget.h> #include <LibGUI/Frame.h>
#include <LibGfx/Point.h>
class MagnifierWidget final : public GUI::Widget { class MagnifierWidget final : public GUI::Frame {
C_OBJECT(MagnifierWidget) C_OBJECT(MagnifierWidget);
public: public:
MagnifierWidget();
virtual ~MagnifierWidget(); virtual ~MagnifierWidget();
void set_scale_factor(int scale_factor); void set_scale_factor(int scale_factor);
void track_cursor_globally(); void track_cursor_globally();
private: private:
MagnifierWidget();
virtual void paint_event(GUI::PaintEvent&) override; virtual void paint_event(GUI::PaintEvent&) override;
void sync(); void sync();