diff options
Diffstat (limited to 'src/fe-common/core')
-rw-r--r-- | src/fe-common/core/fe-settings.c | 8 | ||||
-rw-r--r-- | src/fe-common/core/keyboard.c | 7 | ||||
-rw-r--r-- | src/fe-common/core/keyboard.h | 6 |
3 files changed, 17 insertions, 4 deletions
diff --git a/src/fe-common/core/fe-settings.c b/src/fe-common/core/fe-settings.c index a4abc7b8..b2ffbd5a 100644 --- a/src/fe-common/core/fe-settings.c +++ b/src/fe-common/core/fe-settings.c @@ -29,6 +29,7 @@ #include "levels.h" #include "printtext.h" +#include "keyboard.h" static void set_print(SETTINGS_REC *rec) { @@ -274,10 +275,9 @@ static void cmd_save(const char *data) printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_CONFIG_MODIFIED, data); - signal_emit("gui entry redirect", 4, - settings_save_confirm, - _("Overwrite config (y/N)?"), - GINT_TO_POINTER(FALSE), g_strdup(data)); + keyboard_entry_redirect((SIGNAL_FUNC) settings_save_confirm, + _("Overwrite config (y/N)?"), + 0, g_strdup(data)); } void fe_settings_init(void) diff --git a/src/fe-common/core/keyboard.c b/src/fe-common/core/keyboard.c index 5c47edb9..4952a2cc 100644 --- a/src/fe-common/core/keyboard.c +++ b/src/fe-common/core/keyboard.c @@ -234,6 +234,13 @@ int key_pressed(const char *key, void *data) return ret; } +void keyboard_entry_redirect(SIGNAL_FUNC func, const char *entry, + int flags, void *data) +{ + signal_emit("gui entry redirect", 4, func, entry, + GINT_TO_POINTER(flags), data); +} + static void sig_command(const char *data) { const char *cmdchars; diff --git a/src/fe-common/core/keyboard.h b/src/fe-common/core/keyboard.h index 6c41fbfd..f3cc4d1a 100644 --- a/src/fe-common/core/keyboard.h +++ b/src/fe-common/core/keyboard.h @@ -29,6 +29,12 @@ void key_configure_remove(const char *key); KEYINFO_REC *key_info_find(const char *id); int key_pressed(const char *key, void *data); +#define ENTRY_REDIRECT_FLAG_HOTKEY 0x01 +#define ENTRY_REDIRECT_FLAG_HIDDEN 0x02 + +void keyboard_entry_redirect(SIGNAL_FUNC func, const char *entry, + int flags, void *data); + void keyboard_init(void); void keyboard_deinit(void); |