aboutsummaryrefslogtreecommitdiff
path: root/x11-wm/hyprland/files/patch-wlroots-0.16
blob: 1d488a5289f4bb0968869129bdca062c244a1ba8 (plain) (blame)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Revert to wlroots 0.16 API as 0.17 is a moving target, so hard to
use as system package with more than one consumer.

https://github.com/hyprwm/Hyprland/commit/df132e5ff339
https://github.com/hyprwm/Hyprland/commit/c012e3d66b21
https://github.com/hyprwm/Hyprland/commit/d6b3bfc48e22

--- src/Compositor.cpp.orig	2022-12-06 13:15:18 UTC
+++ src/Compositor.cpp
@@ -53,7 +53,7 @@ CCompositor::CCompositor() {
     wl_event_loop_add_signal(m_sWLEventLoop, SIGTERM, handleCritSignal, nullptr);
     //wl_event_loop_add_signal(m_sWLEventLoop, SIGINT, handleCritSignal, nullptr);
 
-    m_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay, &m_sWLRSession);
+    m_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay);
 
     if (!m_sWLRBackend) {
         Debug::log(CRIT, "m_sWLRBackend was NULL!");
@@ -76,10 +76,11 @@ CCompositor::CCompositor() {
     wlr_renderer_init_wl_shm(m_sWLRRenderer, m_sWLDisplay);
 
     if (wlr_renderer_get_dmabuf_texture_formats(m_sWLRRenderer)) {
-        if (wlr_renderer_get_drm_fd(m_sWLRRenderer) >= 0)
+        if (wlr_renderer_get_drm_fd(m_sWLRRenderer) >= 0) {
             wlr_drm_create(m_sWLDisplay, m_sWLRRenderer);
+        }
 
-        m_sWLRLinuxDMABuf = wlr_linux_dmabuf_v1_create_with_renderer(m_sWLDisplay, 4, m_sWLRRenderer);
+        m_sWLRLinuxDMABuf = wlr_linux_dmabuf_v1_create(m_sWLDisplay, m_sWLRRenderer);
     }
 
     m_sWLRAllocator = wlr_allocator_autocreate(m_sWLRBackend, m_sWLRRenderer);
@@ -131,7 +132,7 @@ CCompositor::CCompositor() {
 
     m_sWLRIdle = wlr_idle_create(m_sWLDisplay);
 
-    m_sWLRLayerShell = wlr_layer_shell_v1_create(m_sWLDisplay, 4);
+    m_sWLRLayerShell = wlr_layer_shell_v1_create(m_sWLDisplay);
 
     m_sWLRServerDecoMgr = wlr_server_decoration_manager_create(m_sWLDisplay);
     m_sWLRXDGDecoMgr = wlr_xdg_decoration_manager_v1_create(m_sWLDisplay);
@@ -171,6 +172,8 @@ CCompositor::CCompositor() {
     wlr_xdg_foreign_v2_create(m_sWLDisplay, m_sWLRForeignRegistry);
 
     m_sWLRPointerGestures = wlr_pointer_gestures_v1_create(m_sWLDisplay);
+
+    m_sWLRSession = wlr_backend_get_session(m_sWLRBackend);
 
     m_sWLRTextInputMgr = wlr_text_input_manager_v3_create(m_sWLDisplay);
 
--- src/events/Events.hpp.orig	2022-12-06 13:15:18 UTC
+++ src/events/Events.hpp
@@ -96,7 +96,6 @@ namespace Events {
     // Monitor part 2 the sequel
     DYNLISTENFUNC(monitorFrame);
     DYNLISTENFUNC(monitorDestroy);
-    DYNLISTENFUNC(monitorStateRequest);
 
     // XWayland
     LISTENER(readyXWayland);
--- src/events/Monitors.cpp.orig	2022-12-06 13:15:18 UTC
+++ src/events/Monitors.cpp
@@ -266,10 +266,11 @@ void Events::listener_monitorFrame(void* owner, void* 
                 damageBlinkCleanup = 0;
         }
 
-        if (wlr_renderer_begin(g_pCompositor->m_sWLRRenderer, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y)) {
-            wlr_output_render_software_cursors(PMONITOR->output, NULL);
-            wlr_renderer_end(g_pCompositor->m_sWLRRenderer);
-        }
+        wlr_renderer_begin(g_pCompositor->m_sWLRRenderer, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y);
+
+        wlr_output_render_software_cursors(PMONITOR->output, NULL);
+
+        wlr_renderer_end(g_pCompositor->m_sWLRRenderer);
     }
 
     g_pHyprOpenGL->end();
@@ -354,11 +355,4 @@ void Events::listener_monitorDestroy(void* owner, void
             pMostHzMonitor = pMonitorMostHz;
         }
     }
-}
-
-void Events::listener_monitorStateRequest(void* owner, void* data) {
-    const auto PMONITOR = (CMonitor*)owner;
-    const auto E = (wlr_output_event_request_state*)data;
-
-    wlr_output_commit_state(PMONITOR->output, E->state);
 }
--- src/helpers/Monitor.cpp.orig	2022-12-06 13:15:18 UTC
+++ src/helpers/Monitor.cpp
@@ -5,10 +5,8 @@ void CMonitor::onConnect(bool noRule) {
 void CMonitor::onConnect(bool noRule) {
     hyprListener_monitorDestroy.removeCallback();
     hyprListener_monitorFrame.removeCallback();
-    hyprListener_monitorStateRequest.removeCallback();
     hyprListener_monitorFrame.initCallback(&output->events.frame, &Events::listener_monitorFrame, this);
     hyprListener_monitorDestroy.initCallback(&output->events.destroy, &Events::listener_monitorDestroy, this);
-    hyprListener_monitorStateRequest.initCallback(&output->events.request_state, &Events::listener_monitorStateRequest, this);
 
     if (m_bEnabled) {
         wlr_output_enable(output, 1);
@@ -185,7 +183,7 @@ void CMonitor::onDisconnect() {
     if (!BACKUPMON) {
         Debug::log(WARN, "Unplugged last monitor, entering an unsafe state. Good luck my friend.");
 
-        hyprListener_monitorStateRequest.removeCallback();
+        hyprListener_monitorMode.removeCallback();
         hyprListener_monitorDestroy.removeCallback();
 
         g_pCompositor->m_bUnsafeState = true;
--- src/helpers/Monitor.hpp.orig	2022-12-06 13:15:18 UTC
+++ src/helpers/Monitor.hpp
@@ -56,7 +56,7 @@ class CMonitor { (public)
 
     DYNLISTENER(monitorFrame);
     DYNLISTENER(monitorDestroy);
-    DYNLISTENER(monitorStateRequest);
+    DYNLISTENER(monitorMode);
 
     // hack: a group = workspaces on a monitor.
     // I don't really care lol :P
--- src/helpers/SubsurfaceTree.cpp.orig	2022-12-06 13:15:18 UTC
+++ src/helpers/SubsurfaceTree.cpp
@@ -3,8 +3,8 @@ void addSurfaceGlobalOffset(SSurfaceTreeNode* node, in
 #include "../Compositor.hpp"
 
 void addSurfaceGlobalOffset(SSurfaceTreeNode* node, int* lx, int* ly) {
-    *lx += node->pSurface->current.dx;
-    *ly += node->pSurface->current.dy;
+    *lx += node->pSurface->sx;
+    *ly += node->pSurface->sy;
 
     if (node->offsetfn) {
         // This is the root node