index b843819894f4b5cb578b514dce1cbe3c2fc2afc0..dd5371460f7c21a552f5a3f58a1f147f709bb002 100644 (file)
--- a/src/dialogs/xml-tree.cpp
+++ b/src/dialogs/xml-tree.cpp
* Lauris Kaplinski <lauris@kaplinski.com>
* MenTaLguY <mental@rydia.net>
* bulia byak <buliabyak@users.sf.net>
+ * Johan Engelen <goejendaagh@zonnet.nl>
*
- * Copyright (C) 1999-2005 Authors
+ * Copyright (C) 1999-2006 Authors
* Copyright (C) 2004 David Turner
*
* Released under GNU GPL, read the file 'COPYING' for more information
#include "message-stack.h"
#include "message-context.h"
+#define MIN_ONSCREEN_DISTANCE 50
+
struct EditableDest {
GtkEditable *editable;
gchar *text;
dlg = sp_window_new("", TRUE);
if (x == -1000 || y == -1000) {
- x = prefs_get_int_attribute(prefs_path, "x", 0);
- y = prefs_get_int_attribute(prefs_path, "y", 0);
+ x = prefs_get_int_attribute(prefs_path, "x", -1000);
+ y = prefs_get_int_attribute(prefs_path, "y", -1000);
}
if (w ==0 || h == 0) {
w = prefs_get_int_attribute(prefs_path, "w", 0);
h = prefs_get_int_attribute(prefs_path, "h", 0);
}
- if (x<0) x=0;
- if (y<0) y=0;
+// if (x<0) x=0;
+// if (y<0) y=0;
- if (x != 0 || y != 0) {
+ if (w && h) {
+ gtk_window_resize((GtkWindow *) dlg, w, h);
+ }
+ if (x >= 0 && y >= 0 && (x < (gdk_screen_width()-MIN_ONSCREEN_DISTANCE)) && (y < (gdk_screen_height()-MIN_ONSCREEN_DISTANCE))) {
gtk_window_move((GtkWindow *) dlg, x, y);
} else {
gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
}
- if (w && h) {
- gtk_window_resize((GtkWindow *) dlg, w, h);
- }
sp_transientize(dlg);
wd.win = dlg;
wd.stop = 0;
g_assert(selected_repr != NULL);
if (name.text) {
+ Inkscape::XML::Document *xml_doc = sp_document_repr_doc(current_document);
Inkscape::XML::Node *new_repr;
- new_repr = sp_repr_new(name.text);
+ new_repr = xml_doc->createElement(name.text);
g_free(name.text);
selected_repr->appendChild(new_repr);
set_tree_select(new_repr);
{
g_assert(selected_repr != NULL);
- Inkscape::XML::Node *text = sp_repr_new_text("");
+ Inkscape::XML::Document *xml_doc = sp_document_repr_doc(current_document);
+ Inkscape::XML::Node *text = xml_doc->createTextNode("");
selected_repr->appendChild(text);
sp_document_done(current_document, SP_VERB_DIALOG_XML_EDITOR,
g_assert(selected_repr != NULL);
Inkscape::XML::Node *parent = sp_repr_parent(selected_repr);
- Inkscape::XML::Node *dup = selected_repr->duplicate();
+ Inkscape::XML::Node *dup = selected_repr->duplicate(parent->document());
parent->addChild(dup, selected_repr);
sp_document_done(current_document, SP_VERB_DIALOG_XML_EDITOR,