Commit Graph

402 Commits

Author SHA1 Message Date
Kovid Goyal
2ab0fcb373 Make Wayland momentum scrolling configurable 2026-01-09 13:46:49 +05:30
Delice0
818065a050 Add configurable pixel scrolling 2025-12-26 19:33:21 +01:00
Kovid Goyal
399354cbe5 Fix tab_bar_min_tabs not tab_bar_filter
Fixes #9278
2025-12-12 17:11:43 +05:30
Kovid Goyal
68eee50aee Make scrollbar wider when mouse hovers over it 2025-09-14 19:20:10 +05:30
Kovid Goyal
80260e6eb1 Move back to individual settings for scrollbar
We need to split out the color settings so that they can be set in
themes anyway, so ...
2025-09-14 17:48:59 +05:30
Kovid Goyal
03537ee902 Use the new scrollbar settings 2025-09-14 13:02:40 +05:30
Kovid Goyal
77e22523ec Start work on consolidating scrollbar settings into one option 2025-09-14 12:14:27 +05:30
Aleksey Smolenchuk
65a4d89282 Interactive scrollbar implementation 2025-09-08 11:33:15 -07:00
Kovid Goyal
c393c1679e Implement rendering of multi cursors in the shaders 2025-08-24 20:14:15 +05:30
Kovid Goyal
110b13dc98 Make calculation of OS Window background opacity centralised 2025-08-22 11:57:29 +05:30
Kovid Goyal
3483f99d09 name a few anon structs 2025-08-22 11:20:23 +05:30
Kovid Goyal
5662d04b2f Fix resized area background color not correct during live resize
Have to write sRGB colors rather than linear colors in this case
2025-08-18 11:17:40 +05:30
Kovid Goyal
9f51779750 More robust detection of support for GL_FRAMEBUFFER_SRGB
When not supported fallback to layer based rendering
2025-08-11 09:13:49 +05:30
Kovid Goyal
1073e59598 Move cursor trail draw call into shaders.c 2025-08-11 00:54:08 +05:30
Kovid Goyal
d52f2e7981 Rewrite rendering pipeline
This was needed to fix various corner cases when doing blending of colors
in linear space. The new architecture has the same performance as the
old in the common case of opaque rendering with no UI layers or images.

In the case of only positive z-index images there is a performance
decrease as the OS Window is now rendered to a offscreen texture and
then blitted to screen. However, in the future when we move to Vulkan or
I can figure out how to get Wayland to accept buffers with colors in
linear space, this performance penalty can be removed. The performance
penalty was not significant on my system but this is highly GPU
dependent. Modern GPUs are supposedly optimised for rendering to
offscreen buffers, so we will see. The awrit project might be a good
test case.

Now either we have 1-shot rendering for the case of opaque with only ext
or all the various pieces are rendered in successive draw calls into an
offscreen buffer that is blitted to the output buffer after all drawing
is done.

Fixes #8869
2025-08-11 00:47:02 +05:30
CollinEMac
7021271e81 Add cursor trail color option 2025-07-17 00:35:31 -05:00
Kovid Goyal
4d3bbd82e0 Extend the SGR Pixel mouse reporting protocol to also report when the mouse leaves the window 2025-07-12 11:59:23 +05:30
Kovid Goyal
edcfd17ca9 Panel kitten: Add option to hide panel on focus loss 2025-04-30 07:46:41 +05:30
Kovid Goyal
9ad8dfaf3f Infrastructure for hiding OS Window on focus lost 2025-04-24 09:29:34 +05:30
Kovid Goyal
c893440208 Wayland: Get rid of visibility change debounce since previous commit made it unnecessary 2025-04-24 09:08:28 +05:30
Kovid Goyal
06716b8b85 Wayland make hide and quick show of panel more robust by keeping on re-rendering till compositor sends a configure event 2025-04-24 09:05:20 +05:30
Kovid Goyal
c1b6b4494a Implement starting kitty hidden
Fixes #3466
2025-04-23 08:50:02 +05:30
Kovid Goyal
3c4a8a1e7e Resize OS panels on font size change 2025-04-23 07:43:36 +05:30
Kovid Goyal
e93338a81c Start work on macOS support for panel kitten 2025-04-23 07:43:36 +05:30
Kovid Goyal
fc5fc7c9c4 Remote control: Allow modifying desktop panels and showing/hiding OS Windows using the kitten @ resize-os-window command
Also move the visibility toggle debounce into C code with a per OS
Window timer.

