From 0887e2ee6ec9c7ef106b71c906c6531730c8fdd4 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Fri, 26 May 2023 13:44:59 +0200 Subject: [PATCH] window: reveal current from group on toplevel activate --- src/Window.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Window.cpp b/src/Window.cpp index 1392650b..01d337e8 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -197,7 +197,16 @@ void CWindow::createToplevelHandle() { // handle events hyprListener_toplevelActivate.initCallback( - &m_phForeignToplevel->events.request_activate, [&](void* owner, void* data) { g_pCompositor->focusWindow(this); }, this, "Toplevel"); + &m_phForeignToplevel->events.request_activate, + [&](void* owner, void* data) { + if (isHidden() && m_sGroupData.pNextWindow) { + // grouped, change the current to us + setGroupCurrent(this); + } + + g_pCompositor->focusWindow(this); + }, + this, "Toplevel"); hyprListener_toplevelFullscreen.initCallback( &m_phForeignToplevel->events.request_fullscreen, @@ -677,8 +686,7 @@ bool CWindow::opaque() { return true; const auto EXTENTS = pixman_region32_extents(&m_uSurface.xdg->surface->opaque_region); - if (EXTENTS->x2 - EXTENTS->x1 >= m_uSurface.xdg->surface->current.buffer_width - && EXTENTS->y2 - EXTENTS->y1 >= m_uSurface.xdg->surface->current.buffer_height) + if (EXTENTS->x2 - EXTENTS->x1 >= m_uSurface.xdg->surface->current.buffer_width && EXTENTS->y2 - EXTENTS->y1 >= m_uSurface.xdg->surface->current.buffer_height) return true; return false;