Wayland cOMPositor written in C++ using Louvre.
1/* ========================================================================
2 *
3 * Filename: WPointer.cpp
4 * Description: W Compositor WPointer class definitions
5 * GitHub Repo: https://github.com/diego-est/womp
6 * Author: Diego A. Estrada Rivera
7 * License: GPL-3.0
8 *
9 * ======================================================================== */
10#include "WPointer.hpp"
11#include "global.hpp"
12#include <LCompositor.h>
13#include <LCursor.h>
14#include <LDNDIconRole.h>
15#include <LDNDManager.h>
16#include <LKeyboard.h>
17#include <LOutput.h>
18#include <LScene.h>
19#include <LSeat.h>
20#include <LSurface.h>
21#include <LToplevelRole.h>
22#include <LView.h>
23
24WPointer::WPointer(Handle<Params> params) noexcept : LPointer(params)
25{
26}
27
28void WPointer::pointerMoveEvent(F32 x, F32 y, Bool absolute) noexcept
29{
30 let view = G::scene()->handlePointerMoveEvent(x, y, absolute);
31 if ((view == nullptr or view->type() != LView::Type::Surface) and
32 not resizingToplevel() and not movingToplevel()) {
33 cursor()->useDefault();
34 cursor()->setVisible(true);
35 }
36}
37
38void WPointer::pointerButtonEvent(Button button, ButtonState state) noexcept
39{
40 G::scene()->handlePointerButtonEvent(button, state);
41}
42void WPointer::pointerAxisEvent(F64 axisX, F64 axisY, I32 discreteX,
43 I32 discreteY, AxisSource source) noexcept
44{
45 G::scene()->handlePointerAxisEvent(axisX, axisY, discreteX, discreteY,
46 source);
47}