KWin
Loading...
Searching...
No Matches
keyboard_p.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6#pragma once
7
8#include "keyboard.h"
9#include "utils/ramfile.h"
10
11#include <qwayland-server-wayland.h>
12
13#include <QHash>
14#include <QPointer>
15
16namespace KWin
17{
18class ClientConnection;
19
20class KeyboardInterfacePrivate : public QtWaylandServer::wl_keyboard
21{
22public:
24
25 void sendKeymap(Resource *resource);
26 void sendModifiers(SurfaceInterface *surface);
27 void sendModifiers(SurfaceInterface *surface, quint32 depressed, quint32 latched, quint32 locked, quint32 group, quint32 serial);
28
29 QList<Resource *> keyboardsForClient(ClientConnection *client) const;
30 void sendLeave(SurfaceInterface *surface, quint32 serial);
31 void sendEnter(SurfaceInterface *surface, quint32 serial);
32
34 {
35 return keyboard->d.get();
36 }
37
40 QMetaObject::Connection destroyConnection;
41 QPointer<SurfaceInterface> modifierFocusSurface;
42 QByteArray keymap;
44
45 struct
46 {
48 qint32 delay = 0;
50
51 struct Modifiers
52 {
53 quint32 depressed = 0;
54 quint32 latched = 0;
55 quint32 locked = 0;
56 quint32 group = 0;
57 quint32 serial = 0;
58 };
60
61 QHash<quint32, KeyboardKeyState> states;
62 bool updateKey(quint32 key, KeyboardKeyState state);
63 QList<quint32> pressedKeys() const;
64
65protected:
66 void keyboard_release(Resource *resource) override;
67 void keyboard_bind_resource(Resource *resource) override;
68};
69
70}
Convenient Class which represents a wl_client.
Resource for the wl_keyboard interface.
Definition keyboard.h:25
void sendModifiers(SurfaceInterface *surface)
Definition keyboard.cpp:133
void keyboard_release(Resource *resource) override
Definition keyboard.cpp:25
KeyboardInterfacePrivate(SeatInterface *s)
Definition keyboard.cpp:20
void sendKeymap(Resource *resource)
Definition keyboard.cpp:75
void sendLeave(SurfaceInterface *surface, quint32 serial)
Definition keyboard.cpp:56
QMetaObject::Connection destroyConnection
Definition keyboard_p.h:40
QPointer< SurfaceInterface > modifierFocusSurface
Definition keyboard_p.h:41
void keyboard_bind_resource(Resource *resource) override
Definition keyboard.cpp:30
SurfaceInterface * focusedSurface
Definition keyboard_p.h:39
struct KWin::KeyboardInterfacePrivate::@27 keyRepeat
static KeyboardInterfacePrivate * get(KeyboardInterface *keyboard)
Definition keyboard_p.h:33
QList< quint32 > pressedKeys() const
Definition keyboard.cpp:174
QHash< quint32, KeyboardKeyState > states
Definition keyboard_p.h:61
void sendEnter(SurfaceInterface *surface, quint32 serial)
Definition keyboard.cpp:64
QList< Resource * > keyboardsForClient(ClientConnection *client) const
Definition keyboard.cpp:51
bool updateKey(quint32 key, KeyboardKeyState state)
Definition keyboard.cpp:112
Creates a file in memory.
Definition ramfile.h:47
Represents a Seat on the Wayland Display.
Definition seat.h:134
Resource representing a wl_surface.
Definition surface.h:80
KeyboardKeyState
Definition seat.h:82