mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibWeb: Dispatch "resize" events on the Window object
It's a little awkward that we do this in two places, but IPWV and OOPWV currently implement resizing a little differently from each other so we need to cover both paths.
This commit is contained in:
parent
d2d69f3efb
commit
efc6060df0
Notes:
sideshowbarker
2024-07-18 21:18:11 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/efc6060df08
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -25,12 +25,15 @@
|
||||
*/
|
||||
|
||||
#include <LibWeb/DOM/Document.h>
|
||||
#include <LibWeb/DOM/Event.h>
|
||||
#include <LibWeb/DOM/Window.h>
|
||||
#include <LibWeb/HTML/HTMLAnchorElement.h>
|
||||
#include <LibWeb/InProcessWebView.h>
|
||||
#include <LibWeb/Layout/BreakNode.h>
|
||||
#include <LibWeb/Layout/InitialContainingBlockBox.h>
|
||||
#include <LibWeb/Layout/TextNode.h>
|
||||
#include <LibWeb/Page/Frame.h>
|
||||
#include <LibWeb/UIEvents/EventNames.h>
|
||||
|
||||
namespace Web {
|
||||
|
||||
@ -113,8 +116,10 @@ void Frame::set_viewport_rect(const Gfx::IntRect& rect)
|
||||
|
||||
if (m_size != rect.size()) {
|
||||
m_size = rect.size();
|
||||
if (m_document)
|
||||
if (m_document) {
|
||||
m_document->window().dispatch_event(DOM::Event::create(UIEvents::EventNames::resize));
|
||||
m_document->update_layout();
|
||||
}
|
||||
did_change = true;
|
||||
}
|
||||
|
||||
@ -134,8 +139,10 @@ void Frame::set_size(const Gfx::IntSize& size)
|
||||
if (m_size == size)
|
||||
return;
|
||||
m_size = size;
|
||||
if (m_document)
|
||||
if (m_document) {
|
||||
m_document->window().dispatch_event(DOM::Event::create(UIEvents::EventNames::resize));
|
||||
m_document->update_layout();
|
||||
}
|
||||
|
||||
for (auto* client : m_viewport_clients)
|
||||
client->frame_did_set_viewport_rect(viewport_rect());
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2020, the SerenityOS developers.
|
||||
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -40,7 +41,8 @@ namespace Web::UIEvents::EventNames {
|
||||
__ENUMERATE_UI_EVENT(mousemove) \
|
||||
__ENUMERATE_UI_EVENT(mouseout) \
|
||||
__ENUMERATE_UI_EVENT(mouseover) \
|
||||
__ENUMERATE_UI_EVENT(mouseup)
|
||||
__ENUMERATE_UI_EVENT(mouseup) \
|
||||
__ENUMERATE_UI_EVENT(resize)
|
||||
|
||||
#define __ENUMERATE_UI_EVENT(name) extern FlyString name;
|
||||
ENUMERATE_UI_EVENTS
|
||||
|
Loading…
Reference in New Issue
Block a user