From 1f73043224256571ebbbbad8b7e8be4bbc09f9ed Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Wed, 30 Jan 2008 20:05:58 +0000 Subject: 2nd part of the fix for bug #167500: correctly update the rulers when they change size (bzr r4621) --- src/widgets/desktop-widget.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 4d44b1b26..76452d851 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1342,13 +1342,29 @@ SPDesktopWidget::viewSetPosition (NR::Point p) void sp_desktop_widget_update_rulers (SPDesktopWidget *dtw) { - NR::Rect const viewbox = dtw->canvas->getViewbox(); + sp_desktop_widget_update_hruler(dtw); + sp_desktop_widget_update_vruler(dtw); +} + +void +sp_desktop_widget_update_hruler (SPDesktopWidget *dtw) +{ + NR::Rect viewbox = dtw->canvas->getViewbox(); + double const scale = dtw->desktop->current_zoom(); double s = viewbox.min()[NR::X] / scale - dtw->ruler_origin[NR::X]; double e = viewbox.max()[NR::X] / scale - dtw->ruler_origin[NR::X]; gtk_ruler_set_range(GTK_RULER(dtw->hruler), s, e, GTK_RULER(dtw->hruler)->position, (e - s)); - s = viewbox.min()[NR::Y] / -scale - dtw->ruler_origin[NR::Y]; - e = viewbox.max()[NR::Y] / -scale - dtw->ruler_origin[NR::Y]; +} + +void +sp_desktop_widget_update_vruler (SPDesktopWidget *dtw) +{ + NR::Rect viewbox = dtw->canvas->getViewbox(); + + double const scale = dtw->desktop->current_zoom(); + double s = viewbox.min()[NR::Y] / -scale - dtw->ruler_origin[NR::Y]; + double e = viewbox.max()[NR::Y] / -scale - dtw->ruler_origin[NR::Y]; gtk_ruler_set_range(GTK_RULER(dtw->vruler), s, e, GTK_RULER(dtw->vruler)->position, (e - s)); } -- cgit v1.2.3