diff --git a/src/Window.cpp b/src/Window.cpp index 11627d5c..1c4a326d 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -487,8 +487,6 @@ void CWindow::onMap() { "CWindow"); m_vReportedSize = m_vPendingReportedSize; - - g_pCompositor->updateWorkspaceWindows(m_iWorkspaceID); } void CWindow::onBorderAngleAnimEnd(void* ptr) { diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 477c3986..7e4ce769 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -1038,9 +1038,9 @@ void CConfigManager::handleWindowRuleV2(const std::string& command, const std::s // find workspacepos that isn't onworkspacepos size_t WORKSPACEPOS = std::string::npos; - size_t currentPos = 0; + size_t currentPos = VALUE.find("workspace:"); while (currentPos != std::string::npos) { - if (currentPos > 0 && VALUE[currentPos - 1] != 'n') { + if (currentPos == 0 || VALUE[currentPos - 1] != 'n') { WORKSPACEPOS = currentPos; break; } diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 46427166..ce5103ee 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -643,6 +643,8 @@ void Events::listener_mapWindow(void* owner, void* data) { // fix some xwayland apps that don't behave nicely PWINDOW->m_vReportedSize = PWINDOW->m_vPendingReportedSize; + + g_pCompositor->updateWorkspaceWindows(PWINDOW->m_iWorkspaceID); } void Events::listener_unmapWindow(void* owner, void* data) {