diff options
Diffstat (limited to 'development/eovim/dd8f0.patch')
-rw-r--r-- | development/eovim/dd8f0.patch | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/development/eovim/dd8f0.patch b/development/eovim/dd8f0.patch new file mode 100644 index 000000000000..9b9722a037cd --- /dev/null +++ b/development/eovim/dd8f0.patch @@ -0,0 +1,107 @@ +From dd8f0d3fff4951cd7b7ea294823b8e377024c2ff Mon Sep 17 00:00:00 2001 +From: Jean Guyomarc'h <jean@guyomarch.bzh> +Date: Sat, 12 Jan 2019 08:47:35 +0100 +Subject: [PATCH] gui: make an overlay fade when the UI is attached to neovim + +--- + data/themes/default.edc | 29 +++++++++++++++++++++++++++++ + include/eovim/gui.h | 1 + + src/gui.c | 5 +++++ + src/nvim.c | 9 +++++++-- + 4 files changed, 42 insertions(+), 2 deletions(-) + +diff --git a/data/themes/default.edc b/data/themes/default.edc +index 27703fc..7f8d0e3 100644 +--- a/data/themes/default.edc ++++ b/data/themes/default.edc +@@ -430,6 +430,19 @@ collections { + visible: 0; + } + } ++ ++ rect { "overlay"; nomouse; ++ desc { "default"; ++ color: 40 40 40 255;; ++ } ++ desc { "fade"; ++ color: 40 40 40 0; ++ } ++ desc { "faded"; ++ inherit: "fade"; ++ visible: 0; /* Make sure it is killed */ ++ } ++ } + } + + programs { +@@ -437,6 +450,22 @@ collections { + action: PLAY_SAMPLE "bell" 1.0 ALERT; + } + ++ /* [OVERLAY FADING] ************************************************** ++ * When eovim starts, we push an overlay that covers the whole window. ++ * When neovim is successfully attached to the UI, we make the overlay ++ * fade away, so we can begin to use neovim. */ ++ program { signal: "eovim,ready"; source: "eovim"; ++ action: STATE_SET "fade"; ++ target: "overlay"; ++ transition: ACCELERATE 0.2; ++ after: "eovim_overlay_faded"; ++ } ++ program { name: "eovim_overlay_faded"; ++ action: STATE_SET "faded"; ++ target: "overlay"; ++ } ++ /* END OVERLAY FADING ***********************************************/ ++ + program { signal: "eovim,cmdline,show"; source: "eovim"; + action: STATE_SET "default"; + target: "eovim.cmdline"; +diff --git a/include/eovim/gui.h b/include/eovim/gui.h +index f05fb97..981e957 100644 +--- a/include/eovim/gui.h ++++ b/include/eovim/gui.h +@@ -192,6 +192,7 @@ void gui_caps_lock_alert(s_gui *gui); + void gui_caps_lock_dismiss(s_gui *gui); + Eina_Bool gui_caps_lock_warning_get(const s_gui *gui); + ++void gui_ready_set(s_gui *gui); + void gui_mode_update(s_gui *gui, const s_mode *mode); + + #endif /* ! __EOVIM_GUI_H__ */ +diff --git a/src/gui.c b/src/gui.c +index 96dcdcd..efd476b 100644 +--- a/src/gui.c ++++ b/src/gui.c +@@ -893,6 +893,11 @@ gui_bell_ring(s_gui *gui) + elm_layout_signal_emit(gui->layout, "eovim,bell,ring", "eovim"); + } + ++void gui_ready_set(s_gui *gui) ++{ ++ elm_layout_signal_emit(gui->layout, "eovim,ready", "eovim"); ++} ++ + static void + _compl_item_del(void *data, + Evas_Object *obj EINA_UNUSED) +diff --git a/src/nvim.c b/src/nvim.c +index a003a00..dcf263d 100644 +--- a/src/nvim.c ++++ b/src/nvim.c +@@ -49,8 +49,13 @@ static void _api_decode_cb(s_nvim *nvim, void *data, const msgpack_object *resul + * Private API * + *============================================================================*/ + +-static inline s_nvim * +-_nvim_get(void) ++static void _ui_attached_cb(s_nvim *nvim, void *data EINA_UNUSED, ++ const msgpack_object *result EINA_UNUSED) ++{ ++ gui_ready_set(&nvim->gui); ++} ++ ++static inline s_nvim *_nvim_get(void) + { + /* We handle only one neovim instance */ + return _nvim_instance; |