Commit Graph
100 Commits
Author SHA1 Message Date
Francesco Abbate 46791aefe5 Implement maximize/restore controls
Remove also resize from top and right of the window
2021-04-12 11:54:52 +02:00
Francesco Abbate 96a0ae802a Improve run-plugin to use positional arguments 2021-04-12 11:08:47 +02:00
Francesco Abbate 67dc16ad26 Make windows control buttons active 2021-04-11 23:52:31 +02:00
Francesco Abbate 8ad87d77da Add correct hit-test information and menu icon 2021-04-11 15:08:25 +02:00
Francesco Abbate 7531a0ddc8 Preliminary implementation of border-less mode
Not yet functional but most ingredients are there
2021-04-10 19:35:57 +02:00
Francesco Abbate d6f2f1f0a4 Add script to test third-part plugins 2021-04-08 15:40:44 +02:00
Francesco Abbate f250adcda1 Implement multi-lines for NagView
Related to issue #147
2021-04-07 23:46:45 +02:00
Francesco Abbate 119f406d3c Add NagView message for refused plugins 2021-04-07 09:42:19 +02:00
Francesco Abbate d7cc1f9f9d Add plugin verification by version tag 2021-04-06 17:50:46 +02:00
Francesco Abbate b4ba209b29 amend 2021-04-06 08:29:32 +02:00
Francesco Abbate e5f2120a27 Merge branch 'doc-change-hook' 2021-04-06 08:28:24 +02:00
Francesco Abbate 6e3cd41bd1 Logical test simplification in detectindent 2021-04-06 08:27:35 +02:00
Francesco Abbate 3721ace099 Fix logical error in on_text_change 2021-04-06 08:26:53 +02:00
Francesco Abbate e43c980e4a Simplifies previous commit
Restore the previous signature of raw_insert/remove
2021-04-06 08:18:35 +02:00
Francesco Abbate 5b60405c53 Adjust wording in changelog 2021-04-06 07:17:40 +02:00
Francesco Abbate b1c1deb4c4 Remove no longer used system.show_confirm_dialog
Replaced by the NagView dialog
2021-04-06 07:12:33 +02:00
Francesco Abbate d1984942ea Add hook function for Doc changes 2021-04-05 00:11:56 +02:00
Francesco Abbate 0dc1098705 Add changelog entry for improved NagView 2021-04-04 19:01:09 +02:00
Francesco Abbate 3b040aabc7 Implement unicode character replacements
Useful to draw whitespaces with alternate characters and colors
without slowing down the text rendering.

A new API is implemented. A renderer.replacements object can be created
to list the replacements.

In turns the function renderer.draw_text and draw_text_subpixel now accept
two optional arguments for replacements.
2021-04-01 18:05:59 +02:00
FrancescoandGitHub ae3d09054f Update travis CI badge in README 2021-03-25 19:35:26 +01:00
Francesco Abbate 3810b6ba6c Update subproject reference to libagg
The new revision of libagg disables examples on OS X because platform support doesn't work
2021-03-23 08:54:45 +01:00
Francesco Abbate 5f3b4c0f13 Do not build portable package on unix-like systems 2021-03-23 08:51:13 +01:00
Francesco Abbate 4b3b8f430a Merge remote-tracking branch 'basinbaby/set-window-opacity'
Implement the suggestion and close #125.

Initial suggestion and implementation from

https://github.com/rxi/lite/pull/17
2021-03-23 07:15:18 +01:00
Francesco Abbate 30cdc35df5 Add stand-alone desktop file
As request in #117
2021-03-22 20:20:58 +01:00
Francesco Abbate e160ed4e5e Add comments about unused RenFont data field 2021-03-20 23:05:09 +01:00
Francesco Abbate 15a4985065 Prepare release 1.16.5 2021-03-20 22:31:45 +01:00
Francesco Abbate b33167ca4b Revert "Remove unused data field in RenFont"
This reverts commit 461266e97d.

Related to github issue #122.

