Code

patch 1734633: option to save window geometry in prefs
[inkscape.git] / src / ui / view / edit-widget.cpp
index 99fd2fb8020bd416997165be65ed62e9295e11de..ca298cd5dbd4f3ed4c648a711fa34864aec44e87 100644 (file)
@@ -1167,6 +1167,18 @@ EditWidget::getPointer()
     return NR::Point (x, y);
 }
 
+void
+EditWidget::setIconified()
+{
+    iconify();
+}
+
+void
+EditWidget::setMaximized()
+{
+    maximize();
+}
+
 void
 EditWidget::setFullscreen()
 {
@@ -1342,7 +1354,9 @@ EditWidget::deactivateDesktop()
 void
 EditWidget::viewSetPosition (NR::Point p)
 {
-    p -= _namedview->gridorigin;
+    // p -= _namedview->gridorigin;    
+    /// \todo Why was the origin corrected for the grid origin? (johan)
+    
     double lo, up, pos, max;
     _top_ruler.get_range (lo, up, pos, max);
     _top_ruler.set_range (lo, up, p[NR::X], max);
@@ -1353,18 +1367,19 @@ EditWidget::viewSetPosition (NR::Point p)
 void
 EditWidget::updateRulers()
 {
-    NR::Point origin = _namedview->gridorigin;
-
+    //NR::Point gridorigin = _namedview->gridorigin;
+    /// \todo Why was the origin corrected for the grid origin? (johan)
+    
     NR::Rect const viewbox = _svg_canvas.spobj()->getViewbox();
     double lo, up, pos, max;
     double const scale = _desktop->current_zoom();
-    double s = viewbox.min()[NR::X] / scale - origin[NR::X];
-    double e = viewbox.max()[NR::X] / scale - origin[NR::X];
+    double s = viewbox.min()[NR::X] / scale; //- gridorigin[NR::X];
+    double e = viewbox.max()[NR::X] / scale; //- gridorigin[NR::X];
     _top_ruler.get_range(lo, up, pos, max);
     _top_ruler.set_range(s, e, pos, e);
-    s = viewbox.min()[NR::Y] / -scale - origin[NR::Y];
-    e = viewbox.max()[NR::Y] / -scale - origin[NR::Y];
-    _left_ruler.set_range(s, e, origin[NR::Y], e);
+    s = viewbox.min()[NR::Y] / -scale; //- gridorigin[NR::Y];
+    e = viewbox.max()[NR::Y] / -scale; //- gridorigin[NR::Y];
+    _left_ruler.set_range(s, e, 0 /*gridorigin[NR::Y]*/, e);
     /// \todo is that correct?
 }
 
@@ -1423,11 +1438,11 @@ EditWidget::toggleRulers()
     {
         _top_ruler.hide_all();
         _left_ruler.hide_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.rulers" : "window.rulers", "state", 0);
+        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", 0);
     } else {
         _top_ruler.show_all();
         _left_ruler.show_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.rulers" : "window.rulers", "state", 1);
+        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", 1);
     }
 }
 
@@ -1438,11 +1453,11 @@ EditWidget::toggleScrollbars()
     {
         _bottom_scrollbar.hide_all();
         _right_scrollbar.hide_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.scrollbars" : "window.scrollbars", "state", 0);
+        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", 0);
     } else {
         _bottom_scrollbar.show_all();
         _right_scrollbar.show_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen ? "fullscreen.scrollbars" : "window.scrollbars", "state", 1);
+        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", 1);
     }
 }
 
@@ -1630,7 +1645,7 @@ EditWidget::onWindowRealize()
     NR::Rect d(NR::Point(0, 0),
                NR::Point(sp_document_width(_desktop->doc()), sp_document_height(_desktop->doc())));
 
-    if (fabs(d.dimensions()[NR::X]) < 1.0 || fabs(d.dimensions()[NR::Y]) < 1.0) {
+    if (d.isEmpty(1.0)) {
         return;
     }