mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	interactive: unify interactive_{cancel,finish} where possible
This also fixes a bug wherein dragging a window and pressing a hot-key to maximize or fullscreen a window could leave a snap-region highlight visible after the interactive move was canceled.
This commit is contained in:
		
							parent
							
								
									11cfbca7c7
								
							
						
					
					
						commit
						49dc55d4f0
					
				
					 1 changed files with 23 additions and 23 deletions
				
			
		| 
						 | 
					@ -196,24 +196,18 @@ snap_to_region(struct view *view)
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
interactive_finish(struct view *view)
 | 
					interactive_finish(struct view *view)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (view->server->grabbed_view == view) {
 | 
						if (view->server->grabbed_view != view) {
 | 
				
			||||||
		regions_hide_overlay(&view->server->seat);
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (view->server->input_mode == LAB_INPUT_STATE_MOVE) {
 | 
						if (view->server->input_mode == LAB_INPUT_STATE_MOVE) {
 | 
				
			||||||
			if (!snap_to_region(view)) {
 | 
					 | 
				
			||||||
				if (!snap_to_edge(view)) {
 | 
					 | 
				
			||||||
		/* Reset tiled state if not snapped */
 | 
							/* Reset tiled state if not snapped */
 | 
				
			||||||
 | 
							if (!snap_to_region(view) && !snap_to_edge(view)) {
 | 
				
			||||||
			view_set_untiled(view);
 | 
								view_set_untiled(view);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		resize_indicator_hide(view);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		view->server->input_mode = LAB_INPUT_STATE_PASSTHROUGH;
 | 
						interactive_cancel(view);
 | 
				
			||||||
		view->server->grabbed_view = NULL;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		/* Update focus/cursor image */
 | 
					 | 
				
			||||||
		cursor_update_focus(view->server);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					@ -224,11 +218,17 @@ interactive_finish(struct view *view)
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
interactive_cancel(struct view *view)
 | 
					interactive_cancel(struct view *view)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (view->server->grabbed_view == view) {
 | 
						if (view->server->grabbed_view != view) {
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						regions_hide_overlay(&view->server->seat);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	resize_indicator_hide(view);
 | 
						resize_indicator_hide(view);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	view->server->input_mode = LAB_INPUT_STATE_PASSTHROUGH;
 | 
						view->server->input_mode = LAB_INPUT_STATE_PASSTHROUGH;
 | 
				
			||||||
	view->server->grabbed_view = NULL;
 | 
						view->server->grabbed_view = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Update focus/cursor image */
 | 
						/* Update focus/cursor image */
 | 
				
			||||||
	cursor_update_focus(view->server);
 | 
						cursor_update_focus(view->server);
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue