diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2011-07-06 01:59:32 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2011-07-06 01:59:32 +0000 |
| commit | e65a02ed32b78534739aba24929ece7c44dd967f (patch) | |
| tree | 13cf022f18f6b5bae46aad4bc339e512f069a514 /src/ui | |
| parent | Pull 2Geom revision 2013 (extra constructors for Rect). (diff) | |
| parent | Text edit dialog: Apply button should grab default only after adding to window (diff) | |
| download | inkscape-e65a02ed32b78534739aba24929ece7c44dd967f.tar.gz inkscape-e65a02ed32b78534739aba24929ece7c44dd967f.zip | |
Merge from trunk
(bzr r10347.1.5)
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | src/ui/context-menu.cpp | 92 | ||||
| -rw-r--r-- | src/ui/dialog/dock-behavior.cpp | 2 | ||||
| -rw-r--r-- | src/ui/dialog/floating-behavior.cpp | 2 | ||||
| -rw-r--r-- | src/ui/icon-names.h | 4 | ||||
| -rw-r--r-- | src/ui/view/view-widget.cpp | 27 | ||||
| -rw-r--r-- | src/ui/widget/page-sizer.cpp | 32 | ||||
| -rw-r--r-- | src/ui/widget/page-sizer.h | 1 | ||||
| -rw-r--r-- | src/ui/widget/registered-widget.h | 3 | ||||
| -rw-r--r-- | src/ui/widget/selected-style.cpp | 2 | ||||
| -rw-r--r-- | src/ui/widget/svg-canvas.cpp | 2 |
11 files changed, 87 insertions, 83 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 30b72437f..9bbdd861e 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -166,9 +166,6 @@ set(ui_SRC dialog/tracedialog.h dialog/transformation.h dialog/undo-history.h - dialog/whiteboard-connect.h - dialog/whiteboard-sharewithchat.h - dialog/whiteboard-sharewithuser.h tool/commit-events.h tool/control-point-selection.h diff --git a/src/ui/context-menu.cpp b/src/ui/context-menu.cpp index a45b8ceaa..4d2c242a6 100644 --- a/src/ui/context-menu.cpp +++ b/src/ui/context-menu.cpp @@ -110,34 +110,34 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) /* Item dialog */ w = gtk_menu_item_new_with_mnemonic(_("_Object Properties...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_properties), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Separator */ w = gtk_menu_item_new(); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Select item */ w = gtk_menu_item_new_with_mnemonic(_("_Select This")); if (sp_desktop_selection(desktop)->includes(item)) { gtk_widget_set_sensitive(w, FALSE); } else { - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_select_this), item); } gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Create link */ w = gtk_menu_item_new_with_mnemonic(_("_Create Link")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_create_link), item); gtk_widget_set_sensitive(w, !SP_IS_ANCHOR(item)); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Set mask */ w = gtk_menu_item_new_with_mnemonic(_("Set Mask")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_set_mask), item); if ((item && item->mask_ref && item->mask_ref->getObject()) || (item->clip_ref && item->clip_ref->getObject())) { gtk_widget_set_sensitive(w, FALSE); @@ -145,10 +145,10 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) gtk_widget_set_sensitive(w, TRUE); } gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Release mask */ w = gtk_menu_item_new_with_mnemonic(_("Release Mask")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_release_mask), item); if (item && item->mask_ref && item->mask_ref->getObject()) { gtk_widget_set_sensitive(w, TRUE); @@ -156,10 +156,10 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) gtk_widget_set_sensitive(w, FALSE); } gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Set Clip */ w = gtk_menu_item_new_with_mnemonic(_("Set _Clip")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_set_clip), item); if ((item && item->mask_ref && item->mask_ref->getObject()) || (item->clip_ref && item->clip_ref->getObject())) { gtk_widget_set_sensitive(w, FALSE); @@ -167,10 +167,10 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) gtk_widget_set_sensitive(w, TRUE); } gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Release Clip */ w = gtk_menu_item_new_with_mnemonic(_("Release C_lip")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_release_clip), item); if (item && item->clip_ref && item->clip_ref->getObject()) { gtk_widget_set_sensitive(w, TRUE); @@ -178,7 +178,7 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) gtk_widget_set_sensitive(w, FALSE); } gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); } @@ -189,7 +189,7 @@ sp_item_properties(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); sp_desktop_selection(desktop)->set(item); @@ -205,7 +205,7 @@ sp_set_mask(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); sp_selection_set_mask(desktop, false, false); @@ -219,7 +219,7 @@ sp_release_mask(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); sp_selection_unset_mask(desktop, false); @@ -233,7 +233,7 @@ sp_set_clip(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); sp_selection_set_mask(desktop, true, false); @@ -247,7 +247,7 @@ sp_release_clip(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); sp_selection_unset_mask(desktop, true); @@ -261,7 +261,7 @@ sp_item_select_this(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); sp_desktop_selection(desktop)->set(item); @@ -273,7 +273,7 @@ sp_item_create_link(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); g_assert(!SP_IS_ANCHOR(item)); - SPDesktop *desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + SPDesktop *desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); @@ -311,10 +311,10 @@ sp_group_menu(SPObject *object, SPDesktop *desktop, GtkMenu *menu) /* "Ungroup" */ w = gtk_menu_item_new_with_mnemonic(_("_Ungroup")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_group_ungroup_activate), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(menu), w); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), w); } static void @@ -325,7 +325,7 @@ sp_item_group_ungroup_activate(GtkMenuItem *menuitem, SPGroup *group) g_assert(SP_IS_GROUP(group)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); children = NULL; @@ -351,21 +351,21 @@ sp_anchor_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) /* Link dialog */ w = gtk_menu_item_new_with_mnemonic(_("Link _Properties...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_anchor_link_properties), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Select item */ w = gtk_menu_item_new_with_mnemonic(_("_Follow Link")); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_anchor_link_follow), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Reset transformations */ w = gtk_menu_item_new_with_mnemonic(_("_Remove Link")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_anchor_link_remove), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); } static void @@ -410,16 +410,16 @@ sp_image_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) /* Link dialog */ w = gtk_menu_item_new_with_mnemonic(_("Image _Properties...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_image_image_properties), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); w = gtk_menu_item_new_with_mnemonic(_("Edit Externally...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_image_image_edit), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); Inkscape::XML::Node *ir = object->getRepr(); const gchar *href = ir->attribute("xlink:href"); if ( (!href) || ((strncmp(href, "data:", 5) == 0)) ) { @@ -495,7 +495,7 @@ static void sp_image_image_edit(GtkMenuItem *menuitem, SPAnchor *anchor) if ( errThing ) { g_warning("Problem launching editor (%d). %s", errThing->code, errThing->message); - SPDesktop *desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + SPDesktop *desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); desktop->messageStack()->flash(Inkscape::ERROR_MESSAGE, errThing->message); g_error_free(errThing); errThing = 0; @@ -511,7 +511,7 @@ sp_fill_settings(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); if (sp_desktop_selection(desktop)->isEmpty()) { @@ -533,10 +533,10 @@ sp_shape_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) /* Item dialog */ w = gtk_menu_item_new_with_mnemonic(_("_Fill and Stroke...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_fill_settings), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); } /* Edit Text entry */ @@ -548,7 +548,7 @@ sp_text_settings(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); if (sp_desktop_selection(desktop)->isEmpty()) { @@ -567,7 +567,7 @@ sp_spellcheck_settings(GtkMenuItem *menuitem, SPItem *item) g_assert(SP_IS_ITEM(item)); - desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop"); + desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop"); g_return_if_fail(desktop != NULL); if (sp_desktop_selection(desktop)->isEmpty()) { @@ -589,24 +589,24 @@ sp_text_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m) /* Fill and Stroke dialog */ w = gtk_menu_item_new_with_mnemonic(_("_Fill and Stroke...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_fill_settings), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Edit Text dialog */ w = gtk_menu_item_new_with_mnemonic(_("_Text and Font...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_text_settings), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); /* Spellcheck dialog */ w = gtk_menu_item_new_with_mnemonic(_("Check Spellin_g...")); - gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop); + g_object_set_data(G_OBJECT(w), "desktop", desktop); g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_spellcheck_settings), item); gtk_widget_show(w); - gtk_menu_append(GTK_MENU(m), w); + gtk_menu_shell_append(GTK_MENU_SHELL(m), w); } /* Local Variables: diff --git a/src/ui/dialog/dock-behavior.cpp b/src/ui/dialog/dock-behavior.cpp index 47cbab485..25fa1739a 100644 --- a/src/ui/dialog/dock-behavior.cpp +++ b/src/ui/dialog/dock-behavior.cpp @@ -262,7 +262,7 @@ DockBehavior::onDesktopActivated(SPDesktop *desktop) } // we're done, allow next retransientizing not sooner than after 120 msec - gtk_timeout_add (120, (GtkFunction) sp_retransientize_again, (gpointer) floating_win); + g_timeout_add (120, (GSourceFunc) sp_retransientize_again, (gpointer) floating_win); } } diff --git a/src/ui/dialog/floating-behavior.cpp b/src/ui/dialog/floating-behavior.cpp index 35cc88090..6a086e0a1 100644 --- a/src/ui/dialog/floating-behavior.cpp +++ b/src/ui/dialog/floating-behavior.cpp @@ -220,7 +220,7 @@ FloatingBehavior::onDesktopActivated (SPDesktop *desktop) } // we're done, allow next retransientizing not sooner than after 120 msec - gtk_timeout_add (120, (GtkFunction) sp_retransientize_again, (gpointer) _d); + g_timeout_add (120, (GSourceFunc) sp_retransientize_again, (gpointer) _d); } diff --git a/src/ui/icon-names.h b/src/ui/icon-names.h index f7c16b0ed..8935b1def 100644 --- a/src/ui/icon-names.h +++ b/src/ui/icon-names.h @@ -458,6 +458,8 @@ "snap-nodes" #define INKSCAPE_ICON_SNAP_NODES_CENTER \ "snap-nodes-center" +#define INKSCAPE_ICON_SNAP_OTHERS \ + "snap-nodes-others" #define INKSCAPE_ICON_SNAP_NODES_CUSP \ "snap-nodes-cusp" #define INKSCAPE_ICON_SNAP_NODES_INTERSECTION \ @@ -468,6 +470,8 @@ "snap-nodes-path" #define INKSCAPE_ICON_SNAP_NODES_ROTATION_CENTER \ "snap-nodes-rotation-center" +#define INKSCAPE_ICON_SNAP_TEXT_BASELINE \ + "snap-text-baseline" #define INKSCAPE_ICON_SNAP_NODES_SMOOTH \ "snap-nodes-smooth" #define INKSCAPE_ICON_SNAP_PAGE \ diff --git a/src/ui/view/view-widget.cpp b/src/ui/view/view-widget.cpp index cf0f55f2c..d43877569 100644 --- a/src/ui/view/view-widget.cpp +++ b/src/ui/view/view-widget.cpp @@ -27,22 +27,21 @@ static GtkEventBoxClass *widget_parent_class; /** * Registers the SPViewWidget class with Glib and returns its type number. */ -GtkType sp_view_widget_get_type(void) +GType sp_view_widget_get_type(void) { - static GtkType type = 0; - //TODO: switch to GObject - // GtkType and such calls were deprecated a while back with the - // introduction of GObject as a separate layer, with GType instead. --JonCruz + static GType type = 0; if (!type) { - GtkTypeInfo info = { - (gchar*) "SPViewWidget", - sizeof(SPViewWidget), + GTypeInfo info = { sizeof(SPViewWidgetClass), - (GtkClassInitFunc) sp_view_widget_class_init, - (GtkObjectInitFunc) sp_view_widget_init, - NULL, NULL, NULL - }; - type = gtk_type_unique(GTK_TYPE_EVENT_BOX, &info); + NULL, NULL, + (GClassInitFunc) sp_view_widget_class_init, + NULL, NULL, + sizeof(SPViewWidget), + 0, + (GInstanceInitFunc) sp_view_widget_init, + NULL + }; + type = g_type_register_static (GTK_TYPE_EVENT_BOX, "SPViewWidget", &info, (GTypeFlags)0); } return type; @@ -55,7 +54,7 @@ static void sp_view_widget_class_init(SPViewWidgetClass *vwc) { GtkObjectClass *object_class = GTK_OBJECT_CLASS(vwc); - widget_parent_class = (GtkEventBoxClass*) gtk_type_class(GTK_TYPE_EVENT_BOX); + widget_parent_class = (GtkEventBoxClass*) g_type_class_peek_parent(vwc); object_class->destroy = sp_view_widget_destroy; } diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp index 626be7625..f7759f103 100644 --- a/src/ui/widget/page-sizer.cpp +++ b/src/ui/widget/page-sizer.cpp @@ -236,7 +236,7 @@ PageSizer::PageSizer(Registry & _wr) _marginLeft( _("L_eft:"), _("Left margin"), "fit-margin-left", _wr), _marginRight( _("Ri_ght:"), _("Right margin"), "fit-margin-right", _wr), _marginBottom( _("Botto_m:"), _("Bottom margin"), "fit-margin-bottom", _wr), - + _lockMarginUpdate(false), _widgetRegistry(&_wr) { //# Set up the Paper Size combo box @@ -465,18 +465,20 @@ PageSizer::setDim (double w, double h, bool changeList) void PageSizer::updateFitMarginsUI(Inkscape::XML::Node *nv_repr) { - double value = 0.0; - if (sp_repr_get_double(nv_repr, "fit-margin-top", &value)) { - _marginTop.setValue(value); - } - if (sp_repr_get_double(nv_repr, "fit-margin-left", &value)) { - _marginLeft.setValue(value); - } - if (sp_repr_get_double(nv_repr, "fit-margin-right", &value)) { - _marginRight.setValue(value); - } - if (sp_repr_get_double(nv_repr, "fit-margin-bottom", &value)) { - _marginBottom.setValue(value); + if (!_lockMarginUpdate) { + double value = 0.0; + if (sp_repr_get_double(nv_repr, "fit-margin-top", &value)) { + _marginTop.setValue(value); + } + if (sp_repr_get_double(nv_repr, "fit-margin-left", &value)) { + _marginLeft.setValue(value); + } + if (sp_repr_get_double(nv_repr, "fit-margin-right", &value)) { + _marginRight.setValue(value); + } + if (sp_repr_get_double(nv_repr, "fit-margin-bottom", &value)) { + _marginBottom.setValue(value); + } } } @@ -538,14 +540,18 @@ PageSizer::fire_fit_canvas_to_selection_or_drawing() SPDocument *doc; SPNamedView *nv; Inkscape::XML::Node *nv_repr; + if ((doc = sp_desktop_document(SP_ACTIVE_DESKTOP)) && (nv = sp_document_namedview(doc, 0)) && (nv_repr = nv->getRepr())) { + _lockMarginUpdate = true; sp_repr_set_svg_double(nv_repr, "fit-margin-top", _marginTop.getValue()); sp_repr_set_svg_double(nv_repr, "fit-margin-left", _marginLeft.getValue()); sp_repr_set_svg_double(nv_repr, "fit-margin-right", _marginRight.getValue()); sp_repr_set_svg_double(nv_repr, "fit-margin-bottom", _marginBottom.getValue()); + _lockMarginUpdate = false; } + Verb *verb = Verb::get( SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING ); if (verb) { SPAction *action = verb->get_action(dt); diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h index 2072aeccd..cb7f8a069 100644 --- a/src/ui/widget/page-sizer.h +++ b/src/ui/widget/page-sizer.h @@ -219,6 +219,7 @@ protected: RegisteredScalar _marginBottom; Gtk::Alignment _fitPageButtonAlign; Gtk::Button _fitPageButton; + bool _lockMarginUpdate; //callback void on_value_changed(); diff --git a/src/ui/widget/registered-widget.h b/src/ui/widget/registered-widget.h index 560c63dd4..f05eb176a 100644 --- a/src/ui/widget/registered-widget.h +++ b/src/ui/widget/registered-widget.h @@ -62,9 +62,6 @@ public: bool is_updating() {if (_wr) return _wr->isUpdating(); else return false;} - // provide automatic 'upcast' for ease of use. (do it 'dynamic_cast' instead of 'static' because who knows what W is) - operator const Gtk::Widget () { return dynamic_cast<Gtk::Widget*>(this); } - protected: RegisteredWidget() : W() { construct(); } template< typename A > diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index ae8cd564e..0aa65b1a9 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -412,7 +412,7 @@ void SelectedStyle::setDesktop(SPDesktop *desktop) { _desktop = desktop; - gtk_object_set_data (GTK_OBJECT(_opacity_sb.gobj()), "dtw", _desktop->canvas); + g_object_set_data (G_OBJECT(_opacity_sb.gobj()), "dtw", _desktop->canvas); Inkscape::Selection *selection = sp_desktop_selection (desktop); diff --git a/src/ui/widget/svg-canvas.cpp b/src/ui/widget/svg-canvas.cpp index 7d37ec355..f0eb24a10 100644 --- a/src/ui/widget/svg-canvas.cpp +++ b/src/ui/widget/svg-canvas.cpp @@ -22,7 +22,7 @@ namespace Widget { SVGCanvas::SVGCanvas() { - void *canvas = gtk_type_new (sp_canvas_get_type ()); + void *canvas = g_object_new (sp_canvas_get_type (), NULL); _spcanvas = static_cast<SPCanvas*>(canvas); _widget = Glib::wrap (static_cast<GtkWidget*> (canvas)); _dt = 0; |