Fixes #8550
2025-04-22 13:34:09 +05:30
Kovid Goyal
64b5d2d187 More precise error on resize panel attempt 2025-04-21 12:32:20 +05:30
Your Name
33167f2057 Change mouse_hide_wait to struct, and change mouse_show_* options to optional parameters for struct. mouse_show_* renamed to mouse_unhide_* 2025-04-04 11:22:56 +00:00
Your Name
464446e388 Prevent mouse cursor from showing on short, unintentional flicks 2025-04-04 04:33:47 +00:00
Kovid Goyal
2a714928db When dragging in rectangle select mode use a crosshair mouse cursor 2025-02-23 10:32:54 +05:30
Kovid Goyal
e047a9c66d More work on box char porting 2025-02-03 10:56:47 +05:30
Kovid Goyal
fdb9b17943 start work on porting box drawing to C 2025-02-03 10:56:47 +05:30
Kovid Goyal
81a5f29979 Option to control underline exclusion 2025-02-03 10:56:46 +05:30
Kovid Goyal
88f796a94c Read decorations indices from a separate texture 2025-02-03 10:56:45 +05:30
Kovid Goyal
9e9ab3e6f9 pass decorations location as sprite metadata 2025-02-03 10:56:45 +05:30
Kovid Goyal
9f84c32808 Make undercurl_style available to C code 2025-02-03 10:56:45 +05:30
Kovid Goyal
0fb49f4139 Switch to using an index for sprite tracking
Frees up two bytes in GPUCell. Doesn't require a minimum texture row
size. Makes a bunch of code faster. Index uses 31 bits which gives us
2,147,483,647 aka ~ 2 billion sprites.
2025-02-03 10:56:45 +05:30
Kovid Goyal
9d48fa9126 hints/unicode_input kittens: Do not lose keypresses that are sent very rapidly via an automation tool immediately after the kitten is launched
We now buffer the key events until the kitten tells us it is ready.
Without this the key presses are delivered to the underlying window
as the kitten's overlay window was not being focused until the kitten
set the ready message.

Fixes #7089
2024-12-12 13:11:12 +05:30
Kovid Goyal
865aa4bc24 Cleanup cursor_trail threshold option name and documentation 2024-10-27 13:44:33 +05:30
Rick Choi
8f19a9ce97 fade out cursor trail where cursor is hidden 2024-10-27 13:55:53 +09:00
Rick Choi
f3de97f6d0 expose option cursor_trail_distance_threshold 2024-10-27 13:02:35 +09:00
Kovid Goyal
5e7e512d8a Do not store Screen pointer on CursorTrail
The lifetime of the Screen pointer is managed by Window. Also we want
the cursor trail color to be the color of the active window cursor not the
color of the cursor in the last rendered window.
2024-10-20 10:20:42 +05:30
Rick Choi
85bc56b813 move trail color decision logic to shader.c 2024-10-19 17:25:30 +09:00
Kovid Goyal
463c759bfb Allow changing the cursor trail threshold time independently of input_delay 2024-10-18 11:09:03 +05:30
Rick Choi
2bd008f8ca expose cursor_trail options 2024-10-13 21:10:20 +09:00
Rick Choi
20ba5e6918 disable cursor trail while live resize in progress 2024-10-13 18:15:42 +09:00
Rick Choi
fbd596a61f set trail color with cursor bg color 2024-10-13 18:10:24 +09:00
Rick Choi
89b9c6da8b don't draw cursor trail over the real cursor 2024-10-13 16:37:52 +09:00
Rick Choi
761fb6f233 move update_cursor_trail out of child_monitor_c 2024-10-13 13:48:02 +09:00
Rick Choi
c3eb48fc8a add cursor trail 2024-10-12 19:55:48 +09:00
Kovid Goyal
dbfeb8d6a4 Store transparent colors on ColorProfile
This will eventually allow them to be changed using remote control and
escape codes.
2024-09-24 19:02:13 +05:30