diff options
| author | Maxim Baz <git@maximbaz.com> | 2023-01-14 20:31:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-14 20:31:11 +0100 |
| commit | 668d90c70093ce10816ba525780988e848f8d4af (patch) | |
| tree | c58e18aa7f559847133439521532cedc5a289566 /src/events/Windows.cpp | |
| parent | b3012d97ab32abb6915f6ed496a04e206a9f0b0b (diff) | |
Implement urgency hint for workspaces (#1379)
When there are any unfocused windows that request activation, mark the workspace as urgent.
Diffstat (limited to 'src/events/Windows.cpp')
| -rw-r--r-- | src/events/Windows.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 134d822c..86496bfc 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -803,7 +803,7 @@ void Events::listener_activateXDG(wl_listener* listener, void* data) { Debug::log(LOG, "Activate request for surface at %x", E->surface); - if (!*PFOCUSONACTIVATE || !wlr_surface_is_xdg_surface(E->surface)) + if (!wlr_surface_is_xdg_surface(E->surface)) return; const auto PWINDOW = g_pCompositor->getWindowFromSurface(E->surface); @@ -811,6 +811,16 @@ void Events::listener_activateXDG(wl_listener* listener, void* data) { if (!PWINDOW || PWINDOW == g_pCompositor->m_pLastWindow) return; + PWINDOW->m_bIsUrgent = true; + + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PWINDOW->m_iWorkspaceID); + if (PWORKSPACE->m_pWlrHandle) { + wlr_ext_workspace_handle_v1_set_urgent(PWORKSPACE->m_pWlrHandle, 1); + } + + if (!*PFOCUSONACTIVATE) + return; + if (PWINDOW->m_bIsFloating) g_pCompositor->moveWindowToTop(PWINDOW); |
