summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2008-01-30 20:05:58 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2008-01-30 20:05:58 +0000
commit1f73043224256571ebbbbad8b7e8be4bbc09f9ed (patch)
tree8ae1c33244f10de4166ac6d708b18920b929164d /src/widgets/desktop-widget.cpp
parentA bunch of i18n-related issues fixed, ru.po slightly updated. Please do not f... (diff)
downloadinkscape-1f73043224256571ebbbbad8b7e8be4bbc09f9ed.tar.gz
inkscape-1f73043224256571ebbbbad8b7e8be4bbc09f9ed.zip
2nd part of the fix for bug #167500: correctly update the rulers when they change size
(bzr r4621)
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
-rw-r--r--src/widgets/desktop-widget.cpp22
1 files changed, 19 insertions, 3 deletions
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));
}