From df132e5ff3395a15c1b48461cc588e4222ae1e02 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 19 Nov 2022 16:28:04 +0000 Subject: [PATCH] update wlroots dep --- src/Compositor.cpp | 6 ++---- src/events/Events.hpp | 1 + src/events/Monitors.cpp | 7 +++++++ src/helpers/Monitor.cpp | 4 +++- src/helpers/Monitor.hpp | 2 +- src/helpers/SubsurfaceTree.cpp | 4 ++-- subprojects/wlroots | 2 +- 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 5e8910e6..e6a39c7b 100644 --- a/src/Compositor.cpp +++ b/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_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay, &m_sWLRSession); if (!m_sWLRBackend) { Debug::log(CRIT, "m_sWLRBackend was NULL!"); @@ -132,7 +132,7 @@ CCompositor::CCompositor() { m_sWLRIdle = wlr_idle_create(m_sWLDisplay); - m_sWLRLayerShell = wlr_layer_shell_v1_create(m_sWLDisplay); + m_sWLRLayerShell = wlr_layer_shell_v1_create(m_sWLDisplay, 4); m_sWLRServerDecoMgr = wlr_server_decoration_manager_create(m_sWLDisplay); m_sWLRXDGDecoMgr = wlr_xdg_decoration_manager_v1_create(m_sWLDisplay); @@ -173,8 +173,6 @@ CCompositor::CCompositor() { 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); m_sWLRIMEMgr = wlr_input_method_manager_v2_create(m_sWLDisplay); diff --git a/src/events/Events.hpp b/src/events/Events.hpp index 4b6d8f76..e3088110 100644 --- a/src/events/Events.hpp +++ b/src/events/Events.hpp @@ -96,6 +96,7 @@ namespace Events { // Monitor part 2 the sequel DYNLISTENFUNC(monitorFrame); DYNLISTENFUNC(monitorDestroy); + DYNLISTENFUNC(monitorStateRequest); // XWayland LISTENER(readyXWayland); diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 1924fe22..4414187a 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -354,3 +354,10 @@ void Events::listener_monitorDestroy(void* owner, void* data) { } } } + +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); +} diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index c7fc6750..76150f9b 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -5,8 +5,10 @@ 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); @@ -183,7 +185,7 @@ void CMonitor::onDisconnect() { if (!BACKUPMON) { Debug::log(WARN, "Unplugged last monitor, entering an unsafe state. Good luck my friend."); - hyprListener_monitorMode.removeCallback(); + hyprListener_monitorStateRequest.removeCallback(); hyprListener_monitorDestroy.removeCallback(); g_pCompositor->m_bUnsafeState = true; diff --git a/src/helpers/Monitor.hpp b/src/helpers/Monitor.hpp index 0f789781..c2cc179b 100644 --- a/src/helpers/Monitor.hpp +++ b/src/helpers/Monitor.hpp @@ -56,7 +56,7 @@ public: DYNLISTENER(monitorFrame); DYNLISTENER(monitorDestroy); - DYNLISTENER(monitorMode); + DYNLISTENER(monitorStateRequest); // hack: a group = workspaces on a monitor. // I don't really care lol :P diff --git a/src/helpers/SubsurfaceTree.cpp b/src/helpers/SubsurfaceTree.cpp index 349f5090..a41030f5 100644 --- a/src/helpers/SubsurfaceTree.cpp +++ b/src/helpers/SubsurfaceTree.cpp @@ -3,8 +3,8 @@ #include "../Compositor.hpp" void addSurfaceGlobalOffset(SSurfaceTreeNode* node, int* lx, int* ly) { - *lx += node->pSurface->sx; - *ly += node->pSurface->sy; + *lx += node->pSurface->current.dx; + *ly += node->pSurface->current.dy; if (node->offsetfn) { // This is the root node diff --git a/subprojects/wlroots b/subprojects/wlroots index 627a5c51..4ff46e6c 160000 --- a/subprojects/wlroots +++ b/subprojects/wlroots @@ -1 +1 @@ -Subproject commit 627a5c511278e67c3c308cdc6a639cbb490f48c3 +Subproject commit 4ff46e6cf9463e594605928feeb7c55cf323b5e7