Wayland cOMPositor written in C++ using Louvre.
at main 1.4 kB view raw
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}