Commit Graph
1234 Commits
Author SHA1 Message Date
Kovid Goyal 81879db2db Fix new_input_at not protected by read lock 2017-09-16 12:24:31 +05:30
Kovid Goyal 3675c27268 Fix the new_window keyboard shortcut being passed through 2017-09-16 11:22:58 +05:30
Kovid Goyal a92b3c605f Move the text attributes out of the char type
This means that more text attributes can be added in the future (there
are 8 bits available) and there is no need to keep bit twiddling when
accessing the chars themselves. Also means less data needs to be sent to
the GPU. Cell size does not change since there were currently 2 unused
bytes because of alignment.
2017-09-16 11:02:42 +05:30
Kovid Goyal 85ed5c1515 Remove unnecessary conditional operators 2017-09-16 09:43:43 +05:30
Kovid Goyal b7a5c064c2 Fix some Alt based shortcuts not working 2017-09-16 09:32:17 +05:30
Kovid Goyal 34084e7ab5 Neaten up keys.h 2017-09-16 09:16:30 +05:30
Kovid Goyal 728f33700a Fine tune the artificial delays in the render loop
There are now two numbers, repaint_delay and input_delay
that control how often the screen is repainted and how frequently
input received from the child process is processed.

This halves the CPU usage in intensive cases such as scrolling
a file in less. The CPU usage of kitty + X when scrolling is now
significantly lower than all the other terminals on my system.

MROAWR!

...
2017-09-16 08:20:23 +05:30
Kovid Goyal 43ebddc28f Fix writing to child causing excessive CPU usage
Couple of bugs combined.
2017-09-15 21:56:20 +05:30
Kovid Goyal c5e989bc94 Move the key handler to C 2017-09-15 21:46:00 +05:30
Kovid Goyal a4d71bcf5c Move the text input callback to C 2017-09-15 18:33:45 +05:30
Kovid Goyal ddbe0703a3 Remove unused code 2017-09-15 18:10:17 +05:30
Kovid Goyal b2c7272af1 Store key combos that need special handling in a table for fast lookup 2017-09-15 18:06:26 +05:30
Kovid Goyal 0423c55dc1 Move a few externs into appropriate header files 2017-09-15 11:56:08 +05:30
Kovid Goyal 0b656246fd Fix cursor width incorrect after scrolling 2017-09-15 11:44:16 +05:30
Kovid Goyal 28430a4104 Fix wide chars not being rendered 2017-09-15 11:43:05 +05:30
Kovid Goyal f0a9f32d0a Fix cursor not being rendered on empty cells 2017-09-15 11:08:42 +05:30
Kovid Goyal 44c897a61a Translate key presses to bytes using a lookup table 2017-09-15 10:45:27 +05:30
Kovid Goyal b5af266b87 A spot of refactoring 2017-09-15 10:45:27 +05:30
Kovid Goyal 9989363ecd Make the URL highlight color configurable 2017-09-15 10:45:27 +05:30
Kovid Goyal 53ea5c678d Highlight links with a underline on mouseover 2017-09-15 10:45:27 +05:30
Kovid Goyal 464291bbb1 Port click on URL code to C 2017-09-15 10:45:27 +05:30
Kovid Goyal ed3427f349 Dont use the python unicodedata module as we use libunistring
No sense in loading two hude unicode datasets into memory
2017-09-15 10:45:27 +05:30
Kovid Goyal 21accfe114 Send mouse events to child directly in C 2017-09-15 10:45:26 +05:30
Kovid Goyal ee0a539e01 Reclaim write buffer space once no longer needed 2017-09-15 10:45:26 +05:30
Kovid Goyal d236955dfb ... 2017-09-15 10:45:26 +05:30
Kovid Goyal 32a11d9d21 Avoid mallocs when writing small amounts of data to the child 2017-09-15 10:45:26 +05:30
Kovid Goyal 43c4c71abd Port mouse event encoding code to C 2017-09-15 10:45:26 +05:30
Kovid Goyal b9ac13c379 Move the scroll event handler to C 2017-09-15 10:45:26 +05:30
Kovid Goyal 11bb21e8a4 Remove unused code 2017-09-15 10:45:26 +05:30
Kovid Goyal 4bfe7e1069 Fix incorrect cell co-ordinates when more than one window visible in the layout 2017-09-15 10:45:26 +05:30
Kovid Goyal 4feaf13556 Implement drag scrolling in C 2017-09-15 10:45:26 +05:30
Kovid Goyal a27004da35 Port drag select to C 2017-09-15 10:45:26 +05:30
Kovid Goyal cf6894d74f Port multi-click handler to C 2017-09-15 10:45:25 +05:30
Kovid Goyal a921180224 Port middle-click-to-paste to C 2017-09-15 10:45:25 +05:30
Kovid Goyal 7e4948be10 Port switch focus on click code to C 2017-09-15 10:45:25 +05:30
Kovid Goyal 04a45babfb DRYer 2017-09-15 10:45:25 +05:30
Kovid Goyal 1c1d0a4e91 Port mouse cursor change over hyperlinks to C 2017-09-15 10:45:25 +05:30
Kovid Goyal 271b623f82 More URL detection tests 2017-09-15 10:45:25 +05:30
Kovid Goyal 88d896e745 Move function to detect URLs into C code 2017-09-15 10:45:25 +05:30
Kovid Goyal 745b6222c2 Start work on migrating the mouse handlers to C 2017-09-15 10:45:25 +05:30
Kovid Goyal 42329e5d46 Merge the char_grid and window modules 2017-09-15 10:45:25 +05:30
Kovid Goyal 240c683504 DRYer 2017-09-15 10:45:24 +05:30
Kovid Goyal c683725434 Get rid of the timers infrastructure
It is not needed with a pure state machine.
Note that drag scrolling still has to be ported from using
timers.
2017-09-15 10:45:24 +05:30
Kovid Goyal f3cd0a4966 ... 2017-09-15 10:45:24 +05:30
Kovid Goyal 573dd8c99e ... 2017-09-15 10:45:24 +05:30
Kovid Goyal 6d8b59cb61 Track window and application titles in C
Allows removing of the last bit fo python from the render loop
2017-09-15 10:45:24 +05:30
Kovid Goyal c41ede4d20 Dont use a timer for mouse hiding 2017-09-15 10:45:24 +05:30
Kovid Goyal 13ac050bf8 Move cursor render call to C 2017-09-15 10:45:24 +05:30
Kovid Goyal 6e4b977128 Track application focus state in global state 2017-09-15 10:45:24 +05:30
Kovid Goyal e6df82b255 Move the char grid render call into C 2017-09-15 10:45:24 +05:30