aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui_compositor.c
Commit message (Collapse)AuthorAge
* vim-patch:8.1.1693: syntax coloring and highlighting is in one big file (#17721)Lewis Russell2022-03-18
| | | | | | | | | | | Problem: Syntax coloring and highlighting is in one big file. Solution: Move the highlighting to a separate file. (Yegappan Lakshmanan, closes vim/vim#4674) https://github.com/vim/vim/commit/f9cc9f209ede9f15959e4c2351e970477c139614 Name the new file highlight_group.c instead. Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* refactor: reduce number of unique char casts (#15995)dundargoc2021-10-12
|
* refactor: format with uncrustify #15872dundargoc2021-10-02
| | | | * refactor: format with uncrustify * refactor: fix function parameter comments
* chore: use codespell to spell check #15016dundargoc2021-07-07
|
* floats: z-indexBjörn Linse2021-05-15
|
* ui_compositior: handle multiple displayed floats in the same tickBjörn Linse2021-04-26
| | | | | problem: the order of non-focuesed float opened before focused float is wrong (sunjon) solution: check curwin and correct the order (bfredl)
* floats: handle interaction with popupmenu and border correctlyBjörn Linse2021-03-25
|
* screen: make ui_compositor aware of the intended size of a floatchentau2021-03-11
|
* Use abort() instead of assert(false) for things that should never happenJames McCoy2021-01-31
| | | | | | | | assert() is compiled out for release builds, but we don't want to continue running in these impossible situations. This also resolves the "implicit fallthrough" warnings for the asserts in switch cases.
* Merge pull request #12698 from erw7/fix-popupmenu-with-rlJan Edmund Lazo2020-11-13
|\ | | | | ui: fix problem with the popupmenu when rightleft is set
| * ui: fix problem with the popupmenu when rightleft is seterw72020-07-31
| | | | | | | | fixes #12032
* | api: add API for themesBjörn Linse2020-11-01
|/ | | | | | | | | | co-author: hlpr98 <hlpr98@gmail.com> (dict2hlattrs function) orange is sus?? NOVEMBER DAWN erase the lie that is redraw_later()
* doc: fix typosBrian Wignall2019-11-27
| | | | close #11459
* screen: don't crash on invalid grid cells being recomposedBjörn Linse2019-09-30
|
* compositor: avoid transmitting invalid lines on double scrollBjörn Linse2019-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This happens in an operation which both increases topline and also inserts new lines somewhere in the remaining are. So before drawing any line, win_update() is performing two grid_scroll operations. === A B C D E^ F === Consider that new line will be inserted after line E and screen also scrolled up to line C. First the topline will be adjusted (x is the scrolling region, ! invalid/empty space created by the scroll): === C x D x E^ x F x ! x ! x === and then space is inserted for the new line === C D E^ ! x F x ! x === The problem is that we are now assuming that any invalid area ! created by a scroll is filled with actual contents (by win_line etc) before it is scrolled again. But in this case the last invalid line ! gets scrolled. Ideally we should make win_update smarter and just scroll valid lines for the later scroll (it is just wasteful to scroll the larger area anyway), but for the 0.4 releasejust make the compositor ignore such an invalid line (as it will get overdrawn anyway later).
* UIAttach, UIDetachJustin M. Keyes2019-09-12
| | | | | doc: ginit.vim, gvimrc fix #3656
* screen: add some documentation of internals of msg_grid implementationBjörn Linse2019-09-01
|
* screen: use dedicated message gridBjörn Linse2019-09-01
| | | | | | | | add proper msg_set_pos event, delet win_scroll_over_* make compositor click through unfocusable grids add MsgArea attribute for the message/cmdline area, and add docs and tests
* compositor: handle invalid screen positions after resize gracefullyBjörn Linse2019-08-14
| | | | | | | | The screen resize logic needs to be refactored to be simpler and more deterministic. Until then, we need to handle attempts to draw outside of the screen size gracefully, just like the old vim code did. fixes #9989
* PVS/V512: memcpy overflow/underflow #10642Ihor Antonov2019-07-28
| | | | | problem: bfredl: pvs thinks the type of the pointed at item is too small. solution: refactored address calculation.
* floats: fix 'winblend' on top of doublewidth chars.Björn Linse2019-07-13
| | | | | | | | | The interaction between 'winblend' and doublewidth chars in the background does not look very good. But check no chars get incorrectly placed at least. Also check that hidden EndOfBuffer region (from style="minimal") blends correctly.
* Merge pull request #9575 from bfredl/redrawdebugBjörn Linse2019-07-09
|\ | | | | ui: implement better redrawdebug for the compositor
| * ui: add 'redrawdebug' option for flexible debugging of redrawingBjörn Linse2019-07-09
| |
* | compositor: handle float overlapping left half of doublewidth charBjörn Linse2019-07-09
|/
* compositor: handle scrolling of blended windowBjörn Linse2019-06-26
|
* ui: add 'winblend' to support blending of floating windowsBjörn Linse2019-06-25
| | | | Also add `hi blend=` attribute to override transparency of indiviual attributes.
* vim-patch:8.0.1496: VIM_CLEAR()Justin M. Keyes2019-05-25
| | | | | | | | Problem: Clearing a pointer takes two lines. Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi, closes #2629) vim-patch:8.0.1481
* doc [ci skip]Justin M. Keyes2019-03-26
| | | | closes #9719
* compositor: fix rendering issues with floats opened after popupmenuBjörn Linse2019-03-14
|
* PVS/V501: ui_compositor.c: identical sub-expressions #9673Billy SU2019-03-05
|
* floats: implement floating windowsBjörn Linse2019-03-02
| | | | Co-Author: Dongdong Zhou <dzhou121@gmail.com>
* UI: 'pumblend' for cterm (256-color TUI)Justin M. Keyes2019-02-12
| | | | | | hl_rgb2cterm_color, hl_cterm2rgb_color were adapted from Vim 8.1 (color2index, cterm_color2rgb). ref: https://github.com/vim/vim/commit/c5cd88554f1e0b2e9ff08d9a0748238dd8340ce1
* UI: implement 'pumblend' option for semi-transparent popupmenuBjörn Linse2019-02-07
| | | | | | | | | | | | | Why? - Because we can. - Because the TUI is just another GUI™ - Because it looks kinda nice, and provides useful context like 1 out of 100 times Complies with "don't pay for what you don't use". Some crashes for resizing were unfolded, add tests for those.
* ui/compositor: add redraws needed due to intersected doublewidth chars.Björn Linse2019-02-02
|
* UI: add "compositor" layer to merge grids for TUI use in a correct wayBjörn Linse2019-02-02
Initially we will use this for the popupmenu, floating windows will follow soon NB: writedelay + compositor is weird, we need more flexible redraw introspection.