mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
7be0b27dd3
This is just two ints or 8 bytes or the size of the reference on x86_64 or AArch64.
37 lines
806 B
C++
37 lines
806 B
C++
/*
|
|
* Copyright (c) 2021, Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibGUI/ConnectionToWindowServer.h>
|
|
#include <LibGUI/MouseTracker.h>
|
|
|
|
namespace GUI {
|
|
|
|
MouseTracker::List MouseTracker::s_trackers;
|
|
|
|
MouseTracker::MouseTracker()
|
|
{
|
|
if (s_trackers.is_empty()) {
|
|
ConnectionToWindowServer::the().async_set_global_mouse_tracking(true);
|
|
}
|
|
s_trackers.append(*this);
|
|
}
|
|
MouseTracker::~MouseTracker()
|
|
{
|
|
m_list_node.remove();
|
|
if (s_trackers.is_empty()) {
|
|
ConnectionToWindowServer::the().async_set_global_mouse_tracking(false);
|
|
}
|
|
}
|
|
|
|
void MouseTracker::track_mouse_move(Badge<ConnectionToWindowServer>, Gfx::IntPoint point)
|
|
{
|
|
for (auto& tracker : s_trackers) {
|
|
tracker.track_mouse_move(point);
|
|
}
|
|
}
|
|
|
|
}
|