diff options
author | ZyX <kp-pav@yandex.ru> | 2017-12-16 14:27:41 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-12-16 14:27:41 +0300 |
commit | 7f3b9a4acc503709c89a501aaee304ff208bd995 (patch) | |
tree | 73e2d477fc8664ccaffad9dbc000132c7fa82857 /src/nvim/ui_bridge.c | |
parent | 76ffe0c5aa51fe4fe14811e86867af2c711190a1 (diff) | |
parent | 7afd26a6d189d1ca798f93db8661bd656a37265f (diff) | |
download | rneovim-7f3b9a4acc503709c89a501aaee304ff208bd995.tar.gz rneovim-7f3b9a4acc503709c89a501aaee304ff208bd995.tar.bz2 rneovim-7f3b9a4acc503709c89a501aaee304ff208bd995.zip |
Merge branch 'master' into hide-container-impl
Diffstat (limited to 'src/nvim/ui_bridge.c')
-rw-r--r-- | src/nvim/ui_bridge.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/nvim/ui_bridge.c b/src/nvim/ui_bridge.c index 7573fa1653..0a69cf0ecb 100644 --- a/src/nvim/ui_bridge.c +++ b/src/nvim/ui_bridge.c @@ -66,6 +66,7 @@ UI *ui_bridge_attach(UI *ui, ui_main_fn ui_main, event_scheduler scheduler) rv->bridge.suspend = ui_bridge_suspend; rv->bridge.set_title = ui_bridge_set_title; rv->bridge.set_icon = ui_bridge_set_icon; + rv->bridge.option_set = ui_bridge_option_set; rv->scheduler = scheduler; for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) { @@ -144,6 +145,29 @@ static void ui_bridge_highlight_set_event(void **argv) xfree(argv[1]); } +static void ui_bridge_option_set(UI *ui, String name, Object value) +{ + // Assumes bridge is only used by TUI + if (strequal(name.data, "termguicolors")) { + ui->rgb = value.data.boolean; + } + String copy_name = copy_string(name); + Object *copy_value = xmalloc(sizeof(Object)); + *copy_value = copy_object(value); + UI_BRIDGE_CALL(ui, option_set, 4, ui, + copy_name.data, INT2PTR(copy_name.size), copy_value); +} +static void ui_bridge_option_set_event(void **argv) +{ + UI *ui = UI(argv[0]); + String name = (String){ .data = argv[1], .size = (size_t)argv[2] }; + Object value = *(Object *)argv[3]; + ui->option_set(ui, name, value); + api_free_string(name); + api_free_object(value); + xfree(argv[3]); +} + static void ui_bridge_suspend(UI *b) { UIBridgeData *data = (UIBridgeData *)b; |