index 6da0096e206346eed254a0580e4ad90fe77e94b8..33ac02a9b0df915c5dd9347bc771dd1a8ce5002c 100644 (file)
--- a/src/dialogs/xml-tree.cpp
+++ b/src/dialogs/xml-tree.cpp
static win_data wd;
// impossible original values to make sure they are read from prefs
static gint x = -1000, y = -1000, w = 0, h = 0;
-static gchar *prefs_path = "dialogs.xml";
+static gchar const *const prefs_path = "dialogs.xml";
static GtkWidget *status = NULL;
static Inkscape::MessageStack *_message_stack = NULL;
static Inkscape::MessageContext *_message_context = NULL;
sp_xmlview_attr_list_set_repr(attributes, NULL);
}
- if (repr && ( repr->type() == Inkscape::XML::TEXT_NODE || repr->type() == Inkscape::XML::COMMENT_NODE ) ) {
+ if (repr && ( repr->type() == Inkscape::XML::TEXT_NODE || repr->type() == Inkscape::XML::COMMENT_NODE || repr->type() == Inkscape::XML::PI_NODE ) ) {
sp_xmlview_content_set_repr(content, repr);
} else {
sp_xmlview_content_set_repr(content, NULL);
{
Inkscape::XML::Node *repr = sp_xmlview_tree_node_get_repr(SP_XMLVIEW_TREE(tree), node);
- if ( repr->type() == Inkscape::XML::TEXT_NODE || repr->type() == Inkscape::XML::COMMENT_NODE ) {
+ if ( repr->type() == Inkscape::XML::TEXT_NODE || repr->type() == Inkscape::XML::COMMENT_NODE || repr->type() == Inkscape::XML::PI_NODE ) {
gtk_widget_show(GTK_WIDGET(data));
} else {
gtk_widget_hide(GTK_WIDGET(data));
dest->text = gtk_editable_get_chars(dest->editable, 0, -1);
}
-
+gboolean
+quit_on_esc (GtkWidget *w, GdkEventKey *event, GObject */*tbl*/)
+{
+ switch (get_group0_keyval (event)) {
+ case GDK_Escape: // defocus
+ gtk_widget_destroy(w);
+ return TRUE;
+ }
+ return FALSE;
+}
void cmd_new_element_node(GtkObject */*object*/, gpointer /*data*/)
{
gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(dlg));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "destroy", gtk_main_quit, NULL);
+ gtk_signal_connect(GTK_OBJECT(window), "key-press-event", G_CALLBACK(quit_on_esc), window);
vbox = gtk_vbox_new(FALSE, 4);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, TRUE, 0);
cancel = gtk_button_new_with_label(_("Cancel"));
+ GTK_WIDGET_SET_FLAGS( GTK_WIDGET(cancel),
+ GTK_CAN_DEFAULT );
gtk_signal_connect_object( GTK_OBJECT(cancel), "clicked",
G_CALLBACK(gtk_widget_destroy),
GTK_OBJECT(window) );
gtk_main();
- g_assert(selected_repr != NULL);
-
- if (name.text) {
+ if (selected_repr != NULL && name.text) {
Inkscape::XML::Document *xml_doc = sp_document_repr_doc(current_document);
Inkscape::XML::Node *new_repr;
new_repr = xml_doc->createElement(name.text);
gchar *value = gtk_text_buffer_get_text( gtk_text_view_get_buffer(attr_value),
&start, &end, TRUE );
- if (!sp_repr_set_attr(selected_repr, name, value)) {
- gchar *message = g_strdup_printf(_("Cannot set <b>%s</b>: Another element with value <b>%s</b> already exists!"), name, value);
- _message_stack->flash(Inkscape::WARNING_MESSAGE, message);
- g_free(message);
- }
+ selected_repr->setAttribute(name, value, false);
g_free(name);
g_free(value);