src/gtkutils.c

changeset 7420
af45f3aa95c9
parent 7299
4c804d9a52f1
child 7538
b20dbe9222e2
--- a/src/gtkutils.c	Mon Nov 03 16:42:32 2003 +0000
+++ b/src/gtkutils.c	Tue Nov 04 00:10:29 2003 +0000
@@ -49,6 +49,8 @@
 #include "wspell.h"
 #endif
 
+guint accels_save_timer = 0;
+
 static void
 url_clicked_cb(GtkWidget *w, const char *uri)
 {
@@ -1077,3 +1079,40 @@
 		gdk_pixbuf_loader_close(loader, NULL);
 	}
 }
+
+void
+gaim_gtk_save_accels_cb(GtkAccelGroup *accel_group, guint arg1,
+														 GdkModifierType arg2, GClosure *arg3,
+														 gpointer data)
+{
+	gaim_debug(GAIM_DEBUG_MISC, "accels", "accel changed, scheduling save.\n");
+
+	if (!accels_save_timer)
+		accels_save_timer = g_timeout_add(5000, gaim_gtk_save_accels, NULL);
+}
+
+gboolean
+gaim_gtk_save_accels(gpointer data)
+{
+	char *filename = NULL;
+
+	filename = g_build_filename(gaim_user_dir(), G_DIR_SEPARATOR_S,
+															"accels", NULL);
+	gaim_debug(GAIM_DEBUG_MISC, "accels", "saving accels to %s\n", filename);
+	gtk_accel_map_save(filename);
+	g_free(filename);
+
+	accels_save_timer = 0;
+	return FALSE;
+}
+
+void
+gaim_gtk_load_accels(gpointer data)
+{
+	char *filename = NULL;
+
+	filename = g_build_filename(gaim_user_dir(), G_DIR_SEPARATOR_S,
+															"accels", NULL);
+	gtk_accel_map_load(filename);
+	g_free(filename);
+}

mercurial