summaryrefslogtreecommitdiffstats
path: root/src/inkscape-window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/inkscape-window.cpp')
-rw-r--r--src/inkscape-window.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/inkscape-window.cpp b/src/inkscape-window.cpp
index 8c0525a87..bcf10cedd 100644
--- a/src/inkscape-window.cpp
+++ b/src/inkscape-window.cpp
@@ -85,11 +85,18 @@ InkscapeWindow::InkscapeWindow(SPDocument* document)
// ================ Window Options ==============
- show(); // Must show before resize!
+ // Make sure the GdkWindow is fully initialized before resizing/moving
+ // (ensures the monitor it'll be shown on is known)
+ realize();
// Resize the window to match the document properties
sp_namedview_window_from_document(_desktop); // This should probably be a member function here.
+ // Must show before setting zoom and view! (crashes otherwise)
+ // Showing after resizing/moving allows the window manager to correct an invalid size/position of the window
+ show();
+
+ sp_namedview_zoom_and_view_from_document(_desktop);
sp_namedview_update_layers_from_document(_desktop);
}