mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 15:25:58 +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;
|
double subx, suby;
|
||||||
|
|
||||||
// calc for oversized windows... fucking bullshit, again.
|
// calc for oversized windows... fucking bullshit, again.
|
||||||
wlr_box geom;
|
wlr_box geom;
|
||||||
wlr_xdg_surface_get_geometry(pWindow->m_uSurface.xdg, &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);
|
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;
|
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) {
|
if (SURFACEAT) {
|
||||||
*ppLayerSurfaceFound = it->get();
|
*ppLayerSurfaceFound = it->get();
|
||||||
return SURFACEAT;
|
return SURFACEAT;
|
||||||
|
@ -1682,7 +1690,7 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni
|
||||||
const bool SWITCHINGISACTIVE = POLDMON->activeWorkspace == pWorkspace->m_iID;
|
const bool SWITCHINGISACTIVE = POLDMON->activeWorkspace == pWorkspace->m_iID;
|
||||||
|
|
||||||
// fix old mon
|
// fix old mon
|
||||||
int nextWorkspaceOnMonitorID = -1;
|
int nextWorkspaceOnMonitorID = -1;
|
||||||
for (auto& w : m_vWorkspaces) {
|
for (auto& w : m_vWorkspaces) {
|
||||||
if (w->m_iMonitorID == POLDMON->ID && w->m_iID != pWorkspace->m_iID) {
|
if (w->m_iMonitorID == POLDMON->ID && w->m_iID != pWorkspace->m_iID) {
|
||||||
nextWorkspaceOnMonitorID = w->m_iID;
|
nextWorkspaceOnMonitorID = w->m_iID;
|
||||||
|
|
Loading…
Reference in a new issue