mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	
							parent
							
								
									46e5aeac50
								
							
						
					
					
						commit
						5ecedc7199
					
				
					 2 changed files with 28 additions and 17 deletions
				
			
		| 
						 | 
					@ -516,11 +516,11 @@ swayc_t *destroy_view(swayc_t *view) {
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	sway_log(L_DEBUG, "Destroying view '%p'", view);
 | 
						sway_log(L_DEBUG, "Destroying view '%p'", view);
 | 
				
			||||||
	swayc_t *parent = view->parent;
 | 
					 | 
				
			||||||
	free_swayc(view);
 | 
						free_swayc(view);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Destroy empty containers
 | 
						// Destroy empty containers
 | 
				
			||||||
	if (parent->type == C_CONTAINER) {
 | 
						swayc_t *parent = view->parent;
 | 
				
			||||||
 | 
						if (parent && parent->type == C_CONTAINER) {
 | 
				
			||||||
		return destroy_container(parent);
 | 
							return destroy_container(parent);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return parent;
 | 
						return parent;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -553,6 +553,7 @@ static void handle_view_destroyed(wlc_handle handle) {
 | 
				
			||||||
		bool fullscreen = swayc_is_fullscreen(view);
 | 
							bool fullscreen = swayc_is_fullscreen(view);
 | 
				
			||||||
		remove_view_from_scratchpad(view);
 | 
							remove_view_from_scratchpad(view);
 | 
				
			||||||
		swayc_t *parent = destroy_view(view);
 | 
							swayc_t *parent = destroy_view(view);
 | 
				
			||||||
 | 
							if (parent) {
 | 
				
			||||||
			if (fullscreen) {
 | 
								if (fullscreen) {
 | 
				
			||||||
				parent->fullscreen = NULL;
 | 
									parent->fullscreen = NULL;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -569,6 +570,7 @@ static void handle_view_destroyed(wlc_handle handle) {
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			arrange_windows(parent, -1, -1);
 | 
								arrange_windows(parent, -1, -1);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		// Is it unmanaged?
 | 
							// Is it unmanaged?
 | 
				
			||||||
		int i;
 | 
							int i;
 | 
				
			||||||
| 
						 | 
					@ -584,6 +586,15 @@ static void handle_view_destroyed(wlc_handle handle) {
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							// Is it in the scratchpad?
 | 
				
			||||||
 | 
							for (i = 0; i < scratchpad->length; ++i) {
 | 
				
			||||||
 | 
								swayc_t *item = scratchpad->items[i];
 | 
				
			||||||
 | 
								if (item->handle == handle) {
 | 
				
			||||||
 | 
									list_del(scratchpad, i);
 | 
				
			||||||
 | 
									destroy_view(item);
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	set_focused_container(get_focused_view(&root_container));
 | 
						set_focused_container(get_focused_view(&root_container));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue