aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-05-09 23:31:30 +0200
committerGitHub <noreply@github.com>2019-05-09 23:31:30 +0200
commitd818135e3f45fc72ceba19c0ffc035ed77d120af (patch)
tree83fc23b9a1f8489baa073559e48dab23fcc59dae /src/nvim/ui.c
parentb6ad20602498e260b3c7ede79699d986e96903da (diff)
parentb9ad12e6c2fa557e2c2c2f2f6c40fabc0cc89efd (diff)
downloadrneovim-d818135e3f45fc72ceba19c0ffc035ed77d120af.tar.gz
rneovim-d818135e3f45fc72ceba19c0ffc035ed77d120af.tar.bz2
rneovim-d818135e3f45fc72ceba19c0ffc035ed77d120af.zip
Merge #9992 from justinmk/ui-upgrade
UI/nvim_ui_attach(): add "override" option
Diffstat (limited to 'src/nvim/ui.c')
-rw-r--r--src/nvim/ui.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index 0dddfe5f59..7dbb8ec790 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -141,6 +141,17 @@ bool ui_rgb_attached(void)
return false;
}
+/// Returns true if any UI requested `override=true`.
+bool ui_override(void)
+{
+ for (size_t i = 1; i < ui_count; i++) {
+ if (uis[i]->override) {
+ return true;
+ }
+ }
+ return false;
+}
+
bool ui_active(void)
{
return ui_count > 1;
@@ -173,12 +184,13 @@ void ui_refresh(void)
ext_widgets[i] = true;
}
+ bool inclusive = ui_override();
for (size_t i = 0; i < ui_count; i++) {
UI *ui = uis[i];
width = MIN(ui->width, width);
height = MIN(ui->height, height);
for (UIExtension j = 0; (int)j < kUIExtCount; j++) {
- ext_widgets[j] &= ui->ui_ext[j];
+ ext_widgets[j] &= (ui->ui_ext[j] || inclusive);
}
}
@@ -431,6 +443,7 @@ Array ui_array(void)
PUT(info, "width", INTEGER_OBJ(ui->width));
PUT(info, "height", INTEGER_OBJ(ui->height));
PUT(info, "rgb", BOOLEAN_OBJ(ui->rgb));
+ PUT(info, "override", BOOLEAN_OBJ(ui->override));
for (UIExtension j = 0; j < kUIExtCount; j++) {
if (ui_ext_names[j][0] != '_' || ui->ui_ext[j]) {
PUT(info, ui_ext_names[j], BOOLEAN_OBJ(ui->ui_ext[j]));