From: cilix42 Date: Sun, 3 Feb 2008 16:04:33 +0000 (+0000) Subject: Fix missing ruler and document title updates when a file is opened in an existing... X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=ea227fa1b0a949af244f7b3a331aea7a464cfc1a;p=inkscape.git Fix missing ruler and document title updates when a file is opened in an existing window --- 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);