mirror of https://github.com/KLayout/klayout.git
Zoom in/out menu functions now use mouse position for zoom center instead of center (if mouse is inside window)
This commit is contained in:
parent
7ff9b4d8e6
commit
7b4ff5d823
|
|
@ -3852,13 +3852,26 @@ LayoutViewBase::pan_center (const db::DPoint &p)
|
|||
void
|
||||
LayoutViewBase::zoom_in ()
|
||||
{
|
||||
shift_window (zoom_factor, 0.0, 0.0);
|
||||
zoom_by (zoom_factor);
|
||||
}
|
||||
|
||||
void
|
||||
LayoutViewBase::zoom_out ()
|
||||
{
|
||||
shift_window (1.0 / zoom_factor, 0.0, 0.0);
|
||||
zoom_by (1.0 / zoom_factor);
|
||||
}
|
||||
|
||||
void
|
||||
LayoutViewBase::zoom_by (double f)
|
||||
{
|
||||
db::DBox b = mp_canvas->viewport ().box ();
|
||||
|
||||
db::DPoint c = b.center ();
|
||||
if (mp_canvas->mouse_in_window ()) {
|
||||
c = mp_canvas->mouse_position_um ();
|
||||
}
|
||||
|
||||
zoom_box ((b.moved (db::DPoint () - c) * f).moved (c - db::DPoint ()));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -2881,6 +2881,8 @@ private:
|
|||
bool has_max_hier () const;
|
||||
int max_hier_level () const;
|
||||
|
||||
void zoom_by (double f);
|
||||
|
||||
void update_event_handlers ();
|
||||
void viewport_changed ();
|
||||
void cellview_changed (unsigned int index);
|
||||
|
|
|
|||
Loading…
Reference in New Issue