mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	view: add minimize method
...and call wlr_xwayland_surface_set_minimized() for xwayland surfaces on (un)minimize. Fixes: #958
This commit is contained in:
		
							parent
							
								
									945928a8f6
								
							
						
					
					
						commit
						16bf67a8cd
					
				
					 4 changed files with 19 additions and 0 deletions
				
			
		| 
						 | 
					@ -36,6 +36,7 @@ struct view_impl {
 | 
				
			||||||
	void (*set_fullscreen)(struct view *view, bool fullscreen);
 | 
						void (*set_fullscreen)(struct view *view, bool fullscreen);
 | 
				
			||||||
	void (*unmap)(struct view *view);
 | 
						void (*unmap)(struct view *view);
 | 
				
			||||||
	void (*maximize)(struct view *view, bool maximize);
 | 
						void (*maximize)(struct view *view, bool maximize);
 | 
				
			||||||
 | 
						void (*minimize)(struct view *view, bool minimize);
 | 
				
			||||||
	void (*move_to_front)(struct view *view);
 | 
						void (*move_to_front)(struct view *view);
 | 
				
			||||||
	void (*move_to_back)(struct view *view);
 | 
						void (*move_to_back)(struct view *view);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -230,6 +230,9 @@ view_minimize(struct view *view, bool minimized)
 | 
				
			||||||
		wlr_foreign_toplevel_handle_v1_set_minimized(
 | 
							wlr_foreign_toplevel_handle_v1_set_minimized(
 | 
				
			||||||
			view->toplevel.handle, minimized);
 | 
								view->toplevel.handle, minimized);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if (view->impl->minimize) {
 | 
				
			||||||
 | 
							view->impl->minimize(view, minimized);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	view->minimized = minimized;
 | 
						view->minimized = minimized;
 | 
				
			||||||
	if (minimized) {
 | 
						if (minimized) {
 | 
				
			||||||
		view->impl->unmap(view);
 | 
							view->impl->unmap(view);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -314,6 +314,12 @@ xdg_toplevel_view_maximize(struct view *view, bool maximized)
 | 
				
			||||||
	wlr_xdg_toplevel_set_maximized(xdg_toplevel_from_view(view), maximized);
 | 
						wlr_xdg_toplevel_set_maximized(xdg_toplevel_from_view(view), maximized);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					xdg_toplevel_view_minimize(struct view *view, bool minimized)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* noop */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
xdg_toplevel_view_set_activated(struct view *view, bool activated)
 | 
					xdg_toplevel_view_set_activated(struct view *view, bool activated)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -465,6 +471,7 @@ static const struct view_impl xdg_toplevel_view_impl = {
 | 
				
			||||||
	.set_fullscreen = xdg_toplevel_view_set_fullscreen,
 | 
						.set_fullscreen = xdg_toplevel_view_set_fullscreen,
 | 
				
			||||||
	.unmap = xdg_toplevel_view_unmap,
 | 
						.unmap = xdg_toplevel_view_unmap,
 | 
				
			||||||
	.maximize = xdg_toplevel_view_maximize,
 | 
						.maximize = xdg_toplevel_view_maximize,
 | 
				
			||||||
 | 
						.minimize = xdg_toplevel_view_minimize,
 | 
				
			||||||
	.move_to_front = view_impl_move_to_front,
 | 
						.move_to_front = view_impl_move_to_front,
 | 
				
			||||||
	.move_to_back = view_impl_move_to_back,
 | 
						.move_to_back = view_impl_move_to_back,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -510,6 +510,13 @@ xwayland_view_maximize(struct view *view, bool maximized)
 | 
				
			||||||
		maximized);
 | 
							maximized);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					xwayland_view_minimize(struct view *view, bool minimized)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						wlr_xwayland_surface_set_minimized(xwayland_surface_from_view(view),
 | 
				
			||||||
 | 
							minimized);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum z_direction {
 | 
					enum z_direction {
 | 
				
			||||||
	LAB_TO_FRONT,
 | 
						LAB_TO_FRONT,
 | 
				
			||||||
	LAB_TO_BACK,
 | 
						LAB_TO_BACK,
 | 
				
			||||||
| 
						 | 
					@ -604,6 +611,7 @@ static const struct view_impl xwayland_view_impl = {
 | 
				
			||||||
	.set_fullscreen = xwayland_view_set_fullscreen,
 | 
						.set_fullscreen = xwayland_view_set_fullscreen,
 | 
				
			||||||
	.unmap = xwayland_view_unmap,
 | 
						.unmap = xwayland_view_unmap,
 | 
				
			||||||
	.maximize = xwayland_view_maximize,
 | 
						.maximize = xwayland_view_maximize,
 | 
				
			||||||
 | 
						.minimize = xwayland_view_minimize,
 | 
				
			||||||
	.move_to_front = xwayland_view_move_to_front,
 | 
						.move_to_front = xwayland_view_move_to_front,
 | 
				
			||||||
	.move_to_back = xwayland_view_move_to_back,
 | 
						.move_to_back = xwayland_view_move_to_back,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue