1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
Revert to wlroots 0.17 API as 0.18 is a moving target, so hard to
use as system package with more than one consumer.
https://github.com/hyprwm/hyprland/commit/2ebfd0c7456e
https://github.com/hyprwm/hyprland/commit/d2c3b23ace74
--- src/Compositor.cpp.orig 2023-11-30 15:20:08 UTC
+++ src/Compositor.cpp
@@ -190,7 +190,7 @@ void CCompositor::initServer() {
m_sWLRGammaCtrlMgr = wlr_gamma_control_manager_v1_create(m_sWLDisplay);
- m_sWLROutputLayout = wlr_output_layout_create(m_sWLDisplay);
+ m_sWLROutputLayout = wlr_output_layout_create();
m_sWLROutputPowerMgr = wlr_output_power_manager_v1_create(m_sWLDisplay);
@@ -282,7 +282,7 @@ void CCompositor::initAllSignals() {
void CCompositor::initAllSignals() {
addWLSignal(&m_sWLRBackend->events.new_output, &Events::listen_newOutput, m_sWLRBackend, "Backend");
- addWLSignal(&m_sWLRXDGShell->events.new_toplevel, &Events::listen_newXDGToplevel, m_sWLRXDGShell, "XDG Shell");
+ addWLSignal(&m_sWLRXDGShell->events.new_surface, &Events::listen_newXDGToplevel, m_sWLRXDGShell, "XDG Shell");
addWLSignal(&m_sWLRCursor->events.motion, &Events::listen_mouseMove, m_sWLRCursor, "WLRCursor");
addWLSignal(&m_sWLRCursor->events.motion_absolute, &Events::listen_mouseMoveAbsolute, m_sWLRCursor, "WLRCursor");
addWLSignal(&m_sWLRCursor->events.button, &Events::listen_mouseButton, m_sWLRCursor, "WLRCursor");
--- src/events/Windows.cpp.orig 2023-11-30 15:20:08 UTC
+++ src/events/Windows.cpp
@@ -1171,10 +1171,12 @@ void Events::listener_newXDGToplevel(wl_listener* list
void Events::listener_newXDGToplevel(wl_listener* listener, void* data) {
// A window got opened
- const auto XDGTOPLEVEL = (wlr_xdg_toplevel*)data;
- const auto XDGSURFACE = XDGTOPLEVEL->base;
+ const auto XDGSURFACE = (wlr_xdg_surface*)data;
- Debug::log(LOG, "New XDG Toplevel created. (class: {})", XDGSURFACE->toplevel->app_id ? XDGSURFACE->toplevel->app_id : "null");
+ if (XDGSURFACE->role != WLR_XDG_SURFACE_ROLE_TOPLEVEL)
+ return;
+
+ Debug::log(LOG, "New XDG Surface created. (class: {})", XDGSURFACE->toplevel->app_id ? XDGSURFACE->toplevel->app_id : "null");
const auto PNEWWINDOW = g_pCompositor->m_vWindows.emplace_back(std::make_unique<CWindow>()).get();
PNEWWINDOW->m_uSurface.xdg = XDGSURFACE;
--- src/includes.hpp.orig 2023-11-30 15:20:08 UTC
+++ src/includes.hpp
@@ -105,7 +105,6 @@ extern "C" {
#include <wlr/types/wlr_cursor_shape_v1.h>
#include <wlr/types/wlr_tearing_control_v1.h>
#include <wlr/util/box.h>
-#include <wlr/util/transform.h>
#include <wlr/render/swapchain.h>
#include <wlr/render/egl.h>
|