aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-12-24Add custom underline cursorChristian Duerr
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.
2017-12-23Update glutin to v0.11chetgurevitch
2017-12-23Update bitflags to v1Chet Gurevitch
2017-12-23Update glutin to v0.10Chet Gurevitch
2017-12-23Update dependenciesJoe Wilm
Also fixes warning from gl generator
2017-12-22Assure that newlines are in selections (#777)Dustin
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.
2017-12-22Remove built crateJoe Wilm
This became a support burden for me due to various compile and run time issues.
2017-12-22Style nitsJoe Wilm
2017-12-22Adapt pixel-based scrolling behaviorChristian Duerr
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.
2017-12-22Fix faux scrolling for line-based touchpadsChristian Dürr
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.
2017-12-22Implement faux scrollingChristian Duerr
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.
2017-12-22Share LoadGlyph implementationsJoe Wilm
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.
2017-12-22Change LoadGlyph in LoaderApi to match RenderApiChristian Duerr
2017-12-22Fix stack-overflow when creating a new atlasChristian Duerr
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).
2017-12-22Use consistent config deprecation message styleJoe Wilm
2017-12-22Deprecate config top-level dimensions and paddingJoe Wilm
2017-12-22Move dimensions and padding into window sectionRobert Günzler
2017-12-22Add new window section to configRobert Günzler
Move/rename borderless into window_config as decorations
2017-12-22Add 'borderless' optionRobert Günzler
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
2017-12-13Remove the launcher and set the locale/current directory in alacritty (#879)Theodore Dubois
2017-12-03Add cursor style option (#928)Christian Duerr
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.
2017-12-03clippy: do and don't pass some things by reference as suggested ↵Matthias Krüger
(needless_pass_by_value, needless_borrow).
2017-12-03clippy: use is_empty() instead of len() == 0 (warn(len_zero)).Matthias Krüger
2017-12-03clippy: remove unneeded return statement (needless_return).Matthias Krüger
2017-12-03clippy: string constants do not need to have static lifetime ↵Matthias Krüger
(const_static_lifetime).
2017-12-03clippy: fix if_not_else warning 'breaking' the build. Swap blocks and change ↵Matthias Krüger
to "==".
2017-11-20Revert "Wait to display window until initialization is complete (#907)"Joe Wilm
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.
2017-11-19Wait to display window until initialization is complete (#907)Charles
2017-11-11Support more color escape codes (#757)Tuomas Siipola
* Support text cursor color escape codes * Support reset color index escape code * Support multiple colors in set color index escape code
2017-11-11Output more info for `--version` (#888)hcpl
Useful when requesting more info to help investigating issues.
2017-11-11Fix typo and whitespaceJoe Wilm
2017-11-11Style fixesJoe Wilm
2017-11-11Don't enforce window dimensions if configured with 0 columns or linesBryan Gilbert
2017-11-11Match LF behavior outside scroll region with urxvtJoe Wilm
Outside of a scroll region, linefeed will still advances the line until reaching the bottom row in other terminals. Alacritty now matches that.
2017-11-11Correct linefeed handling when scroll region set (#855)Yan
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."
2017-11-11Support integer font size in config (#886)thelearnerofcode
Fixes #882
2017-10-30fix some typos in commentsMartin Lindhe
2017-10-26set_urgent on mac throws a warning (#867)Ty Coghlan
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.
2017-10-26Fix stack overflowJoe Wilm
Resolves #872
2017-10-22Change cursor from pointer to text (#778)Dustin
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.
2017-10-22Fix typoJoe Wilm
2017-10-22Rewrite err_println to eprintln introduced in Rust 1.19 (#799)Roel
2017-10-21Set urgent WM flag on bell on X11 systems (#812)Barret Rennie
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.
2017-10-21Fix solid background color opacity (#847)Joe Wilm
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.
2017-10-21List all valid actions in config error message (#848)Robert Bittle
2017-10-17Fix render issues on macOS (#845)Joe Wilm
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.
2017-10-16Fix config reloadingJoe Wilm
Must have been broken when upgrading notify-rs
2017-10-16Fix default config reload valueJoe Wilm
This shouldn't have any effect, but at least the default value is now consistent with the default deserialization value.
2017-10-14Drop nightly featureJoe Wilm
Forgot to remove after being done with valgrind
2017-10-14Fix memory leak from font resizingJoe Wilm
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.