fix bug 4239, 'Preferences: Text Options Header Display modal is not modal' (sic)
[claws.git] / src / editbook.c
index c96eebbdd96184b05bd996e8bc81be83278f60d7..e36360d2e866b4335266ff3f8c6252645a3cf4dc 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2001-2009 Match Grun and the Claws Mail team
+ * Copyright (C) 2001-2012 Match Grun and the Claws Mail team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
+#include "claws-features.h"
 #endif
 
 #include "defs.h"
@@ -91,7 +92,7 @@ static gint edit_book_delete_event( GtkWidget *widget, GdkEventAny *event, gbool
 }
 
 static gboolean edit_book_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
-       if (event && event->keyval == GDK_Escape) {
+       if (event && event->keyval == GDK_KEY_Escape) {
                *cancelled = TRUE;
                gtk_main_quit();
        }
@@ -147,7 +148,7 @@ static void addressbook_edit_book_create( gboolean *cancelled ) {
        gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
        gtk_window_set_title(GTK_WINDOW(window), _("Edit Addressbook"));
        gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
-       gtk_window_set_modal(GTK_WINDOW(window), TRUE); 
+       gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
        g_signal_connect(G_OBJECT(window), "delete_event",
                         G_CALLBACK(edit_book_delete_event),
                         cancelled);
@@ -247,6 +248,7 @@ AdapterDSource *addressbook_edit_book( AddressIndex *addrIndex, AdapterDSource *
        gtk_widget_grab_focus(addrbookedit_dlg.name_entry);
        gtk_widget_show(addrbookedit_dlg.window);
        manage_window_set_transient(GTK_WINDOW(addrbookedit_dlg.window));
+       gtk_window_set_modal(GTK_WINDOW(addrbookedit_dlg.window), TRUE);
 
        edit_book_status_show( "" );
        gtk_label_set_text( GTK_LABEL(addrbookedit_dlg.file_label), "" );
@@ -285,7 +287,7 @@ AdapterDSource *addressbook_edit_book( AddressIndex *addrIndex, AdapterDSource *
 
        gtk_main();
        gtk_widget_hide(addrbookedit_dlg.window);
-
+       gtk_window_set_modal(GTK_WINDOW(addrbookedit_dlg.window), FALSE);
        if( cancelled == TRUE ) {
                if( newBook ) {
                        addrbook_free_book( abf );