#include "prefs_actions.h"
#include "action.h"
#include "description_window.h"
+#include "gtkutils.h"
static struct Actions
{
GtkWidget *actions_clist;
} actions;
+static int modified = FALSE;
+
/* widget creating functions */
static void prefs_actions_create (MainWindow *mainwin);
static void prefs_actions_set_dialog (void);
static void prefs_actions_register_cb(GtkWidget *w, gpointer data)
{
prefs_actions_clist_set_row(-1);
+ modified = FALSE;
}
static void prefs_actions_substitute_cb(GtkWidget *w, gpointer data)
if (!action) return;
prefs_actions_clist_set_row(row);
+ modified = FALSE;
}
static void prefs_actions_delete_cb(GtkWidget *w, gpointer data)
{
if (event && event->keyval == GDK_Escape)
prefs_actions_cancel(widget, data);
+ else {
+ GtkWidget *focused = gtkut_get_focused_child(
+ GTK_CONTAINER(widget));
+ if (focused && GTK_IS_EDITABLE(focused)) {
+ modified = TRUE;
+ }
+ }
+ return;
}
static void prefs_actions_cancel(GtkWidget *w, gpointer data)
{
+ if (modified && alertpanel(_("Entry not saved"),
+ _("The entry was not saved. Close anyway?"),
+ _("Yes"), _("No"), NULL) != G_ALERTDEFAULT) {
+ return;
+ }
+ modified = FALSE;
prefs_actions_read_config();
gtk_widget_hide(actions.window);
inc_unlock();
MessageView *msgview;
Compose *compose;
+ if (modified && alertpanel(_("Entry not saved"),
+ _("The entry was not saved. Close anyway?"),
+ _("Yes"), _("No"), NULL) != G_ALERTDEFAULT) {
+ return;
+ }
+ modified = FALSE;
prefs_actions_write_config();
/* Update mainwindow actions menu */