mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-08 17:45:59 +01:00
respect ls protocol by forcing kb focus to kb interactive top and overlay
This commit is contained in:
parent
e7940569dd
commit
0f3214714f
1 changed files with 10 additions and 2 deletions
|
@ -704,7 +704,7 @@ wlr_surface* CCompositor::vectorWindowToSurface(const Vector2D& pos, CWindow* pW
|
|||
double subx, suby;
|
||||
|
||||
// calc for oversized windows... fucking bullshit, again.
|
||||
wlr_box geom;
|
||||
wlr_box geom;
|
||||
wlr_xdg_surface_get_geometry(pWindow->m_uSurface.xdg, &geom);
|
||||
|
||||
const auto PFOUND = wlr_xdg_surface_surface_at(PSURFACE, pos.x - pWindow->m_vRealPosition.vec().x + geom.x, pos.y - pWindow->m_vRealPosition.vec().y + geom.y, &subx, &suby);
|
||||
|
@ -908,6 +908,14 @@ wlr_surface* CCompositor::vectorToLayerSurface(const Vector2D& pos, std::vector<
|
|||
SURFACEAT = (*it)->layerSurface->surface;
|
||||
}
|
||||
|
||||
if ((*it)->layerSurface->current.keyboard_interactive && (*it)->layer >= ZWLR_LAYER_SHELL_V1_LAYER_TOP) {
|
||||
if (!SURFACEAT)
|
||||
SURFACEAT = (*it)->layerSurface->surface;
|
||||
|
||||
*ppLayerSurfaceFound = it->get();
|
||||
return SURFACEAT;
|
||||
}
|
||||
|
||||
if (SURFACEAT) {
|
||||
*ppLayerSurfaceFound = it->get();
|
||||
return SURFACEAT;
|
||||
|
@ -1682,7 +1690,7 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni
|
|||
const bool SWITCHINGISACTIVE = POLDMON->activeWorkspace == pWorkspace->m_iID;
|
||||
|
||||
// fix old mon
|
||||
int nextWorkspaceOnMonitorID = -1;
|
||||
int nextWorkspaceOnMonitorID = -1;
|
||||
for (auto& w : m_vWorkspaces) {
|
||||
if (w->m_iMonitorID == POLDMON->ID && w->m_iID != pWorkspace->m_iID) {
|
||||
nextWorkspaceOnMonitorID = w->m_iID;
|
||||
|
|
Loading…
Reference in a new issue