When zooming, focus on the cursor.
This commit is contained in:
		
							parent
							
								
									e83cadd03b
								
							
						
					
					
						commit
						3aeedd37b6
					
				| @ -1129,9 +1129,15 @@ on_button_release (GtkWidget *widget, GdkEventButton *event, gpointer user_data) | |||||||
| static gboolean | static gboolean | ||||||
| on_scroll (GtkWidget *widget, GdkEventScroll *event, gpointer user_data) | on_scroll (GtkWidget *widget, GdkEventScroll *event, gpointer user_data) | ||||||
| { | { | ||||||
|  | 	gdouble prev_x, prev_y; | ||||||
|  | 	gdouble new_x, new_y; | ||||||
| 	LdCanvas *self; | 	LdCanvas *self; | ||||||
| 
 | 
 | ||||||
| 	self = LD_CANVAS (widget); | 	self = LD_CANVAS (widget); | ||||||
|  | 
 | ||||||
|  | 	ld_canvas_widget_to_diagram_coords (self, | ||||||
|  | 		event->x, event->y, &prev_x, &prev_y); | ||||||
|  | 
 | ||||||
| 	switch (event->direction) | 	switch (event->direction) | ||||||
| 	{ | 	{ | ||||||
| 	case GDK_SCROLL_UP: | 	case GDK_SCROLL_UP: | ||||||
| @ -1144,6 +1150,13 @@ on_scroll (GtkWidget *widget, GdkEventScroll *event, gpointer user_data) | |||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	ld_canvas_widget_to_diagram_coords (self, | ||||||
|  | 		event->x, event->y, &new_x, &new_y); | ||||||
|  | 
 | ||||||
|  | 	/* Focus on the point under the cursor. */ | ||||||
|  | 	self->priv->x += prev_x - new_x; | ||||||
|  | 	self->priv->y += prev_y - new_y; | ||||||
|  | 
 | ||||||
| 	update_adjustments (self); | 	update_adjustments (self); | ||||||
| 	check_terminals (self, event->x, event->y); | 	check_terminals (self, event->x, event->y); | ||||||
| 	gtk_widget_queue_draw (widget); | 	gtk_widget_queue_draw (widget); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user