The void *data field is not used but the glyphset index can
someting be equal to -1 and the unused field prevent faulty
writes before the allocated struct.
2021-03-20 21:48:04 +01:00
FrancescoandGitHub 6f03b765c8 Change screenshot in README 2021-03-20 18:54:45 +01:00
Francesco Abbate 60fa7d07ba Prepare 1.16.4 release 2021-03-20 17:10:27 +01:00
Francesco Abbate f9115751b4 Minor simplification of animation rate adjustment 2021-03-20 17:00:43 +01:00
Francesco Abbate 7f50df6a2f Ensure plugin within a directory are loaded
Close #118
2021-03-20 16:34:00 +01:00
Francesco Abbate 8567f6a7ee Add desktop entry and svg icon in build-package script
Close #117
2021-03-20 16:12:19 +01:00
Francesco Abbate 12aeac3d2c Add lite icon in svg format from rxi/lite 2021-03-20 13:03:43 +01:00
Francesco Abbate aee602ea2f Merge branch 'xrdb-lean' 2021-03-18 16:20:32 +01:00
Francesco Abbate 26ec9e5820 Compute animation rate only if needed 2021-03-18 16:20:21 +01:00
Francesco Abbate 04063ff47e Fix error introduced with commit c0ad86d 2021-03-18 15:46:44 +01:00
Francesco Abbate 461266e97d Remove unused data field in RenFont 2021-03-18 14:05:58 +01:00
Francesco Abbate ecb9e88fdb Merge branch 'master' into xrdb-lean 2021-03-18 14:00:54 +01:00
Francesco Abbate 88bec172a1 Fix problem with tab size and subpixel positioning
Solve github issue https://github.com/franko/lite-xl/issues/109
2021-03-18 13:54:33 +01:00
Francesco Abbate a742c56ee7 Minor xrdb buffer optimization 2021-03-18 10:06:01 +01:00
Francesco Abbate 43e08b0f8e Fix problem with previous commit and remove strtol call 2021-03-18 10:00:03 +01:00
Francesco Abbate 51e7c9493f Minor change for xrdb output parsing
Use memmove to copy remaining bytes at beginning of buffer
2021-03-18 09:32:52 +01:00
Francesco Abbate ac0728d073 Check for error in pipe call 2021-03-17 18:29:50 +01:00
Francesco Abbate 30f9f20e23 Ensure xrdb code is compiled only on unix 2021-03-17 18:10:47 +01:00
Francesco Abbate dab39d3b5c Implement xrdb reading without popen
Avoid using the shell, awk and cut command
2021-03-17 16:58:44 +01:00
FrancescoandGitHub 56a4584a1b Update README about Meson versions < 0.54
Related to issue https://github.com/franko/lite-xl/issues/98
2021-03-14 12:55:31 +01:00
Francesco Abbate b612357371 Bump new version number 2021-03-07 18:47:15 +01:00
Francesco Abbate d0d6ad8d7d Fix problem with glyph spacing in subpixel mode
One more space is needed for subpixel positioning.

Otherwise some artifacts can be present
2021-03-07 18:38:47 +01:00
Francesco Abbate 6782533ad2 Fix heuristic to find font atlas optimal width 2021-03-07 17:30:11 +01:00
Francesco Abbate baf5aebe1c Merge remote-tracking branch 'origin/master' into subpixel-font-positioning-fix 2021-03-07 12:25:53 +01:00
Francesco Abbate be878a39c4 Add missing function in script run-local 2021-03-07 09:49:08 +01:00
Francesco Abbate 23a053e1ee Ensure error and stack trace are written to stdout
To address https://github.com/franko/lite-xl/issues/87
2021-03-07 09:48:44 +01:00
Francesco Abbate 199476547b Fix error related to panes resize along y 2021-03-06 23:50:19 +01:00
Francesco Abbate 991db14877 Ensure filename are store relative to project directory 2021-03-06 23:49:20 +01:00
Francesco Abbate 35abce1ce1 Add run-local option to download and test a plugin 2021-03-06 23:48:18 +01:00
Francesco Abbate 5bf7abf23d Ensure filename are store relative to project directory 2021-03-06 23:36:05 +01:00
Francesco Abbate 087c8ba402 Fix error related to panes resize along y 2021-03-06 23:05:04 +01:00
Francesco Abbate 3426bc5d73 Introduce subpixel text positioning within rencache
In order to fix the issue with cursor positioning a subpixel-aware draw
text operation within rencache was required.

