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…
Reference in New Issue