Skip to content

Commit 0237e39

Browse files
committed
protocols: utilize hyprwayland-scanner 0.3.3 functions
stuff like ::version(), ::client(), ::error() etc
1 parent 47b0879 commit 0237e39

22 files changed

+105
-148
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ pkg_check_modules(deps REQUIRED IMPORTED_TARGET
109109
wayland-server wayland-client wayland-cursor wayland-protocols
110110
cairo pango pangocairo pixman-1
111111
libdrm libinput hwdata libseat libdisplay-info libliftoff libudev gbm
112-
hyprwayland-scanner>=0.3.2 hyprlang>=0.3.2 hyprcursor>=0.1.7
112+
hyprwayland-scanner>=0.3.3 hyprlang>=0.3.2 hyprcursor>=0.1.7
113113
)
114114

115115
file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")

src/protocols/AlphaModifier.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ CAlphaModifier::CAlphaModifier(SP<CWpAlphaModifierSurfaceV1> resource_, wlr_surf
2424
resource->setSetMultiplier([this](CWpAlphaModifierSurfaceV1* mod, uint32_t alpha) {
2525
if (!pSurface) {
2626
LOGM(ERR, "Resource {:x} tried to setMultiplier but surface is gone", (uintptr_t)mod->resource());
27-
wl_resource_post_error(mod->resource(), WP_ALPHA_MODIFIER_SURFACE_V1_ERROR_NO_SURFACE, "Surface is gone");
27+
mod->error(WP_ALPHA_MODIFIER_SURFACE_V1_ERROR_NO_SURFACE, "Surface is gone");
2828
return;
2929
}
3030

@@ -107,18 +107,16 @@ void CAlphaModifierProtocol::destroyModifier(CAlphaModifier* modifier) {
107107
void CAlphaModifierProtocol::onGetSurface(CWpAlphaModifierV1* pMgr, uint32_t id, wlr_surface* surface) {
108108
if (m_mAlphaModifiers.contains(surface)) {
109109
LOGM(ERR, "AlphaModifier already present for surface {:x}", (uintptr_t)surface);
110-
wl_resource_post_error(pMgr->resource(), WP_ALPHA_MODIFIER_V1_ERROR_ALREADY_CONSTRUCTED, "AlphaModifier already present");
110+
pMgr->error(WP_ALPHA_MODIFIER_V1_ERROR_ALREADY_CONSTRUCTED, "AlphaModifier already present");
111111
return;
112112
}
113113

114-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
115114
const auto RESOURCE =
116-
m_mAlphaModifiers
117-
.emplace(surface, std::make_unique<CAlphaModifier>(std::make_shared<CWpAlphaModifierSurfaceV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), surface))
115+
m_mAlphaModifiers.emplace(surface, std::make_unique<CAlphaModifier>(std::make_shared<CWpAlphaModifierSurfaceV1>(pMgr->client(), pMgr->version(), id), surface))
118116
.first->second.get();
119117

120118
if (!RESOURCE->good()) {
121-
wl_resource_post_no_memory(pMgr->resource());
119+
pMgr->noMemory();
122120
m_mAlphaModifiers.erase(surface);
123121
return;
124122
}

src/protocols/CursorShape.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ void CCursorShapeProtocol::onGetTabletToolV2(CWpCursorShapeManagerV1* pMgr, uint
7373
}
7474

7575
void CCursorShapeProtocol::createCursorShapeDevice(CWpCursorShapeManagerV1* pMgr, uint32_t id, wl_resource* resource) {
76-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
77-
const auto RESOURCE = m_vDevices.emplace_back(std::make_shared<CWpCursorShapeDeviceV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id));
76+
const auto CLIENT = pMgr->client();
77+
const auto RESOURCE = m_vDevices.emplace_back(std::make_shared<CWpCursorShapeDeviceV1>(CLIENT, pMgr->version(), id));
7878
RESOURCE->setOnDestroy([this](CWpCursorShapeDeviceV1* p) { this->onDeviceResourceDestroy(p->resource()); });
7979

8080
RESOURCE->setDestroy([this](CWpCursorShapeDeviceV1* p) { this->onDeviceResourceDestroy(p->resource()); });
@@ -83,7 +83,7 @@ void CCursorShapeProtocol::createCursorShapeDevice(CWpCursorShapeManagerV1* pMgr
8383

8484
void CCursorShapeProtocol::onSetShape(CWpCursorShapeDeviceV1* pMgr, uint32_t serial, wpCursorShapeDeviceV1Shape shape) {
8585
if ((uint32_t)shape == 0 || (uint32_t)shape > sizeof(SHAPE_NAMES)) {
86-
wl_resource_post_error(pMgr->resource(), WP_CURSOR_SHAPE_DEVICE_V1_ERROR_INVALID_SHAPE, "The shape is invalid");
86+
pMgr->error(WP_CURSOR_SHAPE_DEVICE_V1_ERROR_INVALID_SHAPE, "The shape is invalid");
8787
return;
8888
}
8989

src/protocols/ForeignToplevel.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ void CForeignToplevelList::onMap(PHLWINDOW pWindow) {
4444
if (finished)
4545
return;
4646

47-
const auto NEWHANDLE = PROTO::foreignToplevel->m_vHandles.emplace_back(std::make_shared<CForeignToplevelHandle>(
48-
std::make_shared<CExtForeignToplevelHandleV1>(wl_resource_get_client(resource->resource()), wl_resource_get_version(resource->resource()), 0), pWindow));
47+
const auto NEWHANDLE = PROTO::foreignToplevel->m_vHandles.emplace_back(
48+
std::make_shared<CForeignToplevelHandle>(std::make_shared<CExtForeignToplevelHandleV1>(resource->client(), resource->version(), 0), pWindow));
4949

5050
if (!NEWHANDLE->good()) {
5151
LOGM(ERR, "Couldn't create a foreign handle");
52-
wl_resource_post_no_memory(resource->resource());
52+
resource->noMemory();
5353
PROTO::foreignToplevel->m_vHandles.pop_back();
5454
return;
5555
}

src/protocols/ForeignToplevelWlr.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ void CForeignToplevelHandleWlr::sendMonitor(CMonitor* pMonitor) {
107107
if (lastMonitorID == (int64_t)pMonitor->ID)
108108
return;
109109

110-
const auto CLIENT = wl_resource_get_client(resource->resource());
110+
const auto CLIENT = resource->client();
111111

112112
struct wl_resource* outputResource;
113113

@@ -184,12 +184,12 @@ void CForeignToplevelWlrManager::onMap(PHLWINDOW pWindow) {
184184
if (finished)
185185
return;
186186

187-
const auto NEWHANDLE = PROTO::foreignToplevelWlr->m_vHandles.emplace_back(std::make_shared<CForeignToplevelHandleWlr>(
188-
std::make_shared<CZwlrForeignToplevelHandleV1>(wl_resource_get_client(resource->resource()), wl_resource_get_version(resource->resource()), 0), pWindow));
187+
const auto NEWHANDLE = PROTO::foreignToplevelWlr->m_vHandles.emplace_back(
188+
std::make_shared<CForeignToplevelHandleWlr>(std::make_shared<CZwlrForeignToplevelHandleV1>(resource->client(), resource->version(), 0), pWindow));
189189

190190
if (!NEWHANDLE->good()) {
191191
LOGM(ERR, "Couldn't create a foreign handle");
192-
wl_resource_post_no_memory(resource->resource());
192+
resource->noMemory();
193193
PROTO::foreignToplevelWlr->m_vHandles.pop_back();
194194
return;
195195
}

src/protocols/FractionalScale.cpp

+3-6
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,16 @@ void CFractionalScaleProtocol::onManagerResourceDestroy(wl_resource* res) {
3232
void CFractionalScaleProtocol::onGetFractionalScale(CWpFractionalScaleManagerV1* pMgr, uint32_t id, wlr_surface* surface) {
3333
if (m_mAddons.contains(surface)) {
3434
LOGM(ERR, "Surface {:x} already has a fractionalScale addon", (uintptr_t)surface);
35-
wl_resource_post_error(pMgr->resource(), WP_FRACTIONAL_SCALE_MANAGER_V1_ERROR_FRACTIONAL_SCALE_EXISTS, "Fractional scale already exists");
35+
pMgr->error(WP_FRACTIONAL_SCALE_MANAGER_V1_ERROR_FRACTIONAL_SCALE_EXISTS, "Fractional scale already exists");
3636
return;
3737
}
3838

39-
const auto PADDON = m_mAddons
40-
.emplace(surface,
41-
std::make_unique<CFractionalScaleAddon>(
42-
std::make_shared<CWpFractionalScaleV1>(wl_resource_get_client(pMgr->resource()), wl_resource_get_version(pMgr->resource()), id), surface))
39+
const auto PADDON = m_mAddons.emplace(surface, std::make_unique<CFractionalScaleAddon>(std::make_shared<CWpFractionalScaleV1>(pMgr->client(), pMgr->version(), id), surface))
4340
.first->second.get();
4441

4542
if (!PADDON->good()) {
4643
m_mAddons.erase(surface);
47-
wl_resource_post_no_memory(pMgr->resource());
44+
pMgr->noMemory();
4845
return;
4946
}
5047

src/protocols/GammaControl.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ CGammaControl::CGammaControl(SP<CZwlrGammaControlV1> resource_, wl_resource* out
7070
close(fd);
7171

7272
if ((size_t)readBytes != gammaTable.size() * sizeof(uint16_t)) {
73-
wl_resource_post_error(gamma->resource(), ZWLR_GAMMA_CONTROL_V1_ERROR_INVALID_GAMMA, "Gamma ramps size mismatch");
73+
gamma->error(ZWLR_GAMMA_CONTROL_V1_ERROR_INVALID_GAMMA, "Gamma ramps size mismatch");
7474
return;
7575
}
7676

@@ -156,13 +156,11 @@ void CGammaControlProtocol::destroyGammaControl(CGammaControl* gamma) {
156156
}
157157

158158
void CGammaControlProtocol::onGetGammaControl(CZwlrGammaControlManagerV1* pMgr, uint32_t id, wl_resource* output) {
159-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
160-
const auto RESOURCE =
161-
m_vGammaControllers.emplace_back(std::make_unique<CGammaControl>(std::make_shared<CZwlrGammaControlV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), output))
162-
.get();
159+
const auto CLIENT = pMgr->client();
160+
const auto RESOURCE = m_vGammaControllers.emplace_back(std::make_unique<CGammaControl>(std::make_shared<CZwlrGammaControlV1>(CLIENT, pMgr->version(), id), output)).get();
163161

164162
if (!RESOURCE->good()) {
165-
wl_resource_post_no_memory(pMgr->resource());
163+
pMgr->noMemory();
166164
m_vGammaControllers.pop_back();
167165
return;
168166
}

src/protocols/IdleInhibit.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ void CIdleInhibitProtocol::removeInhibitor(CIdleInhibitorResource* resource) {
4747
}
4848

4949
void CIdleInhibitProtocol::onCreateInhibitor(CZwpIdleInhibitManagerV1* pMgr, uint32_t id, wlr_surface* surface) {
50-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
51-
const auto RESOURCE =
52-
m_vInhibitors.emplace_back(std::make_shared<CIdleInhibitorResource>(std::make_shared<CZwpIdleInhibitorV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), surface));
50+
const auto CLIENT = pMgr->client();
51+
const auto RESOURCE = m_vInhibitors.emplace_back(std::make_shared<CIdleInhibitorResource>(std::make_shared<CZwpIdleInhibitorV1>(CLIENT, pMgr->version(), id), surface));
5352

5453
RESOURCE->inhibitor = std::make_shared<CIdleInhibitor>(RESOURCE, surface);
5554
events.newIdleInhibitor.emit(RESOURCE->inhibitor);

src/protocols/IdleNotify.cpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,12 @@ void CIdleNotifyProtocol::destroyNotification(CExtIdleNotification* notif) {
7777
}
7878

7979
void CIdleNotifyProtocol::onGetNotification(CExtIdleNotifierV1* pMgr, uint32_t id, uint32_t timeout, wl_resource* seat) {
80-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
80+
const auto CLIENT = pMgr->client();
8181
const auto RESOURCE =
82-
m_vNotifications
83-
.emplace_back(std::make_unique<CExtIdleNotification>(std::make_shared<CExtIdleNotificationV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), timeout))
84-
.get();
82+
m_vNotifications.emplace_back(std::make_unique<CExtIdleNotification>(std::make_shared<CExtIdleNotificationV1>(CLIENT, pMgr->version(), id), timeout)).get();
8583

8684
if (!RESOURCE->good()) {
87-
wl_resource_post_no_memory(pMgr->resource());
85+
pMgr->noMemory();
8886
m_vNotifications.pop_back();
8987
return;
9088
}

src/protocols/InputMethodV2.cpp

+11-14
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ void CInputMethodKeyboardGrabV2::sendKeyboardData(wlr_keyboard* keyboard) {
5959
}
6060

6161
void CInputMethodKeyboardGrabV2::sendKey(uint32_t time, uint32_t key, wl_keyboard_key_state state) {
62-
const auto SERIAL = wlr_seat_client_next_serial(wlr_seat_client_for_wl_client(g_pCompositor->m_sSeat.seat, wl_resource_get_client(resource->resource())));
62+
const auto SERIAL = wlr_seat_client_next_serial(wlr_seat_client_for_wl_client(g_pCompositor->m_sSeat.seat, resource->client()));
6363

6464
resource->sendKey(SERIAL, time, key, (uint32_t)state);
6565
}
6666

6767
void CInputMethodKeyboardGrabV2::sendMods(uint32_t depressed, uint32_t latched, uint32_t locked, uint32_t group) {
68-
const auto SERIAL = wlr_seat_client_next_serial(wlr_seat_client_for_wl_client(g_pCompositor->m_sSeat.seat, wl_resource_get_client(resource->resource())));
68+
const auto SERIAL = wlr_seat_client_next_serial(wlr_seat_client_for_wl_client(g_pCompositor->m_sSeat.seat, resource->client()));
6969

7070
resource->sendModifiers(SERIAL, depressed, latched, locked, group);
7171
}
@@ -79,7 +79,7 @@ SP<CInputMethodV2> CInputMethodKeyboardGrabV2::getOwner() {
7979
}
8080

8181
wl_client* CInputMethodKeyboardGrabV2::client() {
82-
return wl_resource_get_client(resource->resource());
82+
return resource->client();
8383
}
8484

8585
CInputMethodPopupV2::CInputMethodPopupV2(SP<CZwpInputPopupSurfaceV2> resource_, SP<CInputMethodV2> owner_, wlr_surface* wlrSurface) : resource(resource_), owner(owner_) {
@@ -192,12 +192,11 @@ CInputMethodV2::CInputMethodV2(SP<CZwpInputMethodV2> resource_) : resource(resou
192192
});
193193

194194
resource->setGetInputPopupSurface([this](CZwpInputMethodV2* r, uint32_t id, wl_resource* surface) {
195-
const auto CLIENT = wl_resource_get_client(r->resource());
196-
const auto RESOURCE = PROTO::ime->m_vPopups.emplace_back(std::make_shared<CInputMethodPopupV2>(
197-
std::make_shared<CZwpInputPopupSurfaceV2>(CLIENT, wl_resource_get_version(r->resource()), id), self.lock(), wlr_surface_from_resource(surface)));
195+
const auto RESOURCE = PROTO::ime->m_vPopups.emplace_back(
196+
std::make_shared<CInputMethodPopupV2>(std::make_shared<CZwpInputPopupSurfaceV2>(r->client(), r->version(), id), self.lock(), wlr_surface_from_resource(surface)));
198197

199198
if (!RESOURCE->good()) {
200-
wl_resource_post_no_memory(r->resource());
199+
r->noMemory();
201200
PROTO::ime->m_vPopups.pop_back();
202201
return;
203202
}
@@ -210,12 +209,11 @@ CInputMethodV2::CInputMethodV2(SP<CZwpInputMethodV2> resource_) : resource(resou
210209
});
211210

212211
resource->setGrabKeyboard([this](CZwpInputMethodV2* r, uint32_t id) {
213-
const auto CLIENT = wl_resource_get_client(r->resource());
214212
const auto RESOURCE = PROTO::ime->m_vGrabs.emplace_back(
215-
std::make_shared<CInputMethodKeyboardGrabV2>(std::make_shared<CZwpInputMethodKeyboardGrabV2>(CLIENT, wl_resource_get_version(r->resource()), id), self.lock()));
213+
std::make_shared<CInputMethodKeyboardGrabV2>(std::make_shared<CZwpInputMethodKeyboardGrabV2>(r->client(), r->version(), id), self.lock()));
216214

217215
if (!RESOURCE->good()) {
218-
wl_resource_post_no_memory(r->resource());
216+
r->noMemory();
219217
PROTO::ime->m_vGrabs.pop_back();
220218
return;
221219
}
@@ -334,7 +332,7 @@ void CInputMethodV2::setKeyboard(wlr_keyboard* keyboard) {
334332
}
335333

336334
wl_client* CInputMethodV2::client() {
337-
return wl_resource_get_client(resource->resource());
335+
return resource->client();
338336
}
339337

340338
CInputMethodV2Protocol::CInputMethodV2Protocol(const wl_interface* iface, const int& ver, const std::string& name) : IWaylandProtocol(iface, ver, name) {
@@ -366,11 +364,10 @@ void CInputMethodV2Protocol::destroyResource(CInputMethodV2* ime) {
366364
}
367365

368366
void CInputMethodV2Protocol::onGetIME(CZwpInputMethodManagerV2* mgr, wl_resource* seat, uint32_t id) {
369-
const auto CLIENT = wl_resource_get_client(mgr->resource());
370-
const auto RESOURCE = m_vIMEs.emplace_back(std::make_shared<CInputMethodV2>(std::make_shared<CZwpInputMethodV2>(CLIENT, wl_resource_get_version(mgr->resource()), id)));
367+
const auto RESOURCE = m_vIMEs.emplace_back(std::make_shared<CInputMethodV2>(std::make_shared<CZwpInputMethodV2>(mgr->client(), mgr->version(), id)));
371368

372369
if (!RESOURCE->good()) {
373-
wl_resource_post_no_memory(mgr->resource());
370+
mgr->noMemory();
374371
m_vIMEs.pop_back();
375372
return;
376373
}

src/protocols/OutputPower.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,15 @@ void COutputPowerProtocol::onGetOutputPower(CZwlrOutputPowerManagerV1* pMgr, uin
6464
const auto PMONITOR = g_pCompositor->getMonitorFromOutput(wlr_output_from_resource(output));
6565

6666
if (!PMONITOR) {
67-
wl_resource_post_error(pMgr->resource(), 0, "Invalid output resource");
67+
pMgr->error(0, "Invalid output resource");
6868
return;
6969
}
7070

71-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
72-
const auto RESOURCE =
73-
m_vOutputPowers.emplace_back(std::make_unique<COutputPower>(std::make_shared<CZwlrOutputPowerV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), PMONITOR)).get();
71+
const auto CLIENT = pMgr->client();
72+
const auto RESOURCE = m_vOutputPowers.emplace_back(std::make_unique<COutputPower>(std::make_shared<CZwlrOutputPowerV1>(CLIENT, pMgr->version(), id), PMONITOR)).get();
7473

7574
if (!RESOURCE->good()) {
76-
wl_resource_post_no_memory(pMgr->resource());
75+
pMgr->noMemory();
7776
m_vOutputPowers.pop_back();
7877
return;
7978
}

src/protocols/PointerConstraints.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ void CPointerConstraintsProtocol::destroyPointerConstraint(CPointerConstraint* h
216216
void CPointerConstraintsProtocol::onNewConstraint(SP<CPointerConstraint> constraint, CZwpPointerConstraintsV1* pMgr) {
217217
if (!constraint->good()) {
218218
LOGM(ERR, "Couldn't create constraint??");
219-
wl_resource_post_no_memory(pMgr->resource());
219+
pMgr->noMemory();
220220
m_vConstraints.pop_back();
221221
return;
222222
}
@@ -232,7 +232,7 @@ void CPointerConstraintsProtocol::onNewConstraint(SP<CPointerConstraint> constra
232232

233233
if (DUPES > 1) {
234234
LOGM(ERR, "Constraint for surface duped");
235-
wl_resource_post_error(pMgr->resource(), ZWP_POINTER_CONSTRAINTS_V1_ERROR_ALREADY_CONSTRAINED, "Surface already confined");
235+
pMgr->error(ZWP_POINTER_CONSTRAINTS_V1_ERROR_ALREADY_CONSTRAINED, "Surface already confined");
236236
m_vConstraints.pop_back();
237237
return;
238238
}
@@ -244,18 +244,18 @@ void CPointerConstraintsProtocol::onNewConstraint(SP<CPointerConstraint> constra
244244

245245
void CPointerConstraintsProtocol::onLockPointer(CZwpPointerConstraintsV1* pMgr, uint32_t id, wl_resource* surface, wl_resource* pointer, wl_resource* region,
246246
zwpPointerConstraintsV1Lifetime lifetime) {
247-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
248-
const auto RESOURCE = m_vConstraints.emplace_back(std::make_shared<CPointerConstraint>(
249-
std::make_shared<CZwpLockedPointerV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), wlr_surface_from_resource(surface), region, lifetime));
247+
const auto CLIENT = pMgr->client();
248+
const auto RESOURCE = m_vConstraints.emplace_back(
249+
std::make_shared<CPointerConstraint>(std::make_shared<CZwpLockedPointerV1>(CLIENT, pMgr->version(), id), wlr_surface_from_resource(surface), region, lifetime));
250250

251251
onNewConstraint(RESOURCE, pMgr);
252252
}
253253

254254
void CPointerConstraintsProtocol::onConfinePointer(CZwpPointerConstraintsV1* pMgr, uint32_t id, wl_resource* surface, wl_resource* pointer, wl_resource* region,
255255
zwpPointerConstraintsV1Lifetime lifetime) {
256-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
257-
const auto RESOURCE = m_vConstraints.emplace_back(std::make_shared<CPointerConstraint>(
258-
std::make_shared<CZwpConfinedPointerV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id), wlr_surface_from_resource(surface), region, lifetime));
256+
const auto CLIENT = pMgr->client();
257+
const auto RESOURCE = m_vConstraints.emplace_back(
258+
std::make_shared<CPointerConstraint>(std::make_shared<CZwpConfinedPointerV1>(CLIENT, pMgr->version(), id), wlr_surface_from_resource(surface), region, lifetime));
259259

260260
onNewConstraint(RESOURCE, pMgr);
261261
}

0 commit comments

Comments
 (0)