mirror of
				https://codeberg.org/dwl/dwl.git
				synced 2025-11-03 09:01:45 -05:00 
			
		
		
		
	Keep windows fullscreen after redraw
This fixes the bug that happens when changing workspace (or any time arrange() is called) where there are fullscreen windows, which are still fullscreen but leave the space for layer surfaces like waybar (which should be hidden when going fullscreen) Also as soon one fullscreen window is found hte function returns to improve efficiency
This commit is contained in:
		
							parent
							
								
									172bcfd3ff
								
							
						
					
					
						commit
						a2ed3d45bb
					
				
					 1 changed files with 8 additions and 0 deletions
				
			
		
							
								
								
									
										8
									
								
								dwl.c
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								dwl.c
									
										
									
									
									
								
							| 
						 | 
					@ -1017,6 +1017,10 @@ monocle(Monitor *m)
 | 
				
			||||||
	wl_list_for_each(c, &clients, link) {
 | 
						wl_list_for_each(c, &clients, link) {
 | 
				
			||||||
		if (!VISIBLEON(c, m) || c->isfloating)
 | 
							if (!VISIBLEON(c, m) || c->isfloating)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
 | 
							if (c->isfullscreen) {
 | 
				
			||||||
 | 
								resize(c, c->mon->m.x, c->mon->m.y, c->mon->m.width, c->mon->m.height, 0);
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		resize(c, m->w.x, m->w.y, m->w.width, m->w.height, 0);
 | 
							resize(c, m->w.x, m->w.y, m->w.width, m->w.height, 0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1728,6 +1732,10 @@ tile(Monitor *m)
 | 
				
			||||||
	wl_list_for_each(c, &clients, link) {
 | 
						wl_list_for_each(c, &clients, link) {
 | 
				
			||||||
		if (!VISIBLEON(c, m) || c->isfloating)
 | 
							if (!VISIBLEON(c, m) || c->isfloating)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
 | 
							if (c->isfullscreen) {
 | 
				
			||||||
 | 
								resize(c, c->mon->m.x, c->mon->m.y, c->mon->m.width, c->mon->m.height, 0);
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		if (i < m->nmaster) {
 | 
							if (i < m->nmaster) {
 | 
				
			||||||
			h = (m->w.height - my) / (MIN(n, m->nmaster) - i);
 | 
								h = (m->w.height - my) / (MIN(n, m->nmaster) - i);
 | 
				
			||||||
			resize(c, m->w.x, m->w.y + my, mw, h, 0);
 | 
								resize(c, m->w.x, m->w.y + my, mw, h, 0);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue