summaryrefslogtreecommitdiffstats
path: root/src/dialogs/xml-tree.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2008-07-05 20:11:12 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2008-07-05 20:11:12 +0000
commitd1689dc9462f40b6d660de866b706998329bc873 (patch)
treed2d158d5df3b99c1adc3cc99797d87b74b37a430 /src/dialogs/xml-tree.cpp
parentChange link line for a couple of the test programs, so that `make check' comp... (diff)
downloadinkscape-d1689dc9462f40b6d660de866b706998329bc873.tar.gz
inkscape-d1689dc9462f40b6d660de866b706998329bc873.zip
fix 245806
(bzr r6194)
Diffstat (limited to 'src/dialogs/xml-tree.cpp')
-rw-r--r--src/dialogs/xml-tree.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/dialogs/xml-tree.cpp b/src/dialogs/xml-tree.cpp
index 2d1b4c4b1..33ac02a9b 100644
--- a/src/dialogs/xml-tree.cpp
+++ b/src/dialogs/xml-tree.cpp
@@ -1304,7 +1304,16 @@ void on_clicked_get_editable_text(GtkWidget */*widget*/, gpointer 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*/)
{
@@ -1321,6 +1330,7 @@ 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);
@@ -1337,6 +1347,8 @@ void cmd_new_element_node(GtkObject */*object*/, gpointer /*data*/)
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) );
@@ -1365,9 +1377,7 @@ void cmd_new_element_node(GtkObject */*object*/, gpointer /*data*/)
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);