Luke Wilde
d6cfc735ae
LibWeb: Expose MouseEvent.{screenX,screenY}
...
These are currently the same as clientX and clientY, but it works for
now.
2022-11-07 14:10:41 +01:00
Aliaksandr Kalenik
9cbf031b6d
LibWeb: Add button property in MouseEvent
2022-10-23 15:58:16 +02:00
Aliaksandr Kalenik
501fb1cccb
LibWeb: Dispatch "wheel" event
2022-10-23 15:58:16 +02:00
Andrew Kaster
67ceba2e6a
LibWeb: Add Exposed attribute and IDL spec links where missing
...
The intent is to use these to autogenerate prototype declarations for
Window and WorkerGlobalScope classes.
And the spec links are just nice to have :^)
2022-10-09 10:14:57 +02:00
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