aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/window.c
Commit message (Collapse)AuthorAge
...
* floats: implement floating windowsBjörn Linse2019-03-02
| | | | Co-Author: Dongdong Zhou <dzhou121@gmail.com>
* vim-patch:8.1.0932: remove Farsi support (#9622)Justin M. Keyes2019-02-17
| | | | | Problem: Farsi support is outdated and unused. Solution: Delete the Farsi support. https://github.com/vim/vim/commit/14184a3133b9a6ee5f711d493c04e41ba4fa7c2f
* clang/"null pointer dereference": win_rotateJustin M. Keyes2019-02-14
|
* rename ui_is_external to ui_has (#9576)Justin M. Keyes2019-02-03
|
* screen: simplify wp->w_lines allocation logicBjörn Linse2019-01-27
|
* terminal: handle size when switching buffers in windowBjörn Linse2019-01-27
|
* window/ui: reorganize size variables, fix terminal window size with multigrid.Björn Linse2019-01-27
| | | | | | | wp->w_height_inner now contains the "inner" size, regardless if the window has been drawn yet or not. It should be used instead of wp->w_grid.Rows, for stuff that is not directly related to accessing the allocated grid memory, such like cursor movement and terminal size
* terminal: simplify sizing logicBjörn Linse2019-01-27
|
* ui: multigrid mouse supportBjörn Linse2019-01-20
|
* display: unify cursorline and concealcursor redraw logicBjörn Linse2019-01-13
| | | | | | | | | | | | | | | | There is various places where 'conceallevel' and 'concealcursor' necessitates additional redraws. This tries to separate the different cases and handle each accordingly: - Share code with 'cursorline' for the common case: vertical move of cursor within the same window (concealcursor not active) - Improve the logic for managing 'concealcursor' and switching modes: test for the case where the new mode behaves differently from the last one. - Clarify the special case for horizontal movement within a line when 'concealcursor' is active, now there is an if-statement only for this and not hidden in larger check mostly for the first point. - Keep the special case for moving between windows as is.
* screen: make update_screen() the only entry point for redrawingBjörn Linse2019-01-11
| | | | | | | | | | | | | | | update_single_line() was only used for 'concealcursor'. But 'cursorline' has very similiar characteristics (redraw both lines on move cursor between lines) and works without its own special entry point to the redraw subsystem. Later on 'concealcursor' and 'cursorline' could share more logic, but for now make the former use standard redrawWinline(). Make sure it is called before update_screen(), so that it is immediately visible. Get rid of update_prepare() and update_finish(), and all issues from them and their callsites not being in sync with changes to update_screen()
* vim-patch:8.1.0700: using "gt" sometimes does not redraw a tab (#9464)Justin M. Keyes2019-01-07
| | | | | | | | | | | | | | | | | | Problem: Using "gt" sometimes does not redraw a tab. (Jason Franklin) Solution: Always set must_redraw in redraw_all_later(). https://github.com/vim/vim/commit/04b4e1a42409f81d65ae4801ac867dc0bba3d7b8 ref https://github.com/vim/vim/commit/bf3250a8ad39797e3ccdac82d20c6f19533419e4#r31852304 > I fixed it in a more general way, in that if we don't find a window > that doesn't have the redraw type set it, then it will not set > must_redraw, even though that's clearly intended. ref #9152 ref #9155 NA patches: vim-patch:8.1.0698 vim-patch:8.1.0699
* PVS/V547: window.c: Expression is always trueJustin M. Keyes2019-01-04
|
* multigrid: rename grid->ScreenLines and other grid arraysBjörn Linse2018-12-31
|
* multigrid: various cleanup (types, unused parameters)Björn Linse2018-12-31
| | | | Handle the rare case of full highlight table properly
* multigrid: rename event to win_pos, make grid firstBjörn Linse2018-12-31
|
* multigrid: send win_hide events when changing tabpageBjörn Linse2018-12-31
|
* multigrid: Fix lint errorsUtkarsh Maheshwari2018-12-31
|
* multigrid: avoid allocation when not ext_multigrid.Björn Linse2018-12-31
| | | | Move grid specific functions from mbyte.c to screen.c
* multigrid: Add win_position eventUtkarsh Maheshwari2018-12-31
| | | | Throttle win_position events
* multigrid: Allow UIs to set grid size different from window sizeUtkarsh Maheshwari2018-12-31
|
* multigrid: Change screen_* functions to grid_* functionsUtkarsh Maheshwari2018-12-31
|
* UI: add missing redraw after enter_tabpageBjörn Linse2018-10-25
| | | | | | | redraw_all_later() isn't guaranteed to update must_redraw after switching tab, we must do it ourselves. fixes #9152
* ui: disable clearing almost everywhereBjörn Linse2018-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid clearing the screen in most situations. NOT_VALID should be equivalent to CLEAR unless some external force messed up the terminal, for these situations <c-l> and :mode will still clear the screen. Also eliminate some obsolete code in screen.c, that dealt with that in vim drawing window 1 can mess up window 2, but this never happens in nvim. But what about slow terminals? There is two common meanings in which a terminal is said to be "slow": Most commonly (and in the sense of vim:s nottyfast) it means low bandwidth for sending bytes from nvim to the terminal. If the screen is very similar before and after the update_screen(CLEAR) this change should reduce bandwidth. If the screen is quite different, but there is no new regions of contiguous whitespace, clearing doesn't reduce bandwidth significantly. If the new screen contains a lot of whitespace, it will depend of if vsplits are used or not: as long as there is no vsplits, ce is used to cheaply clear the rest of the line, so full-screen clear is not needed to reduce bandwith. However a left vsplit currently needs to be padded with whitespace all the way to the separator. It is possible ec (clear N chars) can be used to reduce bandwidth here if this is a problem. (All of this assumes that one doesn't set Normal guibg=... on a non-BCE terminal, if you do you are doomed regardless of this change). Slow can also mean that drawing pixels on the screen is slow. E-ink screens is a recent example. Avoiding clearing and redrawing the unchanged part of the screen will always improve performance in these cases.
* lintJan Edmund Lazo2018-09-21
|
* replace fallthrough comment with macroJan Edmund Lazo2018-09-21
| | | | Follow-up of vim-patch:8.0.1215
* vim-patch:8.0.1215: newer gcc warns for implicit fallthroughJan Edmund Lazo2018-09-20
| | | | | | Problem: Newer gcc warns for implicit fallthrough. Solution: Consistently use a FALLTHROUGH comment. (Christian Brabandt) https://github.com/vim/vim/commit/2f40d129bf45cd35976e4120336ae6d504f5a5dd
* lintJan Edmund Lazo2018-09-06
|
* window: refactor boolean variables in win_close()Jan Edmund Lazo2018-09-06
| | | | free_buf (param) and help_window (variable) are bool.
* vim-patch:8.0.0782: using freed memory in quickfix codeJan Edmund Lazo2018-09-06
| | | | | | Problem: Using freed memory in quickfix code. (Dominique Pelle) Solution: Handle a help window differently. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/d28cc3f55d4a5a980f6ac6fa682382822a223720
* Merge #8863 'refactor: Remove mb_head_off()'Justin M. Keyes2018-08-28
|\
| * Merge #8863 'refactor: Remove mb_head_off() 'Justin M. Keyes2018-08-28
| |\
| | * lint: cleanup after parent commitsZviRackover2018-08-16
| | |
| | * Remove has_mbyte from lines near changes in parent commitZviRackover2018-08-16
| | |
| | * Remove occurences of mb_head_offZviRackover2018-08-15
| | |
* | | lintJan Edmund Lazo2018-08-28
| | |
* | | ex_cmds2: checkall in dialog_changed() is boolJan Edmund Lazo2018-08-28
|/ /
* | vim-patch:8.0.1790: 'winfixwidth' is not always respected by :closeJan Edmund Lazo2018-08-21
| | | | | | | | | | | | | | Problem: 'winfixwidth' is not always respected by :close. Solution: Prefer a frame without 'winfixwidth' or 'winfixheight'. (Jason Franklin) https://github.com/vim/vim/commit/c136af29c0b1939076fbae7d36afd90dce740315
* | vim-patch:8.0.1707: when 'wfh' is set ":bel 10new" scrolls windowJan Edmund Lazo2018-08-21
| | | | | | | | | | | | Problem: When 'wfh' is set ":bel 10new" scrolls window. (Andrew Pyatkov) Solution: Set the fraction before changing the window height. (closes vim/vim#2798) https://github.com/vim/vim/commit/98da6ecab905df48a67da36ce60233f45726c979
* | vim-patch:8.0.1426: "gf" and <cfile> don't accept ? and & in URLJan Edmund Lazo2018-08-21
| | | | | | | | | | | | Problem: "gf" and <cfile> don't accept ? and & in URL. (Dmitrii Tcyganok) Solution: Check for a URL and allow for extra characters. (closes vim/vim#2493) https://github.com/vim/vim/commit/9e3dfc650190e96739abc004eb9948afa68136b4
* | vim-patch:8.0.1331: possible crash when window can be zero lines highJan Edmund Lazo2018-08-21
|/ | | | | | | Problem: Possible crash when window can be zero lines high. (Joseph Dornisch) Solution: Only set w_fraction if the window is at least two lines high. https://github.com/vim/vim/commit/3679c17917d7ff22e836982c81e5816bd07451dd
* Merge #8744 from janlazo/vim-8.0.0890Justin M. Keyes2018-08-08
|\
| * window: no_display in restore_win() is boolJan Edmund Lazo2018-08-07
| |
| * vim-patch:8.0.1446: acessing freed memory after window command in auto commandJan Edmund Lazo2018-08-06
| | | | | | | | | | | | | | | | Problem: Acessing freed memory after window command in auto command. (gy741) Solution: Adjust the pointer in the parent frame. (Christian Brabandt, closes vim/vim#2467) https://github.com/vim/vim/commit/6f361c991221e96d5068c77b854967d997b1529b
| * vim-patch:8.0.1160: getting tab-local variable fails after closing windowJan Edmund Lazo2018-08-06
| | | | | | | | | | | | Problem: Getting tab-local variable fails after closing window. Solution: set tp_firstwin and tp_lastwin. (Jason Franklin, closes vim/vim#2170) https://github.com/vim/vim/commit/816968defc8ae79eb7e2319e991e74661be8d750
* | Remove all occurences of the mb_ptr2char macroZviRackover2018-08-06
|/ | | | | | | First step towards implemening issue #7401. The same can be done for all deprecated mb_ functions in follow-up patches.
* misc: refactor plines_win{,_nofill}()Jan Edmund Lazo2018-08-02
| | | | | Add const to params and variables (declare and init on same line). winheight (param) is bool so replace TRUE/FALSE macros with true/false.
* vim-patch:8.0.0451: some macros are in lower caseJan Edmund Lazo2018-06-12
| | | | | | | Problem: Some macros are in lower case. Solution: Make a few more macros upper case. Avoid lower case macros use an argument twice. https://github.com/vim/vim/commit/91acfffc1e6c0d8c2abfb186a0e79a5bf19c3f3f
* vim-patch:8.0.0466: still macros that should be all-caps (#8510)Jan Edmund Lazo2018-06-10
| | | | | Problem: There are still a few macros that should be all-caps. Solution: Make a few more macros all-caps. https://github.com/vim/vim/commit/8820b48654b62472821d9b155fe03ab7ac13a05c
* window: Fix PVS/V547: expression already checked in previous if()ZyX2018-04-22
|