Age | Commit message (Collapse) | Author |
|
As mentioned in jwilm/alacritty#931, it can be troublesome if a font has
an underline symbol outside of the glyph's bounding box. This can lead
to the underline disappearing at the bottom of the terminal.
As a solution a symbol from the private use area was used as the
character code for the underline symbol. Whenever this symbol is
encountered, instead of rendering it, a custom block is rendered.
In this implementation the block has the full character as width and
sits flush with the bottom of the glyph's bounding box. The height is
half the distance between the baseline and the bottom of the bounding
box.
|
|
|
|
|
|
|
|
Also fixes warning from gl generator
|
|
When a selection was made, the last line of the selection did not
include a new line character when the line ending was selected. This
would occur if only one line was selected; if multiple lines were
selected, only the final line did not include a newline.
This commit updates the `string_from_selection` function to attempt to
append a newline character in all places where they are suitable.
Because of the simplification of newline insertion, several trait
implementations were removed.
|
|
This became a support burden for me due to various compile and run time
issues.
|
|
|
|
The pixel-based scrolling behavior has been adapted to be as similar to
the line-based one as possible.
I still have not been able to test this. But this should have a decent
chance to at least kinda work.
|
|
Touchpads which use line-based instead of pixel-based updates send
partial scroll requests, so decimal numbers are important. The current
implementation only really used scroll amounts that are either 1 or -1.
This has been fixed and now the line-based touchpads should have very
smooth scrolling, but the pixel-based approach is still WIP and
completely untested.
|
|
This patch implements faux scrolling inside the alternate screen buffer.
Whenever the user scrolls up or down while the alternate screen buffer
is active, instead of actual scrolling three up/down arrow keys are
inserted.
|
|
Previously there were two separate but intended-to-be-identical
implementations. Now the two implementations simply delegate to a
single, shared method. This should help correctness issues in the
future.
|
|
|
|
When an atlas is full and the `insert` call fails, a new atlas should be
created. This is the current strategy, however the atlas is put at the
end of the vector, but the `current_atlas` index is set to 0, instead of
the last element. This leads to a recursion where it keeps trying to
insert into the full atlas at position 0 instead of the new at
`atlas.len() - 1`.
With this simple fix a stack-overflow is prevented because the new atlas
is inserted as the first element, which then will be used correctly for
loading new glyphs.
This fixes jwilm/alacritty/issues/842 and might also solve
jwilm/alacritty/issues/914 (I wasn't able to reproduce this with the
latest master).
|
|
|
|
|
|
|
|
Move/rename borderless into window_config as decorations
|
|
Until winit gives us more capabilities in regard to window decorations
this implements a simple switch that renders the window without any
title bar or border
|
|
|
|
The default cursor can now be configured through the cursor_style field
of the config. Valid options include Block, Underline, and Beam.
The default can be restored by sending \e[0q as in VTE terminals.
Live config reloading is supported for this parameter.
|
|
(needless_pass_by_value, needless_borrow).
|
|
|
|
|
|
(const_static_lifetime).
|
|
to "==".
|
|
This reverts commit a931d691a21a851ca4653cbab3542c600b72ff36.
Please see https://github.com/jwilm/alacritty/pull/907#issuecomment-345666727
for rationale w/ GIF.
> now alacritty starts "in stages". First it paints some small
> rectangle, and in a second in "boots" and fills up the available
> space.
|
|
|
|
* Support text cursor color escape codes
* Support reset color index escape code
* Support multiple colors in set color index escape code
|
|
Useful when requesting more info to help investigating issues.
|
|
|
|
|
|
|
|
Outside of a scroll region, linefeed will still advances the line until
reaching the bottom row in other terminals. Alacritty now matches that.
|
|
Linefeeds should only move the cursor down if it's before the end of
the scroll region.
The "out of bounds" panic was triggered by linefeeds going off the
bottom of the screen when the scroll region end was above the cursor.
Note: https://vt100.net/docs/vt102-ug/chapter5.html
"Characters added outside the scrolling region do not cause the screen to scroll."
|
|
Fixes #882
|
|
|
|
On mac, compiling throws a warning due to `is_urgent` not being used within `set_urgent`. This can be changed just by using an underscore instead.
|
|
Resolves #872
|
|
It seems that (as a rule) terminal emulators use the text mouse cursor rather
than the pointer that is used now. This commit changes the cursor to
using winit's built-in configuration function.
|
|
|
|
|
|
Sets the urgent WM flag when bell is emitted on X11 systems.
Additionally, the flag is cleared on focus because not all WMs clear it
automatically.
|
|
Since landing the patch adding transparency support to Alacritty,
there's been an issue where othewise solid background cells were also
being rendered partially transparent. Now, all filled background cells
are rendered fully opaque.
Some logic was added to support discarding filled backgrounds which had
the same color as the default background. This means that, if the
default background is #000 and a cell has that background, it will never
be rendered opaque. This may not be correct.
Note that many truecolor vim color schemes print spaces for default
colored background cells. Performance can be dramatically improved by
using ctermbg=NONE guibg=NONE to skip rendering those cells.
|
|
|
|
Parts of neighboring glyphs in the atlas were being rendered
incorrectly. The issue is resolved by aligning cells to the pixel grid.
This behavior was achieved previously by first applying integer
truncation before casting to a float.
Fixes #844.
|
|
Must have been broken when upgrading notify-rs
|
|
This shouldn't have any effect, but at least the default value is now
consistent with the default deserialization value.
|
|
Forgot to remove after being done with valgrind
|
|
The source of the leak was loading up multiple copies of the FT_face
even when not necessary. Fonts are now appropriately cached for
FreeType when going through the `Rasterize::load_font` API.
Additionally, textures in the glyph cache are now reused.
The result of this is that resizing to already loaded fonts is free
from a memory consumption perspective.
|