From: Sven Speckmaier Date: Wed, 30 May 2018 05:19:38 +0000 (+0200) Subject: multi line javascript used from scripts/scripts.h X-Git-Url: https://git.owens.tech/dummy.html/dummy.html/git?a=commitdiff_plain;h=2ec2e855a26856dd6691ca54c94bad105feabcc3;p=vimb.git multi line javascript used from scripts/scripts.h --- diff --git a/src/input.c b/src/input.c index 0933bb1..9fbde58 100644 --- a/src/input.c +++ b/src/input.c @@ -26,6 +26,7 @@ #include "main.h" #include "normal.h" #include "util.h" +#include "scripts/scripts.h" #include "ext-proxy.h" typedef struct { @@ -139,12 +140,12 @@ VbResult input_open_editor(Client *c) idreturn = ext_proxy_eval_script_sync(c, "vimb_input_mode_element.id"); g_variant_get(idreturn, "(bs)", &idSuccess, &id); + /** + * Special case: the input element does not have an id assigned to it + **/ if( !idSuccess || !id || strlen(id) == 0) { element_map_key = element_map_next_key++; - char *js_command = g_strdup_printf( - "if ( typeof(vimb_editor_map) !== 'object' ) { var vimb_editor_map = new Map; } " - "vimb_editor_map.set(\"%lu\", vimb_input_mode_element)" - , element_map_key); + char *js_command = g_strdup_printf(JS_SET_EDITOR_MAP_ELEMENT, element_map_key); ext_proxy_eval_script(c, js_command, NULL); g_free(js_command); } @@ -229,15 +230,11 @@ static void resume_editor(GPid pid, int status, EditorData *data) } if( data->element_id && strlen(data->element_id) > 0 ) { - jscode_enable = g_strdup_printf( - "document.getElementById(\"%s\").disabled=false;" - "document.getElementById(\"%s\").focus()" - , data->element_id, data->element_id); + jscode_enable = g_strdup_printf(JS_FOCUS_ELEMENT_BY_ID, + data->element_id, data->element_id); } else { - jscode_enable = g_strdup_printf( - "vimb_editor_map.get(\"%lu\").disabled=false;" - "vimb_editor_map.get(\"%lu\").focus()" - , data->element_map_key, data->element_map_key); + jscode_enable = g_strdup_printf(JS_FOCUS_EDITOR_MAP_ELEMENT, + data->element_map_key, data->element_map_key); } ext_proxy_eval_script(data->c, jscode_enable, NULL); g_free(jscode_enable); diff --git a/src/scripts/focus_editor_map_element.js b/src/scripts/focus_editor_map_element.js new file mode 100644 index 0000000..cb8744e --- /dev/null +++ b/src/scripts/focus_editor_map_element.js @@ -0,0 +1,2 @@ +vimb_editor_map.get("%lu").disabled=false; +vimb_editor_map.get("%lu").focus() diff --git a/src/scripts/focus_element_by_id.js b/src/scripts/focus_element_by_id.js new file mode 100644 index 0000000..309a8a4 --- /dev/null +++ b/src/scripts/focus_element_by_id.js @@ -0,0 +1,2 @@ +document.getElementById("%s").disabled=false; +document.getElementById("%s").focus() diff --git a/src/scripts/set_editor_map_element.js b/src/scripts/set_editor_map_element.js new file mode 100644 index 0000000..ba9bb54 --- /dev/null +++ b/src/scripts/set_editor_map_element.js @@ -0,0 +1,4 @@ +if ( typeof(vimb_editor_map) !== 'object' ) { + var vimb_editor_map = new Map; +} +vimb_editor_map.set("%lu", vimb_input_mode_element)