Guldoman and takase1121
c31a8ae0f6
Scale mouse coordinates by window scale ( #1630 )
...
* Update window scale on resize
* Scale mouse coordinates by window scale
* Avoid scaling mouse coordinates while using `LITE_USE_SDL_RENDERER`
2023-11-30 11:27:08 +08:00
Guldoman and takase1121
5c5c77219b
Fix dirmonitor sorting issues ( #1599 )
...
* Use `PATHSEP` in path-related functions
* Don't stop on digits when getting the common part in `system.path_compare`
* Avoid sorting multiple times in `dirwatch.get_directory_files`
This also fixes the timeout detection in `recurse_pred`.
2023-11-30 09:20:34 +08:00
Guldoman and takase1121
4adfd44d9f
Limit system.{sleep,wait_event} to timeouts >= 0 ( #1666 )
...
Otherwise we might wait forever by mistake.
2023-11-29 09:13:12 +08:00
Takase and Guldoman
5d53b13cf4
fix(dirmonitor): deadlock if error handler jumps somewhere else ( #1647 )
...
* fix: deadlock if error handler jumps somewhere else
* docs(dirmonitor): fix wrong data type in error callback
* docs(dirmonitor): clarify coroutines and deadlocks
* docs(dirmonitor): wording
Co-authored-by: Guldoman <giulio.lettieri@gmail.com >
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com >
2023-10-24 20:16:52 +08:00
Takase
82589526c0
fix: dim rendering when antialiasing is turned off ( #1641 )
2023-10-16 12:05:01 +08:00
Guldoman and takase1121
316fbbe743
Remove DPI detection for default SCALE
...
This often leads to `SCALE` values that are way off, and makes Lite XL
unusable, so we now just default it to 1.
2023-10-16 12:04:37 +08:00
Takase
07818934b6
feat(src/renderer): unify fontgroup baseline ( #1560 )
...
* feat(src/renderer): unify fontgroup baseline
* fix(src/renderer): use the first font's baseline for the text run
2023-08-19 13:31:18 +08:00
Takase
553251834b
feat(src/renderer): stream fonts with SDL_RWops on all platforms ( #1555 )
...
* feat(src/renderer): stream fonts with SDL_RWops on all platforms
This fixes #1529 where the font itself carries the font file, which gets copied around.
This commit streams the file, so the file is not entirely in memory.
* style(src/renderer): use standard C types
* refactor(src/renderer): implement FT_Stream.close
* fix(src/renderer): fix SDL_RWops double free
2023-08-19 13:30:18 +08:00
Takase
7f84ed311b
style(src/renderer): use FreeType header names ( #1554 )
2023-08-19 13:29:49 +08:00
Guldoman and takase1121
f7400c924e
Allow setting custom glyphset size ( #1542 )
...
* Properly set glyphset size
* Rename `MAX_GLYPHSET` to `GLYPHSET_SIZE`
* Use more appropriate types for font metrics
2023-08-19 13:29:48 +08:00
Jan and takase1121
2af3082640
Attach command buffer to Renderer Window ( #1472 )
2023-08-19 13:29:05 +08:00
Guldoman and takase1121
964b8fe29d
Increase number of loadable glyphsets ( #1524 )
...
This should be enough to load every unicode codepoint.
2023-08-19 13:28:37 +08:00
6c17f6e2ee
Close lua state when exiting on a runtime error ( #1487 )
...
* Close lua state when exiting on a runtime error
* This change allows calling the garbage collector before exiting the
application for a cleaner shutdown.
* Components like the shared memory object on #1486 will have a better
chance at destroying no longer needed resources.
* Overriden os.exit to always close the state
* Allow setting close param on os.exit override
* Simplified the os.exit override a bit more
Co-authored-by: Guldoman <giulio.lettieri@gmail.com >
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com >
2023-08-19 13:27:02 +08:00
takase1121
64e5fd8ead
fix(renderer): fix memory leak when freeing glyphsets
2023-08-19 12:47:19 +08:00
takase1121
6111b071ec
fix(rencache): fix compiler warning for printing size_t
2023-08-19 12:45:15 +08:00
Takase
1952848caa
fix(process): check for HANDLE_INVALID ( #1475 )
2023-08-19 12:44:19 +08:00
Jan and takase1121
760271d416
Make system.path_compare more digit-aware ( #1474 )
...
This allows a human friendly sorting filenames with numbers in them
So
- asd1
- asd10
- asd2
becomes
- asd1
- asd2
- asd10
2023-08-19 12:44:18 +08:00
Takase
2fe1f52a1f
Process API improvements (again) ( #1370 )
...
* feat(process): add push_error
* refactor(process): use push_error for better errors
* style(process): consistent error messages
* refactor(process): reimplement process.strerror() with push_error
* refactor(process): implement close_fd only once
* refactor(process): rename process_handle to process_handle_t
* fix(process): prevent errors from a NULL error message
* refactor(process): refactor push_error into 2 functions
* fix(process): fix wrong error message
* fix(process): check if push_error_string actually pushed something
* refactor(process): make error messages descriptive
* fix(process): check for empty table instead of aborting
* refactor(process): make error messages descriptive on Windows
* refactor(process): rename process_stream_handle to process_stream_t
* refactor(process): fix wrong usage of process_handle_t
* fix(process): fix wrong type name
* refactor(process): incoporate kill_list_thread into process_kill_list_t
* refactor(process): make kill_list per-state data
2023-08-19 12:43:57 +08:00
Jefferson González and takase1121
0d0f1b00d9
Fix for api_require wrong macro && conditions ( #1465 )
...
This mistake escaped my eyes when reviewing #1437 and causes
some symbols to not be exported, because the preprocessor macros
are expecting multiple LUA versions to evaluate as true at once.
The fix is to replace `&&` with `||`.
2023-08-19 12:42:31 +08:00
Guldoman and takase1121
d497402c30
Make system.path_compare more case-aware ( #1457 )
...
* Use Lua-provided string lengths for `system.path_compare`
* Make `system.path_compare` more case-aware
Before, strings like `README.md` would be sorted before `changelog.md`,
because we only looked at the raw ascii values.
Now the character case is considered as a secondary sorting key.
2023-08-19 12:41:56 +08:00
Takase
fdd6ca3426
Update api_require to expose more symbols ( #1437 )
...
* feat(system): update api_require for more symbols
* fix(system): fix missing 5.1 symbols
* fix(system): add more missing symbols
* fix(system): add all symbols
We got'em this time. I swear.
* fix(system): fix undefined symbols due to conditional compilation
There is only pain and suffering.
Turns out some of the symbols are only exported when the options are enabled.
We need to preprocess the header.
2023-08-19 12:41:56 +08:00
Takase
4e3d6824ff
fix: fix differing stacktrace on stdout and file ( #1404 )
...
* fix(c-bootstrap): produce identical stack traces
2023-08-19 12:41:55 +08:00
Takase
a24432941c
Fix invalid EXEFILE and EXEDIR on Windows ( #1396 )
...
* fix(main): fix get_exe_filename returning invalid result on Windows
* fix(main): fix bootstrap not intepreting UTF-8 properly
2023-08-19 12:40:34 +08:00
Takase and Guldoman
84c7bb9de6
Asynchronous process reaping ( #1412 )
...
* refactor(process): introduce process_stream_handle separate from process_handle
* feat(process): introduce process_handle helper functions
* feat(process): add asynchronous process reaping
* feat(process): wait for shorter period if possible
* style(process): remove unecessary brackets
* style(process): fix parentheses
* refactor(process): remove useless setvbuf call
* style(process): remove unecessary value
* refactor(process): add size field into kill_list
* refactor(process): use SDL_Delay for sleeping
* style(process): remove trailing whitespace
* fix(main): destroy window before closing lua
* fix(process): check for timeout correctly
* refactor(process): remove unecessary if check
* refactor(process): remove size from the list
* fix(process): fix invalid delay calculation
Co-authored-by: Guldoman <giulio.lettieri@gmail.com >
---------
Co-authored-by: Guldoman <giulio.lettieri@gmail.com >
2023-08-19 12:38:49 +08:00
Guldoman and takase1121
89864ee88c
Aggregate SDL_Surfaces and their scale in RenSurface ( #1429 )
2023-08-19 12:38:49 +08:00
Guldoman and takase1121
a61531dbf0
Use clipping functions provided by SDL ( #1426 )
2023-08-19 12:38:35 +08:00
Guldoman and takase1121
1d0725f904
Improve text width calculation precision ( #1408 )
...
In some extreme cases (~30000 chars) text width precision takes a hit.
Using double instead of float fixes that.
2023-08-19 12:38:35 +08:00
Takase
32860c111e
refactor(main): move SetProcessDPIAware to manifests ( #1413 )
2023-08-19 12:38:35 +08:00
Guldoman and takase1121
8c47fad637
Split Command struct into different structs for each command type ( #1407 )
...
This reduces the space needed for each command.
2023-08-19 12:38:34 +08:00
Takase
f685293417
Add manifest on Windows ( #1405 )
...
* fix(gitignore): add exclusion for manifest files
* feat(windows): add application manifest
* feat(build): use application manifest on windows
* refactor(build): use genrate_file to generate the manifest
* style(manifest): remove trailing whitespace
2023-08-19 12:38:34 +08:00
Takase
b95fdfcf5f
fix: exec() error not returned to parent ( #1363 )
...
* fix: exec() error not returned to parent
* chore: remove accidental lua.h inclusion
2023-08-19 12:37:20 +08:00
Jan and takase1121
a951c3cd39
pass RenWindow by argument ( #1321 )
...
* pass RenWindow to all renderer functions that need it
* pass RenWindow to all rencache functions that need it
2023-08-19 12:30:41 +08:00
Guldoman and takase1121
bddb5e274d
Avoid drawing hidden text in DocView:draw_line_text ( #1298 )
...
* Stop drawing text past the `DocView` edge in `DocView:draw_line_text`
* Don't add draw commands if they fall outside the latest clip
The check was previously done with the window rect, so this will reduce
a bit more the number of commands sent.
2023-08-19 12:28:48 +08:00
Adam Harrison and takase1121
4c18cf6744
Updated dummy method signature to match prototypes.
2023-08-19 12:28:48 +08:00
Guldoman and takase1121
a9d8f12cb7
Make empty groups in regex.gmatch return their offset ( #1325 )
...
This makes `regex.gmatch` behave like `string.gmatch`.
2023-08-19 12:28:47 +08:00
adityaraj and takase1121
ae218bc005
Create Renderer Only When It Doesn't Exist ( #1315 )
2023-08-19 12:28:21 +08:00
Jan and takase1121
c8afe3d1bf
replace uses of SDL_Window with RenWindow ( #1319 )
...
Since Renwindow contains our instance of SDL_Window we can use this
to simplify future logic to create separate window instances
2023-08-19 12:28:21 +08:00
Jan and takase1121
f5a224999a
defer lua error until after cleanup ( #1310 )
2023-08-19 12:28:20 +08:00
Julien Voisin and takase1121
1ab320bb9b
Handle readlink errors ( #1292 )
2023-08-19 12:28:19 +08:00
Julien Voisin and takase1121
d86413cc30
Don't set a value twice ( #1306 )
2023-08-19 12:28:19 +08:00
Julien Voisin and takase1121
d06c9f401c
Fix a memory leak ( #1305 )
...
`font` was not freed upon error.
2023-08-19 12:28:19 +08:00
Julien Voisin and takase1121
d755fa6fba
Make api_require's nodes const ( #1296 )
2023-08-19 12:28:18 +08:00
Takase
69ce580970
do not allow users to create an empty font group ( #1303 )
2023-08-19 12:28:18 +08:00
Guldoman and takase1121
bd4e64cc7e
Allow command buffer to be expanded ( #1297 )
2023-08-19 12:28:18 +08:00
jgmdev
79908baed6
regex: properly call pcre2_jit_compile
2022-12-28 19:40:20 -04:00
Quinten Kock and GitHub
3fda8c0a09
Fix userdata APIs for Lua 5.4 in native plugin interface ( #1188 )
...
* Reintroduce some missing Lua API's from native plugin API
* Add new upvalue functions to header
* Fix things that are actually macros in current lua
* Introduce lua_insert,replace,remove macros from lua5.4
2022-12-27 23:39:28 -05:00
Jefferson González and GitHub
141d00795c
dirmonitor: use pipes on fsevents ( #1274 )
...
As suggested by Guldoman this change introduces the usage
of pipes to allow blocking the get changes call until any
file system changes are received, which now properly reduces
the cpu usage on idle to 0%.
This change better fixes #1237
2022-12-27 23:07:12 -04:00
Jefferson González and GitHub
5fa7dabd34
dirmonitor: fix high cpu usage, fixes #1237 ( #1271 )
2022-12-27 18:23:39 -05:00
Guldoman and GitHub
c29b1c2cb9
Use Lua string length instead of relying on strlen ( #1262 )
...
This allows us to render `NULL` byte sequences and not truncate strings
that contain them.
2022-12-26 13:49:07 -04:00
jgmdev
0ab7fe9311
core regex: use backward compatible lua_newuserdata
2022-12-21 00:54:12 -04:00