diff options
| author | Maximilian Albert <maximilian.albert@gmail.com> | 2008-02-03 16:04:33 +0000 |
|---|---|---|
| committer | cilix42 <cilix42@users.sourceforge.net> | 2008-02-03 16:04:33 +0000 |
| commit | bc75860245b32e4a3bbe25c848d9f1a7613d4dac (patch) | |
| tree | 58424eb0c41b29d505e1b31a698c6e66dec58414 /src | |
| parent | Make units pc (pica) and ft (feet) work correctly. Closes: LP #167943. (diff) | |
| download | inkscape-bc75860245b32e4a3bbe25c848d9f1a7613d4dac.tar.gz inkscape-bc75860245b32e4a3bbe25c848d9f1a7613d4dac.zip | |
Fix missing ruler and document title updates when a file is opened in an existing window
(bzr r4640)
Diffstat (limited to 'src')
| -rw-r--r-- | src/desktop.cpp | 10 | ||||
| -rw-r--r-- | src/desktop.h | 2 | ||||
| -rw-r--r-- | src/widgets/desktop-widget.cpp | 9 | ||||
| -rw-r--r-- | src/widgets/desktop-widget.h | 2 |
4 files changed, 21 insertions, 2 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp index 8cd63a68c..d2547f5a6 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -85,6 +85,7 @@ #include "layer-manager.h" #include "event-log.h" #include "display/canvas-grid.h" +#include "widgets/desktop-widget.h" #include "display/sp-canvas.h" @@ -501,6 +502,15 @@ SPDesktop::change_document (SPDocument *theDocument) selection->clear(); setDocument (theDocument); + + /* update the rulers, connect the desktop widget's signal to the new namedview etc. + (this can probably be done in a better way) */ + Gtk::Window *parent = this->getToplevel(); + g_assert(parent != NULL); + SPDesktopWidget *dtw = (SPDesktopWidget *) parent->get_data("desktopwidget"); + if (dtw) dtw->desktop = this; + sp_desktop_widget_update_namedview(dtw); + _namedview_modified (namedview, SP_OBJECT_MODIFIED_FLAG, this); _document_replaced_signal.emit (this, theDocument); } diff --git a/src/desktop.h b/src/desktop.h index 0a3732d56..84b829726 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -42,13 +42,11 @@ typedef struct _GtkWidget GtkWidget; struct SPCanvas; struct SPCanvasItem; struct SPCanvasGroup; -struct SPDesktopWidget; struct SPEventContext; struct SPItem; struct SPNamedView; struct SPObject; struct SPStyle; -struct SPViewWidget; namespace Gtk { diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 146717fc2..f4d87f084 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -701,6 +701,15 @@ sp_desktop_widget_realize (GtkWidget *widget) dtw->desktop->set_display_area (d.x0, d.y0, d.x1, d.y1, 10); + sp_desktop_widget_update_namedview(dtw); +} + +/* This is just to provide access to common functionality from sp_desktop_widget_realize() above + as well as from SPDesktop::change_document() */ +void +sp_desktop_widget_update_namedview (SPDesktopWidget *dtw) { + g_return_if_fail(dtw); + /* Listen on namedview modification */ // originally (prior to the sigc++ conversion) the signal was simply // connected twice rather than disconnecting the first connection diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h index c20a8524e..aece4f75d 100644 --- a/src/widgets/desktop-widget.h +++ b/src/widgets/desktop-widget.h @@ -46,6 +46,8 @@ void sp_desktop_widget_update_rulers (SPDesktopWidget *dtw); void sp_desktop_widget_update_hruler (SPDesktopWidget *dtw); void sp_desktop_widget_update_vruler (SPDesktopWidget *dtw); +void sp_desktop_widget_update_namedview (SPDesktopWidget *dtw); + /* Show/hide rulers & scrollbars */ void sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw); void sp_desktop_widget_toggle_scrollbars (SPDesktopWidget *dtw); |