With this modification the cursor positioning problem is completely
resolved.

A new function renderer.draw_text_subpixel is introduced to perform
consecutive, inline, text drawings with subpixel accuracy.
2021-03-06 18:12:02 +01:00
Francesco Abbate 9ff6a0325e Mostly fix problem of offset with cursor positioning when using mouse
In order to get right the cursor position on text on mouse clicks it is
needed to take into account text's subpixel positioning.

This fix mostly corrects the problem but cursor positioning is still
somewhat inaccurate for long lines due to repeated commands to draw a text
along a line. Repeated draw text calls make the subpixel information
lost and small errors will add-up.
2021-03-06 16:18:24 +01:00
Francesco Abbate 913549a7b6 Add run-local option to run with a thirdy-part plugin 2021-03-06 15:39:30 +01:00
Francesco Abbate 6909fd9a60 Merge remote-tracking branch 'origin/master' into subpixel-font-positioning-fix 2021-03-06 13:02:12 +01:00
Francesco Abbate aa1408c01f Do not assume doc.indent_info is present 2021-03-05 23:47:36 +01:00
Francesco Abbate 09332fe242 Fix problem with fatal error message
Previous implementation was broken.

Ensure the error file is always written and write its location in the error message
2021-03-05 23:46:41 +01:00
Francesco Abbate 7abb36e5e8 Fix error with glyphs subpixel layout 2021-03-05 22:43:15 +01:00
Francesco Abbate 877e4ac6e2 Bump new version 2021-03-05 11:33:29 +01:00
Francesco Abbate a4bc8986ff Implement fatal error message box
Used when lite-xl fails at startup
2021-03-05 10:33:50 +01:00
Francesco Abbate 636bc7ec95 More accurate EXEDIR detection
Use ony the OS path separator to parse the executable filename
2021-03-05 09:42:48 +01:00
Francesco Abbate ffb4773a0b Merge branch 'subpixel-font-positioning' 2021-03-05 09:14:25 +01:00
Francesco Abbate 1ea497deb4 Fix problem when launching from a different location
Should fix https://github.com/franko/lite-xl/issues/76 and https://github.com/franko/lite-xl/issues/67
2021-03-05 07:28:29 +01:00
Francesco Abbate 3506ff47fc Fix problem with plugin loading
Introduced with PR https://github.com/franko/lite-xl/pull/73
2021-03-05 07:22:56 +01:00
Francesco Abbate e441beae83 Add missing padding pixel to avoid artifacts
Using subpixel positioning we need one empty pixel as the left of each glyph.
2021-03-04 16:54:55 +01:00
Francesco Abbate bdc473435b Fix bug causing abort when glyph count was zero
Solve github's issue https://github.com/franko/lite-xl/issues/75
2021-03-03 18:49:27 +01:00
Francesco Abbate de13762085 Show complete tab name when close butto is not there 2021-03-03 18:48:41 +01:00
Francesco Abbate 294f3f14fb Implement subpixel font positioning
Subpixel positioning is only by 1/3 of pixel
2021-03-03 18:36:09 +01:00
Francesco Abbate 8883685eea Fix font size in initial user's config 2021-03-01 09:48:12 +01:00
Francesco Abbate 8a34508a2e Update changelog 2021-02-28 23:49:18 +01:00
Francesco Abbate c0942bbde7 Use slightly larget font for UI 2021-02-28 23:44:35 +01:00
Francesco Abbate 75eadf4dc7 Simplifies logic for suggestion's offset 2021-02-28 23:24:19 +01:00
Francesco Abbate e46800347f Implement scrolling in command view 2021-02-28 19:52:38 +01:00
Francesco Abbate a35ef764a0 Show Lite XL instead of lite in window's title 2021-02-28 18:55:05 +01:00
Francesco Abbate 6c84913f6a Do not set window's title to unsaved for command view 2021-02-28 18:54:32 +01:00
Francesco Abbate bd2d8db231 Draw divider for inactive tabs 2021-02-27 23:56:11 +01:00
Francesco Abbate f708a53a04 Keep active view when closing inactive tabs 2021-02-27 23:55:36 +01:00
Francesco Abbate 4d320c1946 Ensure treeview is large enough to show toolbar 2021-02-27 19:39:56 +01:00
Francesco Abbate e861ea1d66 Ensure tab's text and close button don't overlaps 2021-02-27 17:19:47 +01:00
Francesco Abbate 4cda8fc122 Show tab close button when hovering inactive tabs 2021-02-27 15:29:18 +01:00
Francesco Abbate ca6d1843bc Implement close button for tabs 2021-02-27 13:53:52 +01:00
Francesco Abbate 0dc18de6bc Add information about icon_big_font in initial user's configuration 2021-02-27 12:13:51 +01:00
Francesco Abbate 4d734e933c Fix resize behavior of treeview and toolbar
Now toolbarview always compute up-to-date sizes and spacing to adapt to
changes in icon big font.

