summaryrefslogtreecommitdiff
path: root/src/gui
AgeCommit message (Collapse)Author
2023-10-05core: use larger buffer for errors when creating a filterSébastien Helleu
2023-10-01core: make zstd dependency optional (closes #2024)Sébastien Helleu
2023-08-30core: do not evaluate properties "key_bind_xxx" and "key_unbind_xxx" in ↵Sébastien Helleu
options weechat.buffer.* (issue #352)
2023-08-28core: add key ctrl+z to suspend WeeChat process (closes #985)Sébastien Helleu
2023-08-27core: ignore key bindings with empty commandSébastien Helleu
This makes possible to disable a key hiding another (because shorter than the other, and beginning with the same key). For example if key "meta-a" is set to an empty command, it would not hide any more the key "meta-a,1" which has a non-empty command.
2023-08-26core: add variable ${property} in evaluation of options weechat.buffer.* ↵Sébastien Helleu
(issue #352)
2023-08-25core: add option `callbacks` in command `/debug`Sébastien Helleu
2023-08-24api: add infos "nick_color_ignore_case" and "nick_color_name_ignore_case" ↵Sébastien Helleu
(issue #194)
2023-08-24core: add option `setauto` in command `/buffer` (issue #352)Sébastien Helleu
2023-08-24core: add options weechat.buffer.* to save buffer properties set by user ↵Sébastien Helleu
(issue #352)
2023-08-22core: fix gcc warning on uninitialized variable `pos_end`Sébastien Helleu
The variable `pos_end` is never used when not initialized anyway, thanks to the `break` done before.
2023-08-18core: use dynamic string in function gui_buffer_set_highlight_words_listSébastien Helleu
2023-08-18core: simplify function gui_buffer_notify_getSébastien Helleu
2023-08-16core: add parameters and key bindings to move to edges of current area with ↵Sébastien Helleu
commands `/cursor go` and `/cursor move` (closes #1282)
2023-07-28core: fix input length and crash after delete of line (closes #1989)Sébastien Helleu
2023-07-10core: fix renaming of options with command `/item rename` (closes #1978)Sébastien Helleu
The options `weechat.custom_bar_item.xxx.*` are now properly renamed to the new item name. This fixes a save issue (item saved with old name in config) and a crash if a new item is created with the old name.
2023-07-08core: display focus hashtable for debug even if no key is matchingSébastien Helleu
2023-07-08core: use type "enum" in optionsSébastien Helleu
2023-07-03core: fix stylesSébastien Helleu
2023-07-03core: don't send key_pressed signal again for the same key pressTrygve Aaberge
If you press an incomplete key sequence, previously WeeChat would send the key_pressed signal again for the same keys on the next key. E.g. if you press escape and then 1, previously you would get the key_pressed signal with signal_data `\x01[` when you pressed escape, and then key_pressed with `\x01[` again when you pressed 1 (plus key_pressed with `1` for the 1 key). So two signals for the escape key, even though it was only pressed once. With this patch, you only get one signal for each key press. So one with `\x01[` when you press escape and then one with `1` when you press 1.
2023-07-03core: don't send key_combo_* signals for incomplete keysTrygve Aaberge
Version 4.0.0 (specifically commit 1f5c791c3) changed the key handling so key_combo_* signals were sent for each character in a sequence, rather than just when the sequence is finished. This broke parts of the vimode.py script. E.g. for the up arrow, 3.8 sends key_combo_default signal once with the signal_data `\x01[[A`, while 4.0.0 sends it three times with the signal_data `\x01[`, `\x01[[` and `\x01[[A`. With this patch, the previous behavior is brought back. There is one small change though. In 3.8 if you press escape one or two times it doesn't send key_combo_default, but if you press it three or more times it sends it for each escape press. With this patch, it's never sent for plain escape presses, only when the sequence is finished with some other key. This is intentional, as getting key_combo_default for escape presses doesn't make sense since it's not a finished combo, and the behavior of 3.8 where you got it after three or more key presses was most likely unintentional as it just happened because it didn't match any key bindings anymore (there are key bindings starting with one or two escape characters, but not more).
2023-06-26core: add variables "_chat_focused_line_bol" and "_chat_focused_line_eol" in ↵Sébastien Helleu
focus data (closes #1955) These variables are the same as "_chat_bol" and "_chat_eol" except that they stop at the beginning of the focused line (not the whole message displayed, in case message has multiple lines separated by "\n").
2023-06-26core: display actual key name and command with key Alt+kSébastien Helleu
Key Alt+K (upper K) is removed as well as commands `/input grab_raw_key` and `/input grab_raw_key_command`.
2023-06-02core: fix weechat.look.align_multiline_words not workingTrygve Aaberge
This option was broken with commit 031bd45e3.
2023-05-29core: set word_end_offset to character after wordTrygve Aaberge
It seemed strange to me to have word_end_offset point to the last character in the word, rather than the character after the word, especially now with the word stopping before a newline character which meant word_end_offset would be -1 if there was no characters before the newline character.
2023-05-29core: fix chat colors at certain positions not being appliedTrygve Aaberge
The new rendering of multiline lines had some issues with colors at certain positions not being applied. The color would not be applied if the color code was at either of these positions: - At the start of a line after a newline character - At the end of a line after a space and before a newline character - At a line by itself before a newline character The way I had done it by considering newline characters as a word in gui_chat_get_word_info with a variable specifying that it's newline characters became messy and didn't really make sense, so rather than doing this, I changed gui_chat_get_word_info to stop before the first newline character. That way, we can just check if we are at a newline character at the start of the loop, and don't need any more special handling. Fixes #1928
2023-05-18core: fix refresh of bar item "input_search" after buffer switch in root ↵Sébastien Helleu
bars (closes #1939)
2023-05-16core: fix partial completion when the common prefix found is empty (closes #340)Sébastien Helleu
2023-05-14core: allow to reset buffer property "input_multiline" to 0 even if there ↵Sébastien Helleu
are lines in buffer (issue #1923)
2023-05-13core: add quotes around paths in CMake files (closes #29)Sébastien Helleu
2023-05-12core: fix completion after newline in input (closes #1925)Sébastien Helleu
2023-05-04api: don't split on newline by default in functions `command` and ↵Sébastien Helleu
`command_options` when input_multiline is set to 0 The API functions `command` and `command_options` (when `split_newline` = 0, which is the default value) don't split on newline and then the first line is executed and the subsequent lines (after "\n") are ignored. There are no changes when the input has multiple lines filled by the user: the split is done and multiple commands are executed (for example if the user is pasting multiple commands to execute).
2023-05-01core: add options weechat.color.chat_status_disabled and ↵Sébastien Helleu
weechat.color.chat_status_enabled (issue #1820)
2023-05-01core: keep only first message line in modifier "weechat_print" when ↵Sébastien Helleu
input_multiline is not set in buffer
2023-05-01core: keep only first message line in hook line when input_multiline is not ↵Sébastien Helleu
set in buffer
2023-04-26core: change default background color of status and title bars (issue #1920)Sébastien Helleu
Default values changed: - weechat.bar.status.color_bg: blue -> 234 - weechat.bar.status.color_bg_inactive: darkgray -> 232 - weechat.bar.title.color_bg: blue -> 234 - weechat.bar.title.color_bg_inactive: darkgray -> 232
2023-04-26core: always allow 256 colors, find nearest color if less colors are ↵Sébastien Helleu
available in terminal (issue #1920)
2023-04-26core: fix infinite loop on startup when running some gui commands before the ↵Sébastien Helleu
switch to core buffer is performed (closes #1917)
2023-04-26core: fix display bug when drawing partially scrolled multilineTrygve Aaberge
If you have a chat line with multiple lines that were scrolled so that part of it is rendered at the bottom of the chat area, and part of it falls below the chat area, there was a bug where the prefix_suffix would be displayed at the end of the last line. Looks like this happens because the gui_chat_display_prefix_suffix is called for the line below the last line displayed in the chat area. So we have to add a check for this so we don't add the prefix_suffix. This check is copied from gui_chat_display_word which checks for the same. Fixes #1912
2023-04-25core: add option `split_return` in command `/input` (closes #1916)Sébastien Helleu
2023-04-25core: add cursor key l to quote focused lineTrygve Aaberge
Fixes #1913
2023-04-25core: add _chat_focused_line variable to get the focused lineTrygve Aaberge
This contains the single line that you focused on, like _chat_word contains the word that you focused on. This will be equal to _chat_line_message if the chat line only contains a single line, but if the chat line has multiple lines, _chat_line_message will contain all of them, but _chat_focused_line will only contain the single line that was focused. Fixes part of #1913
2023-04-23core: fix update of terminal title in some terminals like suckless terminal ↵Sébastien Helleu
(stterm) (closes #1882)
2023-04-20core: keep only first message line in hdata update of line_data when ↵Sébastien Helleu
input_multiline is not set in buffer
2023-04-20core: do now allow buffer property "input_multiline" to be reset to 0, ↵Sébastien Helleu
except if buffer has no lines
2023-04-19core: still split on printf when input_multiline isn't setTrygve Aaberge
If we have chat lines with multiple lines in buffers without input_multiline set, there can be an issue if a trigger is run on that line. If the trigger runs a command which includes the message, then the command is split (since input_multiline isn't set), and if any of the lines in the message starts with a command, that command is executed. To prevent this, only avoid splitting on newlines in printf if input_multiline is set, so only such buffers can have chat lines with newline characters. See https://github.com/weechat/weechat/pull/1909 for more details.
2023-04-19core: don't split on newline characters in printf_date_tagsTrygve Aaberge
With support for rendering newline characters as new lines, we don't need to split the message on newline characters anymore in printf_date_tags. This allows you to print a line with multiple lines.
2023-04-19core: render newline characters in chat line messagesTrygve Aaberge
If a chat line message contains a newline character (\n) it was previously rendered as J with reverse video. This commit makes it render as an actual newline instead, so messages with multiple lines become supported. The rendering is fixed in normal mode as well as bare mode both when scrolled to the bottom and when scrolled up (which is different code paths). Focus events has also been updated to support this (except for _chat_line_y which returns -1 for all lines, but the docs says this variable is only for buffers with free content). Currently, the only way to include a \n in a chat line message is with hdata_update because printf splits on \n and creates multiple separate lines, but hopefully either printf can be changed to not split on \n, or a new command which doesn't split can be added.
2023-04-07core: add item "mouse_status" in default status barSébastien Helleu
2023-03-31core: replace key `meta2-` by `meta-[` in commentsSébastien Helleu