mirror of
https://github.com/hyprwm/Hyprland
synced 2025-02-18 13:02:09 +01:00
fixed closing layers not recalcing layout
This commit is contained in:
parent
cd720eaf66
commit
21418f97ff
2 changed files with 11 additions and 3 deletions
|
@ -31,7 +31,6 @@ Nevertheless, REPORT any you find! Make an issue!
|
||||||
- Window rules
|
- Window rules
|
||||||
- Drag and drop
|
- Drag and drop
|
||||||
- Fix electron rendering issues
|
- Fix electron rendering issues
|
||||||
- Fix closing layers not recalcing layout
|
|
||||||
- Fix sloppy dragging of windows
|
- Fix sloppy dragging of windows
|
||||||
- Optimization
|
- Optimization
|
||||||
- IPC done correctly with a socket
|
- IPC done correctly with a socket
|
||||||
|
|
|
@ -57,7 +57,7 @@ void Events::listener_destroyLayerSurface(wl_listener* listener, void* data) {
|
||||||
SLayerSurface* layersurface = wl_container_of(listener, layersurface, listen_destroyLayerSurface);
|
SLayerSurface* layersurface = wl_container_of(listener, layersurface, listen_destroyLayerSurface);
|
||||||
|
|
||||||
if (layersurface->layerSurface->mapped)
|
if (layersurface->layerSurface->mapped)
|
||||||
layersurface->layerSurface->mapped = 0;
|
layersurface->layerSurface->mapped = false;
|
||||||
|
|
||||||
if (layersurface->layerSurface->surface == g_pCompositor->m_pLastFocus)
|
if (layersurface->layerSurface->surface == g_pCompositor->m_pLastFocus)
|
||||||
g_pCompositor->m_pLastFocus = nullptr;
|
g_pCompositor->m_pLastFocus = nullptr;
|
||||||
|
@ -73,12 +73,21 @@ void Events::listener_destroyLayerSurface(wl_listener* listener, void* data) {
|
||||||
PMONITOR->m_aLayerSurfaceLists[layersurface->layer].remove(layersurface);
|
PMONITOR->m_aLayerSurfaceLists[layersurface->layer].remove(layersurface);
|
||||||
delete layersurface;
|
delete layersurface;
|
||||||
|
|
||||||
|
// rearrange to fix the reserved areas
|
||||||
|
if (PMONITOR) {
|
||||||
|
g_pHyprRenderer->arrangeLayersForMonitor(PMONITOR->ID);
|
||||||
|
g_pLayoutManager->getCurrentLayout()->recalculateMonitor(PMONITOR->ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Debug::log(LOG, "LayerSurface %x destroyed", layersurface);
|
Debug::log(LOG, "LayerSurface %x destroyed", layersurface);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Events::listener_mapLayerSurface(wl_listener* listener, void* data) {
|
void Events::listener_mapLayerSurface(wl_listener* listener, void* data) {
|
||||||
SLayerSurface* layersurface = wl_container_of(listener, layersurface, listen_mapLayerSurface);
|
SLayerSurface* layersurface = wl_container_of(listener, layersurface, listen_mapLayerSurface);
|
||||||
|
|
||||||
|
layersurface->layerSurface->mapped = true;
|
||||||
|
|
||||||
wlr_surface_send_enter(layersurface->layerSurface->surface, layersurface->layerSurface->output);
|
wlr_surface_send_enter(layersurface->layerSurface->surface, layersurface->layerSurface->output);
|
||||||
|
|
||||||
// fix if it changed its mon
|
// fix if it changed its mon
|
||||||
|
@ -105,7 +114,7 @@ void Events::listener_unmapLayerSurface(wl_listener* listener, void* data) {
|
||||||
SLayerSurface* layersurface = wl_container_of(listener, layersurface, listen_unmapLayerSurface);
|
SLayerSurface* layersurface = wl_container_of(listener, layersurface, listen_unmapLayerSurface);
|
||||||
|
|
||||||
if (layersurface->layerSurface->mapped)
|
if (layersurface->layerSurface->mapped)
|
||||||
layersurface->layerSurface->mapped = 0;
|
layersurface->layerSurface->mapped = false;
|
||||||
|
|
||||||
if (layersurface->layerSurface->surface == g_pCompositor->m_pLastFocus)
|
if (layersurface->layerSurface->surface == g_pCompositor->m_pLastFocus)
|
||||||
g_pCompositor->m_pLastFocus = nullptr;
|
g_pCompositor->m_pLastFocus = nullptr;
|
||||||
|
|
Loading…
Add table
Reference in a new issue