summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1416
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1416')
-rw-r--r--data/vim/patches/8.1.1416178
1 files changed, 178 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1416 b/data/vim/patches/8.1.1416
new file mode 100644
index 000000000..80bb7da81
--- /dev/null
+++ b/data/vim/patches/8.1.1416
@@ -0,0 +1,178 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1416
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.1416
+Problem: Popup_getposition() not implemented yet.
+Solution: Implement it. (Yasuhiro Matsumoto, closes #4449)
+Files: runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c,
+ src/proto/popupwin.pro, src/testdir/test_popupwin.vim
+
+
+*** ../vim-8.1.1415/runtime/doc/popup.txt 2019-05-27 21:53:53.986229323 +0200
+--- runtime/doc/popup.txt 2019-05-29 20:18:24.751509209 +0200
+***************
+*** 84,94 ****
+
+ IMPLEMENTATION:
+ - Code is in popupwin.c
+! - implement popup_getposition({id}), use in tests
+ - Implement filter.
+ - Handle screen resize in screenalloc().
+ - Make redrawing more efficient and avoid flicker.
+ - Properly figure out the size and position.
+ - Implement all the unimplemented options and features.
+
+
+--- 84,100 ----
+
+ IMPLEMENTATION:
+ - Code is in popupwin.c
+! - when creating the window set options to Vim default? (verify with 'number')
+! - Do not show tilde below last line.
+ - Implement filter.
++ Check that popup_close() works in the filter.
+ - Handle screen resize in screenalloc().
+ - Make redrawing more efficient and avoid flicker.
++ Fix redrawing problem with completion.
++ Fix redrawing problem when scrolling non-current window
++ Fix redrawing the statusline on top of a popup
+ - Properly figure out the size and position.
++ - Can the buffer be re-used, to avoid using up lots of buffer numbers?
+ - Implement all the unimplemented options and features.
+
+
+***************
+*** 225,237 ****
+ Return the {options} for popup {id}.
+
+ popup_getposition({id}) *popup_getposition()*
+- {not implemented yet}
+ Return the position and size of popup {id}. Returns a Dict
+ with these entries:
+ col screen column of the popup, one-based
+ line screen line of the popup, one-based
+ width width of the popup in screen cells
+ height height of the popup in screen cells
+
+ win_execute({id}, {command})
+ {not implemented yet}
+--- 231,246 ----
+ Return the {options} for popup {id}.
+
+ popup_getposition({id}) *popup_getposition()*
+ Return the position and size of popup {id}. Returns a Dict
+ with these entries:
+ col screen column of the popup, one-based
+ line screen line of the popup, one-based
+ width width of the popup in screen cells
+ height height of the popup in screen cells
++ Note that these are the actual screen positions. They differ
++ from the values in `popup_getoptions()` for the sizing and
++ positioning mechanism applied.
++ If popup window {id} is not found an empty Dict is returned.
+
+ win_execute({id}, {command})
+ {not implemented yet}
+*** ../vim-8.1.1415/src/evalfunc.c 2019-05-28 23:08:12.056648758 +0200
+--- src/evalfunc.c 2019-05-29 20:24:24.582101066 +0200
+***************
+*** 810,815 ****
+--- 810,816 ----
+ #ifdef FEAT_TEXT_PROP
+ {"popup_close", 1, 1, f_popup_close},
+ {"popup_create", 2, 2, f_popup_create},
++ {"popup_getposition", 1, 1, f_popup_getposition},
+ {"popup_hide", 1, 1, f_popup_hide},
+ {"popup_move", 2, 2, f_popup_move},
+ {"popup_show", 1, 1, f_popup_show},
+*** ../vim-8.1.1415/src/popupwin.c 2019-05-27 21:53:53.986229323 +0200
+--- src/popupwin.c 2019-05-29 20:22:24.442608839 +0200
+***************
+*** 487,490 ****
+--- 487,511 ----
+ redraw_all_later(NOT_VALID);
+ }
+
++ /*
++ * popup_getposition({id})
++ */
++ void
++ f_popup_getposition(typval_T *argvars, typval_T *rettv)
++ {
++ dict_T *dict;
++ int id = (int)tv_get_number(argvars);
++ win_T *wp = find_popup_win(id);
++
++ if (rettv_dict_alloc(rettv) == OK)
++ {
++ if (wp == NULL)
++ return; // invalid {id}
++ dict = rettv->vval.v_dict;
++ dict_add_number(dict, "line", wp->w_winrow + 1);
++ dict_add_number(dict, "col", wp->w_wincol + 1);
++ dict_add_number(dict, "width", wp->w_width);
++ dict_add_number(dict, "height", wp->w_height);
++ }
++ }
+ #endif // FEAT_TEXT_PROP
+*** ../vim-8.1.1415/src/proto/popupwin.pro 2019-05-27 21:53:53.990229301 +0200
+--- src/proto/popupwin.pro 2019-05-29 20:14:19.844197298 +0200
+***************
+*** 3,8 ****
+--- 3,9 ----
+ int popup_any_visible(void);
+ void f_popup_close(typval_T *argvars, typval_T *rettv);
+ void f_popup_hide(typval_T *argvars, typval_T *rettv);
++ void f_popup_getposition(typval_T *argvars, typval_T *rettv);
+ void f_popup_show(typval_T *argvars, typval_T *rettv);
+ void popup_close(int id);
+ void popup_close_tabpage(tabpage_T *tp, int id);
+*** ../vim-8.1.1415/src/testdir/test_popupwin.vim 2019-05-27 21:53:53.990229301 +0200
+--- src/testdir/test_popupwin.vim 2019-05-29 20:24:44.730013045 +0200
+***************
+*** 159,161 ****
+--- 159,178 ----
+
+ bwipe!
+ endfunc
++
++ func Test_popup_getposition()
++ let winid = popup_create('hello', {
++ \ 'line': 2,
++ \ 'col': 3,
++ \ 'minwidth': 10,
++ \ 'minheight': 11,
++ \})
++ redraw
++ let res = popup_getposition(winid)
++ call assert_equal(2, res.line)
++ call assert_equal(3, res.col)
++ call assert_equal(10, res.width)
++ call assert_equal(11, res.height)
++
++ call popup_close(winid)
++ endfunc
+*** ../vim-8.1.1415/src/version.c 2019-05-28 23:32:42.942257480 +0200
+--- src/version.c 2019-05-29 20:15:28.556034833 +0200
+***************
+*** 769,770 ****
+--- 769,772 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1416,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///