For treeview and toolbarview revert the goto_size approach to use the
original approach of rxi/lite. In order to make it work when user resizes
dragging the divider we use the view optional method set_target_size().
This latter changes the view's target size instead of changing its size
right away. The size is only changed by the lite's layout and animation
system.

Remove the config.treeview_size variable that was no longer working because
plugins are loaded before the user's config.
2021-02-27 12:13:11 +01:00
Francesco Abbate 7802202625 Update subprojects options and version
Now no longer builds libagg examples applications neither Lua's
interpreter and bytecode compiler. Only the static libraries are built.
2021-02-26 15:49:30 +01:00
Francesco Abbate af0be4abf1 Update changelog and version 2021-02-25 09:37:06 +01:00
FrancescoandGitHub 0f789cd6a2 Merge pull request #63 from eugenpt/master
+js language regexp pattern
2021-02-24 20:21:44 +00:00
Francesco Abbate 94b99b658e Fix multi-line commands
When second position is at the beginning of a line do not include this latter.
2021-02-24 18:06:47 +01:00
Francesco Abbate cbb42d0028 Fix spacing in treeview
Previous setting was not okay with monospaced fonts
2021-02-24 17:50:34 +01:00
Francesco Abbate ff5052be9a Improve build-package script to create portable and unix-like packages 2021-02-24 17:39:12 +01:00
Francesco Abbate 351a772466 do not use 'portable' as a compile time option
Introduce the file core/start.lua to initialize applications variables
2021-02-24 16:29:39 +01:00
Francesco Abbate ea8a8770ea Do not use nullptr and add check 2021-02-24 09:46:48 +01:00
Francesco Abbate a23986f171 Cleanup font's note markdown file 2021-02-23 17:14:22 +01:00
Francesco Abbate 35f31c8fbc Fix font rendering artifacts bug
Seen with some fonts like FiraSans, github issue:

https://github.com/franko/lite-xl/issues/46

The fix works essentially by looking to the bounds of each glyph to
accurately ensure that there are no overlaps between the glyphs.

The construction of the font atlas was changed to make some related
improvements now that the bounds of each glyph are know. The main
changes are:

- no longer align glyph on the baseline but align them on their upper
  bounds. We ensure this way that very tall fonts do not leak in the
  upper part
- terminate the row based on x bounds of the glyph to be more accurate
- for each row keep trace of the y of the more larger along y of the
  glyph. The value is used to start a new row to be sure that the new
  now does not overlap with the previous one
- sort glyphs by y size before drawing them. In this way the space
  utilization is better. The algorithm used is the very simple insert
  sort. It behaves like O(n^2) with the number of characters but should
  be ok since n is always small, typically below 128.
- compute the optimal image width and height for the given font's atlas
  for optimal memory usage. As a bonus now the lite's code don't have to
  try and repeat to get a good image size
2021-02-23 17:14:08 +01:00
Francesco Abbate f7d547e7e6 Update changelog 2021-02-21 13:04:03 +01:00