From bcc836ee090d98cfa4d39dd4291d7b784c42ec4f Mon Sep 17 00:00:00 2001 From: Heorhi Valakhanovich Date: Fri, 11 Apr 2025 14:38:13 +0300 Subject: [PATCH 1/3] core: remove fake declaration in header --- src/core/hyprlock.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/core/hyprlock.hpp b/src/core/hyprlock.hpp index 2cb6617..64505ac 100644 --- a/src/core/hyprlock.hpp +++ b/src/core/hyprlock.hpp @@ -65,8 +65,6 @@ class CHyprlock { size_t getPasswordBufferLen(); size_t getPasswordBufferDisplayLen(); - std::string getActiveKeyboardLayout(); - SP getSessionLockMgr(); SP getSessionLock(); SP getCompositor(); From 2597a94c07b2bcec443bf8a6b514d3eca48ec86d Mon Sep 17 00:00:00 2001 From: Heorhi Valakhanovich Date: Fri, 11 Apr 2025 15:27:15 +0300 Subject: [PATCH 2/3] widgets: fix layout rendering --- src/renderer/widgets/IWidget.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/renderer/widgets/IWidget.cpp b/src/renderer/widgets/IWidget.cpp index 6d03aa5..48bd69f 100644 --- a/src/renderer/widgets/IWidget.cpp +++ b/src/renderer/widgets/IWidget.cpp @@ -101,9 +101,10 @@ static void replaceAllAttempts(std::string& str) { static void replaceAllLayout(std::string& str) { - const auto LAYOUTIDX = g_pHyprlock->m_uiActiveLayout; - const auto LAYOUTNAME = g_pSeatManager->getActiveKbLayoutName(); - size_t pos = 0; + const auto LAYOUTIDX = g_pHyprlock->m_uiActiveLayout; + const auto STR = xkb_keymap_layout_get_name(g_pSeatManager->m_pXKBKeymap, LAYOUTIDX); + const std::string LAYOUTNAME = STR ? STR : "error"; + size_t pos = 0; while ((pos = str.find("$LAYOUT", pos)) != std::string::npos) { if (str.substr(pos, 8).ends_with('[') && str.substr(pos).contains(']')) { From 8ea3fc42564cd9b2614bef779b3605fa4d907008 Mon Sep 17 00:00:00 2001 From: Heorhi Valakhanovich Date: Fri, 11 Apr 2025 15:27:45 +0300 Subject: [PATCH 3/3] core: remove CSeatManager::getActiveKbLayoutName --- src/core/Seat.cpp | 19 ------------------- src/core/Seat.hpp | 1 - 2 files changed, 20 deletions(-) diff --git a/src/core/Seat.cpp b/src/core/Seat.cpp index a2b39d2..56d96fd 100644 --- a/src/core/Seat.cpp +++ b/src/core/Seat.cpp @@ -134,25 +134,6 @@ void CSeatManager::registerCursorShape(SP shape) { m_pCursorShape = makeUnique(shape); } -std::string CSeatManager::getActiveKbLayoutName() { - if (!m_pXKBState || !m_pXKBKeymap) - return "error"; - - const auto LAYOUTSNUM = xkb_keymap_num_layouts(m_pXKBKeymap); - - for (uint32_t i = 0; i < LAYOUTSNUM; ++i) { - if (xkb_state_layout_index_is_active(m_pXKBState, i, XKB_STATE_LAYOUT_EFFECTIVE) == 1) { - const auto LAYOUTNAME = xkb_keymap_layout_get_name(m_pXKBKeymap, i); - - if (LAYOUTNAME) - return std::string{LAYOUTNAME}; - return "error"; - } - } - - return "none"; -} - bool CSeatManager::registered() { return m_pSeat; } diff --git a/src/core/Seat.hpp b/src/core/Seat.hpp index 9ce0cd5..bf6a7a0 100644 --- a/src/core/Seat.hpp +++ b/src/core/Seat.hpp @@ -14,7 +14,6 @@ class CSeatManager { void registerSeat(SP seat); void registerCursorShape(SP shape); bool registered(); - std::string getActiveKbLayoutName(); SP m_pKeeb; SP m_pPointer;