Andrew Kaster
56b381aac0
LibWeb: Cleanup unecessary uses and includes of HTML::Window
...
The big global refactor left some stragglers behind for atomicity.
Clean up the rest, and remove a ton of includes of LibWeb/HTML/Window.h
2022-10-01 21:05:32 +01:00
Andrew Kaster
6a10352712
LibWeb: Remove unecessary dependence on Window from UIEvents classes
...
These classes only needed Window to get at its realm. Pass a realm
directly to construct UIEvents classes.
2022-10-01 21:05:32 +01:00
Linus Groh
4270ede7c4
LibWeb: Remove WRAPPER_HACK() macro
...
We no longer access Bindings::FooWrapper anywhere for a Foo platform
object, so these can be removed :^)
2022-09-21 21:12:24 +01:00
Andreas Kling
8f110e0fb1
LibWeb: Remove the NoInstanceWrapper extended IDL attribute
...
No interfaces require wrappers anymore, so we can just make this the
default mode.
2022-09-06 00:27:09 +02:00
Andreas Kling
45425de849
LibWeb: Use the WRAPPER_HACK() macro instead of hand-coding wrap()
...
This macro will soon go away, but let's start by replacing all the
hand-coded versions of wrap() with this macro that expands to the same
exact thing.
2022-09-06 00:27:09 +02:00
Andreas Kling
ffad902c07
LibWeb: Use cached_web_prototype() as much as possible
...
Unlike ensure_web_prototype<T>(), the cached version doesn't require the
prototype type to be fully formed, so we can use it without including
the FooPrototype.h header. It's also a bit less verbose. :^)
2022-09-06 00:27:09 +02:00
Andreas Kling
6f433c8656
LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated
...
This is a monster patch that turns all EventTargets into GC-allocated
PlatformObjects. Their C++ wrapper classes are removed, and the LibJS
garbage collector is now responsible for their lifetimes.
There's a fair amount of hacks and band-aids in this patch, and we'll
have a lot of cleanup to do after this.
2022-09-06 00:27:09 +02:00
Andreas Kling
7c3db526b0
LibWeb: Make DOM::Event and all its subclasses GC-allocated
2022-09-06 00:27:09 +02:00
Karol Kosek
237a5bedd2
LibWeb: Dispatch dblclick
UI Events on double click
2022-06-20 12:55:50 +01:00
Igor Pissolati
7f45a9e9c1
LibWeb: Add "which" attribute to UIEvent
...
This is non-standard but is supported by all major browsers.
2022-04-09 18:27:24 +02:00
Igor Pissolati
1b94b4c593
LibWeb: Bring MouseEvent a bit closer to spec
2022-04-09 18:27:24 +02:00
Idan Horowitz
086969277e
Everywhere: Run clang-format
2022-04-01 21:24:45 +01:00
Lenny Maiorani
c37820b898
Libraries: Use default constructors/destructors in LibWeb
...
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules
"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler."
2022-03-17 17:23:49 +00:00
Linus Groh
1422bd45eb
LibWeb: Move Window from DOM directory & namespace to HTML
...
The Window object is part of the HTML spec. :^)
https://html.spec.whatwg.org/multipage/window-object.html
2022-03-08 00:30:30 +01:00
Andreas Kling
d0ab546d7a
LibWeb: Implement UIEvent.initUIEvent()
...
1% progression on ACID3. :^)
2022-02-25 19:38:31 +01:00
Andreas Kling
093e66afc0
LibWeb: Make document.createEvent("UIEvent") actually create a UIEvent
...
There were two things preventing this from working right:
- UIEvents::UIEvent::create() was actually just DOM::Event::create()
- We didn't return the right JavaScript wrapper type for UIEvent
2022-02-25 19:38:31 +01:00
Andreas Kling
438c5bce6c
LibWeb: Add MouseEvent.x and MouseEvent.y
...
Per the CSSOM View spec, these are aliases for clientX and clientY.
2022-02-07 13:28:59 +01:00
Andreas Kling
627ad6c37c
LibWeb: Add a proper FocusEvent interface for "focus" and "blur" events
2022-02-07 00:04:50 +01:00
Idan Horowitz
37586f61be
LibWeb: Change the type of MouseEvent members to double
...
These are defined as integers only in the legacy specification, the
new one defines these as doubles.
2021-10-01 20:14:45 +02:00
Idan Horowitz
f74b612aa4
LibWeb: Add the missing KeyboardEvent IDL constructor
...
This commit also does a bit of general cleanup on the header file.
2021-10-01 20:14:45 +02:00
Idan Horowitz
b888d14e42
LibWeb: Change the parent interface of MouseEvent to UIEvent
...
This was accidentally set to Event
2021-10-01 20:14:45 +02:00
Idan Horowitz
ac25c28c43
LibWeb: Add the missing UIEvent IDL constructor
2021-10-01 20:14:45 +02:00
Idan Horowitz
f176514db8
LibWeb: Add the UIEvent::{view, detail} IDL attributes
2021-10-01 20:14:45 +02:00
Andreas Kling
0af0ee4293
LibWeb: Fire "keyup" events as well :^)
...
This was easy, now that we have KeyboardEvent.
2021-09-28 16:56:24 +02:00
Andreas Kling
554c344ffe
LibWeb: Add a basic KeyboardEvent and fire "keydown" events :^)
2021-09-28 16:56:24 +02:00
Andreas Kling
b91c49364d
AK: Rename adopt() to adopt_ref()
...
This makes it more symmetrical with adopt_own() (which is used to
create a NonnullOwnPtr from the result of a naked new.)
2021-04-23 16:46:57 +02:00
Brian Gianforcaro
1682f0b760
Everything: Move to SPDX license identifiers in all files.
...
SPDX License Identifiers are a more compact / standardized
way of representing file license information.
See: https://spdx.dev/resources/use/#identifiers
This was done with the `ambr` search and replace tool.
ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-22 11:22:27 +02:00
Idan Horowitz
ad8e2f481d
LibWeb: Expose the MouseEvent::{clientX, clientY} attributes
...
These provide the cursor coordinate within the viewport at which the
event occurred (as opposed to the page relative coordinates exposed via
offsetX, offsetY).
2021-04-15 20:22:08 +02:00
Andreas Kling
efc6060df0
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.
2021-03-16 18:10:21 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00