Fixed resize

This commit is contained in:
Alex 2022-12-29 19:59:40 +02:00
parent 7e0b387e69
commit fad624205f
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD
2 changed files with 30 additions and 3 deletions

View File

@ -282,6 +282,7 @@ namespace GraphicalUserInterface
{ {
KernelCallback callback; KernelCallback callback;
MouseData Mouse; MouseData Mouse;
bool FoundMouseDriver = false;
if (DriverManager->GetDrivers().size() > 0) if (DriverManager->GetDrivers().size() > 0)
{ {
foreach (auto Driver in DriverManager->GetDrivers()) foreach (auto Driver in DriverManager->GetDrivers())
@ -307,11 +308,22 @@ namespace GraphicalUserInterface
Mouse.Left = callback.InputCallback.Mouse.Buttons.Left; Mouse.Left = callback.InputCallback.Mouse.Buttons.Left;
Mouse.Right = callback.InputCallback.Mouse.Buttons.Right; Mouse.Right = callback.InputCallback.Mouse.Buttons.Right;
Mouse.Middle = callback.InputCallback.Mouse.Buttons.Middle; Mouse.Middle = callback.InputCallback.Mouse.Buttons.Middle;
FoundMouseDriver = true;
break; break;
} }
} }
} }
if (!FoundMouseDriver)
{
Mouse.X = 0;
Mouse.Y = 0;
Mouse.Z = 0;
Mouse.Left = false;
Mouse.Right = false;
Mouse.Middle = false;
}
Event eTemplate; Event eTemplate;
memset(&eTemplate, 0, sizeof(Event)); memset(&eTemplate, 0, sizeof(Event));
foreach (auto wnd in this->Windows) foreach (auto wnd in this->Windows)
@ -453,7 +465,7 @@ namespace GraphicalUserInterface
Rect WndPos = wnd->GetPosition(); Rect WndPos = wnd->GetPosition();
// Draw window // Draw window content
DrawOverBitmap(this->BackBuffer, DrawOverBitmap(this->BackBuffer,
wndBuffer, wndBuffer,
WndPos.Top, WndPos.Top,

View File

@ -13,7 +13,19 @@ namespace GraphicalUserInterface
{ {
void Window::OnResize(Event *e) void Window::OnResize(Event *e)
{ {
fixme("Window::OnResize() not implemented"); // TODO: Optimize this
this->mem->FreePages(this->Buffer->Data, TO_PAGES(this->Buffer->Size));
delete this->Buffer;
this->Buffer = new ScreenBitmap;
this->Buffer->Width = e->Resize.Width;
this->Buffer->Height = e->Resize.Height;
this->Buffer->BitsPerPixel = Display->GetBitsPerPixel();
this->Buffer->Pitch = Display->GetPitch();
this->Buffer->Size = this->Buffer->Pitch * e->Resize.Height;
this->Buffer->Data = (uint8_t *)this->mem->RequestPages(TO_PAGES(this->Buffer->Size));
memset(this->Buffer->Data, 0, this->Buffer->Size);
this->OnPaint(e);
} }
void Window::OnMinimize(Event *e) void Window::OnMinimize(Event *e)
@ -33,7 +45,10 @@ namespace GraphicalUserInterface
void Window::OnPaintBackground(Event *e) void Window::OnPaintBackground(Event *e)
{ {
PutRect(this->Buffer, this->Position, /*0x121212*/ 0xFF00FF); Rect PaintPosition = this->Position;
PaintPosition.Left = 0;
PaintPosition.Top = 0;
PutRect(this->Buffer, PaintPosition, /*0x121212*/ 0xFF00FF);
} }
void Window::OnPaintForeground(Event *e) void Window::OnPaintForeground(Event *e)