summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp12
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);