windows: refactor class member vars (#10168)
This commit is contained in:
parent
c505eb55ff
commit
2118440488
43 changed files with 2124 additions and 2134 deletions
|
|
@ -21,7 +21,7 @@ CHyprXWaylandManager::~CHyprXWaylandManager() {
|
|||
}
|
||||
|
||||
SP<CWLSurfaceResource> CHyprXWaylandManager::getWindowSurface(PHLWINDOW pWindow) {
|
||||
return pWindow ? pWindow->m_pWLSurface->resource() : nullptr;
|
||||
return pWindow ? pWindow->m_wlSurface->resource() : nullptr;
|
||||
}
|
||||
|
||||
void CHyprXWaylandManager::activateSurface(SP<CWLSurfaceResource> pSurface, bool activate) {
|
||||
|
|
@ -40,41 +40,41 @@ void CHyprXWaylandManager::activateSurface(SP<CWLSurfaceResource> pSurface, bool
|
|||
return;
|
||||
}
|
||||
|
||||
if (PWINDOW->m_bIsX11) {
|
||||
if (PWINDOW->m_pXWaylandSurface) {
|
||||
if (PWINDOW->m_isX11) {
|
||||
if (PWINDOW->m_xwaylandSurface) {
|
||||
if (activate) {
|
||||
PWINDOW->m_pXWaylandSurface->setMinimized(false);
|
||||
PWINDOW->m_pXWaylandSurface->restackToTop();
|
||||
PWINDOW->m_xwaylandSurface->setMinimized(false);
|
||||
PWINDOW->m_xwaylandSurface->restackToTop();
|
||||
}
|
||||
PWINDOW->m_pXWaylandSurface->activate(activate);
|
||||
PWINDOW->m_xwaylandSurface->activate(activate);
|
||||
}
|
||||
} else if (PWINDOW->m_pXDGSurface && PWINDOW->m_pXDGSurface->toplevel)
|
||||
PWINDOW->m_pXDGSurface->toplevel->setActive(activate);
|
||||
} else if (PWINDOW->m_xdgSurface && PWINDOW->m_xdgSurface->toplevel)
|
||||
PWINDOW->m_xdgSurface->toplevel->setActive(activate);
|
||||
}
|
||||
|
||||
void CHyprXWaylandManager::activateWindow(PHLWINDOW pWindow, bool activate) {
|
||||
if (pWindow->m_bIsX11) {
|
||||
if (pWindow->m_isX11) {
|
||||
|
||||
if (activate) {
|
||||
pWindow->sendWindowSize(true); // update xwayland output pos
|
||||
pWindow->m_pXWaylandSurface->setMinimized(false);
|
||||
pWindow->m_xwaylandSurface->setMinimized(false);
|
||||
|
||||
if (!pWindow->isX11OverrideRedirect())
|
||||
pWindow->m_pXWaylandSurface->restackToTop();
|
||||
pWindow->m_xwaylandSurface->restackToTop();
|
||||
}
|
||||
|
||||
pWindow->m_pXWaylandSurface->activate(activate);
|
||||
pWindow->m_xwaylandSurface->activate(activate);
|
||||
|
||||
} else if (pWindow->m_pXDGSurface && pWindow->m_pXDGSurface->toplevel)
|
||||
pWindow->m_pXDGSurface->toplevel->setActive(activate);
|
||||
} else if (pWindow->m_xdgSurface && pWindow->m_xdgSurface->toplevel)
|
||||
pWindow->m_xdgSurface->toplevel->setActive(activate);
|
||||
|
||||
if (activate) {
|
||||
g_pCompositor->m_lastFocus = getWindowSurface(pWindow);
|
||||
g_pCompositor->m_lastWindow = pWindow;
|
||||
}
|
||||
|
||||
if (!pWindow->m_bPinned)
|
||||
pWindow->m_pWorkspace->m_lastFocusedWindow = pWindow;
|
||||
if (!pWindow->m_pinned)
|
||||
pWindow->m_workspace->m_lastFocusedWindow = pWindow;
|
||||
}
|
||||
|
||||
CBox CHyprXWaylandManager::getGeometryForWindow(PHLWINDOW pWindow) {
|
||||
|
|
@ -83,52 +83,52 @@ CBox CHyprXWaylandManager::getGeometryForWindow(PHLWINDOW pWindow) {
|
|||
|
||||
CBox box;
|
||||
|
||||
if (pWindow->m_bIsX11)
|
||||
box = pWindow->m_pXWaylandSurface->geometry;
|
||||
else if (pWindow->m_pXDGSurface)
|
||||
box = pWindow->m_pXDGSurface->current.geometry;
|
||||
if (pWindow->m_isX11)
|
||||
box = pWindow->m_xwaylandSurface->geometry;
|
||||
else if (pWindow->m_xdgSurface)
|
||||
box = pWindow->m_xdgSurface->current.geometry;
|
||||
|
||||
return box;
|
||||
}
|
||||
|
||||
void CHyprXWaylandManager::sendCloseWindow(PHLWINDOW pWindow) {
|
||||
if (pWindow->m_bIsX11)
|
||||
pWindow->m_pXWaylandSurface->close();
|
||||
else if (pWindow->m_pXDGSurface && pWindow->m_pXDGSurface->toplevel)
|
||||
pWindow->m_pXDGSurface->toplevel->close();
|
||||
if (pWindow->m_isX11)
|
||||
pWindow->m_xwaylandSurface->close();
|
||||
else if (pWindow->m_xdgSurface && pWindow->m_xdgSurface->toplevel)
|
||||
pWindow->m_xdgSurface->toplevel->close();
|
||||
}
|
||||
|
||||
bool CHyprXWaylandManager::shouldBeFloated(PHLWINDOW pWindow, bool pending) {
|
||||
if (pWindow->m_bIsX11) {
|
||||
for (const auto& a : pWindow->m_pXWaylandSurface->atoms)
|
||||
if (pWindow->m_isX11) {
|
||||
for (const auto& a : pWindow->m_xwaylandSurface->atoms)
|
||||
if (a == HYPRATOMS["_NET_WM_WINDOW_TYPE_DIALOG"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_SPLASH"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_TOOLBAR"] ||
|
||||
a == HYPRATOMS["_NET_WM_WINDOW_TYPE_UTILITY"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_TOOLTIP"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_POPUP_MENU"] ||
|
||||
a == HYPRATOMS["_NET_WM_WINDOW_TYPE_DOCK"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_DROPDOWN_MENU"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_MENU"] ||
|
||||
a == HYPRATOMS["_KDE_NET_WM_WINDOW_TYPE_OVERRIDE"]) {
|
||||
|
||||
if (a == HYPRATOMS["_NET_WM_WINDOW_TYPE_DROPDOWN_MENU"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_MENU"])
|
||||
pWindow->m_bX11ShouldntFocus = true;
|
||||
pWindow->m_X11ShouldntFocus = true;
|
||||
|
||||
if (a != HYPRATOMS["_NET_WM_WINDOW_TYPE_DIALOG"])
|
||||
pWindow->m_bNoInitialFocus = true;
|
||||
pWindow->m_noInitialFocus = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pWindow->isModal() || pWindow->m_pXWaylandSurface->transient ||
|
||||
(pWindow->m_pXWaylandSurface->role.contains("task_dialog") || pWindow->m_pXWaylandSurface->role.contains("pop-up")) || pWindow->m_pXWaylandSurface->overrideRedirect)
|
||||
if (pWindow->isModal() || pWindow->m_xwaylandSurface->transient ||
|
||||
(pWindow->m_xwaylandSurface->role.contains("task_dialog") || pWindow->m_xwaylandSurface->role.contains("pop-up")) || pWindow->m_xwaylandSurface->overrideRedirect)
|
||||
return true;
|
||||
|
||||
const auto SIZEHINTS = pWindow->m_pXWaylandSurface->sizeHints.get();
|
||||
if (pWindow->m_pXWaylandSurface->transient || pWindow->m_pXWaylandSurface->parent ||
|
||||
const auto SIZEHINTS = pWindow->m_xwaylandSurface->sizeHints.get();
|
||||
if (pWindow->m_xwaylandSurface->transient || pWindow->m_xwaylandSurface->parent ||
|
||||
(SIZEHINTS && (SIZEHINTS->min_width == SIZEHINTS->max_width) && (SIZEHINTS->min_height == SIZEHINTS->max_height)))
|
||||
return true;
|
||||
} else {
|
||||
if (!pWindow->m_pXDGSurface || !pWindow->m_pXDGSurface->toplevel)
|
||||
if (!pWindow->m_xdgSurface || !pWindow->m_xdgSurface->toplevel)
|
||||
return false;
|
||||
|
||||
const auto PSTATE = pending ? &pWindow->m_pXDGSurface->toplevel->pending : &pWindow->m_pXDGSurface->toplevel->current;
|
||||
if (pWindow->m_pXDGSurface->toplevel->parent ||
|
||||
const auto PSTATE = pending ? &pWindow->m_xdgSurface->toplevel->pending : &pWindow->m_xdgSurface->toplevel->current;
|
||||
if (pWindow->m_xdgSurface->toplevel->parent ||
|
||||
(PSTATE->minSize.x != 0 && PSTATE->minSize.y != 0 && (PSTATE->minSize.x == PSTATE->maxSize.x || PSTATE->minSize.y == PSTATE->maxSize.y)))
|
||||
return true;
|
||||
}
|
||||
|
|
@ -137,31 +137,31 @@ bool CHyprXWaylandManager::shouldBeFloated(PHLWINDOW pWindow, bool pending) {
|
|||
}
|
||||
|
||||
void CHyprXWaylandManager::checkBorders(PHLWINDOW pWindow) {
|
||||
if (!pWindow->m_bIsX11)
|
||||
if (!pWindow->m_isX11)
|
||||
return;
|
||||
|
||||
for (auto const& a : pWindow->m_pXWaylandSurface->atoms) {
|
||||
for (auto const& a : pWindow->m_xwaylandSurface->atoms) {
|
||||
if (a == HYPRATOMS["_NET_WM_WINDOW_TYPE_POPUP_MENU"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_NOTIFICATION"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_DROPDOWN_MENU"] ||
|
||||
a == HYPRATOMS["_NET_WM_WINDOW_TYPE_COMBO"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_MENU"] || a == HYPRATOMS["_NET_WM_WINDOW_TYPE_SPLASH"] ||
|
||||
a == HYPRATOMS["_NET_WM_WINDOW_TYPE_TOOLTIP"]) {
|
||||
|
||||
pWindow->m_bX11DoesntWantBorders = true;
|
||||
pWindow->m_X11DoesntWantBorders = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (pWindow->isX11OverrideRedirect())
|
||||
pWindow->m_bX11DoesntWantBorders = true;
|
||||
pWindow->m_X11DoesntWantBorders = true;
|
||||
}
|
||||
|
||||
void CHyprXWaylandManager::setWindowFullscreen(PHLWINDOW pWindow, bool fullscreen) {
|
||||
if (!pWindow)
|
||||
return;
|
||||
|
||||
if (pWindow->m_bIsX11)
|
||||
pWindow->m_pXWaylandSurface->setFullscreen(fullscreen);
|
||||
else if (pWindow->m_pXDGSurface && pWindow->m_pXDGSurface->toplevel)
|
||||
pWindow->m_pXDGSurface->toplevel->setFullscreen(fullscreen);
|
||||
if (pWindow->m_isX11)
|
||||
pWindow->m_xwaylandSurface->setFullscreen(fullscreen);
|
||||
else if (pWindow->m_xdgSurface && pWindow->m_xdgSurface->toplevel)
|
||||
pWindow->m_xdgSurface->toplevel->setFullscreen(fullscreen);
|
||||
}
|
||||
|
||||
Vector2D CHyprXWaylandManager::waylandToXWaylandCoords(const Vector2D& coord) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue