diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index af0867a1..f41300fa 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -56,7 +56,6 @@ void Events::listener_unmapWindow(wl_listener* listener, void* data) { g_pCompositor->m_pLastFocus = nullptr; PWINDOW->m_bMappedX11 = false; - PWINDOW->m_bIsMapped = false; // remove the fullscreen window status from workspace if we closed it const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PWINDOW->m_iWorkspaceID); @@ -66,6 +65,9 @@ void Events::listener_unmapWindow(wl_listener* listener, void* data) { g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW); + // do this after onWindowRemoved because otherwise it'll think the window is invalid + PWINDOW->m_bIsMapped = false; + // refocus on a new window // TODO: investigate. // If a parent window has focus, any popups (XWayland) will be broken (they will disappear instantly) diff --git a/src/managers/InputManager.cpp b/src/managers/InputManager.cpp index 03f47bcd..5e64dea4 100644 --- a/src/managers/InputManager.cpp +++ b/src/managers/InputManager.cpp @@ -186,6 +186,8 @@ void CInputManager::onKeyboardKey(wlr_event_keyboard_key* e, SKeyboard* pKeyboar bool found = false; if (e->state == WL_KEYBOARD_KEY_STATE_PRESSED) { + Debug::log(LOG, "Pressed key %i, with the MODMASK being %i", e->keycode, MODS); + for (int i = 0; i < syms; ++i) found = g_pKeybindManager->handleKeybinds(MODS, keysyms[i]) || found; } else if (e->state == WL_KEYBOARD_KEY_STATE_RELEASED) { diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index a26a943b..49afd31d 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -35,7 +35,9 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t // oMg such performance hit!!11! // this little maneouver is gonna cost us 4µs const auto KBKEY = xkb_keysym_from_name(k.key.c_str(), XKB_KEYSYM_CASE_INSENSITIVE); - + // TODO: fix this with shift, shift makes all the keys uppercase + // if (shift) KBKEY -= someindex + if (key != KBKEY) continue;