aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/window.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-04-14 13:35:11 +0200
committerGitHub <noreply@github.com>2019-04-14 13:35:11 +0200
commit0be8fb47a46ee472af41dd96c5884e8e69b94639 (patch)
tree00a797d93f99fabad6a08e71eb482a9eb78e3ab2 /src/nvim/api/window.c
parent9ddf99172cc9e8ea3ac47516083751fca75c3501 (diff)
parentc8acbe3b623a4d7636e88b30f779c03845cf548f (diff)
downloadrneovim-0be8fb47a46ee472af41dd96c5884e8e69b94639.tar.gz
rneovim-0be8fb47a46ee472af41dd96c5884e8e69b94639.tar.bz2
rneovim-0be8fb47a46ee472af41dd96c5884e8e69b94639.zip
Merge pull request #9898 from bfredl/floatwidth
windows: float config changes
Diffstat (limited to 'src/nvim/api/window.c')
-rw-r--r--src/nvim/api/window.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c
index 01cb9a6847..e1c50cb89d 100644
--- a/src/nvim/api/window.c
+++ b/src/nvim/api/window.c
@@ -466,8 +466,6 @@ void nvim_win_set_config(Window window, Dictionary config, Error *err)
if (!parse_float_config(config, &fconfig, !new_float, err)) {
return;
}
- fconfig.height = fconfig.height > 0 ? fconfig.height : win->w_height;
- fconfig.width = fconfig.width > 0 ? fconfig.width : win->w_width;
if (new_float) {
if (!win_new_float(win, fconfig, err)) {
return;
@@ -499,26 +497,25 @@ Dictionary nvim_win_get_config(Window window, Error *err)
return rv;
}
- PUT(rv, "width", INTEGER_OBJ(wp->w_float_config.width));
- PUT(rv, "height", INTEGER_OBJ(wp->w_float_config.height));
PUT(rv, "focusable", BOOLEAN_OBJ(wp->w_float_config.focusable));
PUT(rv, "external", BOOLEAN_OBJ(wp->w_float_config.external));
- PUT(rv, "anchor", STRING_OBJ(cstr_to_string(
- float_anchor_str[wp->w_float_config.anchor])));
- if (wp->w_float_config.relative == kFloatRelativeWindow) {
- PUT(rv, "win", INTEGER_OBJ(wp->w_float_config.window));
- }
-
- if (wp->w_float_config.external) {
- return rv;
+ if (wp->w_floating) {
+ PUT(rv, "width", INTEGER_OBJ(wp->w_float_config.width));
+ PUT(rv, "height", INTEGER_OBJ(wp->w_float_config.height));
+ if (!wp->w_float_config.external) {
+ if (wp->w_float_config.relative == kFloatRelativeWindow) {
+ PUT(rv, "win", INTEGER_OBJ(wp->w_float_config.window));
+ }
+ PUT(rv, "anchor", STRING_OBJ(cstr_to_string(
+ float_anchor_str[wp->w_float_config.anchor])));
+ PUT(rv, "row", FLOAT_OBJ(wp->w_float_config.row));
+ PUT(rv, "col", FLOAT_OBJ(wp->w_float_config.col));
+ }
}
- PUT(rv, "row", FLOAT_OBJ(wp->w_float_config.row));
- PUT(rv, "col", FLOAT_OBJ(wp->w_float_config.col));
-
- const char *rel =
- wp->w_floating ? float_relative_str[wp->w_float_config.relative] : "";
+ const char *rel = (wp->w_floating && !wp->w_float_config.external
+ ? float_relative_str[wp->w_float_config.relative] : "");
PUT(rv, "relative", STRING_OBJ(cstr_to_string(rel)));
return rv;