From df924bde8429a2decf025ed57acd3412aa5355b0 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Thu, 9 Jul 2009 17:11:03 -0600 Subject: @MODE works. --- tests/test-expand.c | 6 +++--- uzbl.c | 25 +++++++++++++------------ uzbl.h | 1 + 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/tests/test-expand.c b/tests/test-expand.c index 0613acf..72aef23 100644 --- a/tests/test-expand.c +++ b/tests/test-expand.c @@ -80,10 +80,10 @@ test_KEYCMD (void) { void test_MODE (void) { - uzbl.behave.insert_mode = 0; + set_insert_mode(FALSE); g_assert_cmpstr(expand("@MODE", 0, FALSE), ==, "C"); - uzbl.behave.insert_mode = 1; + set_insert_mode(TRUE); g_assert_cmpstr(expand("@MODE", 0, FALSE), ==, "I"); } @@ -207,7 +207,7 @@ main (int argc, char *argv[]) { g_test_add_func("/test-expand/@SELECTED_URI", test_SELECTED_URI); g_test_add_func("/test-expand/@NAME", test_NAME); // g_test_add_func("/test-expand/@KEYCMD", test_KEYCMD); -// g_test_add_func("/test-expand/@MODE", test_MODE); + g_test_add_func("/test-expand/@MODE", test_MODE); g_test_add_func("/test-expand/@MSG", test_MSG); g_test_add_func("/test-expand/@WEBKIT_*", test_WEBKIT_VERSION); g_test_add_func("/test-expand/@ARCH_UZBL", test_ARCH_UZBL); diff --git a/uzbl.c b/uzbl.c index 210e94f..d95dc8c 100644 --- a/uzbl.c +++ b/uzbl.c @@ -165,6 +165,7 @@ const struct { { "LOAD_PROGRESSBAR", PTR_C(uzbl.gui.sbar.progress_bar, STR, NULL)}, { "TITLE", PTR_C(uzbl.gui.main_title, STR, NULL)}, { "SELECTED_URI", PTR_C(uzbl.state.selected_url, STR, NULL)}, + { "MODE", PTR_C(uzbl.gui.sbar.mode_indicator, STR, NULL)}, { "MSG", PTR_C(uzbl.gui.sbar.msg, STR, NULL)}, { "NAME", PTR_C(uzbl.state.instance_name, STR, NULL)}, @@ -729,7 +730,7 @@ load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { GString* newuri = g_string_new (webkit_web_frame_get_uri (frame)); uzbl.state.uri = g_string_free (newuri, FALSE); if (uzbl.behave.reset_command_mode && uzbl.behave.insert_mode) { - uzbl.behave.insert_mode = uzbl.behave.always_insert_mode; + set_insert_mode(uzbl.behave.always_insert_mode); update_title(); } if (uzbl.behave.load_commit_handler) @@ -884,18 +885,24 @@ act_dump_config() { dump_config(); } +void set_insert_mode(gboolean mode) { + uzbl.behave.insert_mode = mode; + uzbl.gui.sbar.mode_indicator = (mode ? + uzbl.behave.insert_indicator : uzbl.behave.cmd_indicator); +} + static void toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; if (argv_idx(argv, 0)) { if (strcmp (argv_idx(argv, 0), "0") == 0) { - uzbl.behave.insert_mode = FALSE; + set_insert_mode(FALSE); } else { - uzbl.behave.insert_mode = TRUE; + set_insert_mode(TRUE); } } else { - uzbl.behave.insert_mode = ! uzbl.behave.insert_mode; + set_insert_mode( !uzbl.behave.insert_mode ); } update_title(); @@ -1266,11 +1273,6 @@ expand_template(const char *template, gboolean escape_markup) { g_string_append(ret, uzbl.state.keycmd->str? uzbl.state.keycmd->str:g_strdup("")); break; - case SYM_MODE: - g_string_append(ret, - uzbl.behave.insert_mode? - uzbl.behave.insert_indicator:uzbl.behave.cmd_indicator); - break; default: break; } @@ -1527,8 +1529,7 @@ cmd_load_uri() { static void cmd_always_insert_mode() { - uzbl.behave.insert_mode = - uzbl.behave.always_insert_mode ? TRUE : FALSE; + set_insert_mode(uzbl.behave.always_insert_mode); update_title(); } @@ -2098,7 +2099,7 @@ key_press_cb (GtkWidget* window, GdkEventKey* event) /* turn off insert mode (if always_insert_mode is not used) */ if (uzbl.behave.insert_mode && (event->keyval == GDK_Escape)) { - uzbl.behave.insert_mode = uzbl.behave.always_insert_mode; + set_insert_mode(uzbl.behave.always_insert_mode); update_title(); return TRUE; } diff --git a/uzbl.h b/uzbl.h index 83d7871..d6a646c 100644 --- a/uzbl.h +++ b/uzbl.h @@ -36,6 +36,7 @@ typedef struct { gchar *progress_s, *progress_u; int progress_w; gchar *progress_bar; + gchar *mode_indicator; } StatusBar; -- cgit v1.2.3