summaryrefslogtreecommitdiff
path: root/src/gui
AgeCommit message (Collapse)Author
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
2023-03-31core: fix key `meta-[O` (unfocus with xterm) (closes #1900)Sébastien Helleu
2023-03-31core: remove keys `meta-[I` and `meta-[G` for pgup/pgdn (issue #1900)Sébastien Helleu
It seems no terminal return such codes any more for pgup/pgdn, and `meta-[I` is conflicting with the xterm terminal "focus in" key code. The keys are also removed from config when converting old keys, but only if they are bound to the default command (`/window page_up` for `meta2-I` and `/window page_down` for `meta2-G`).
2023-03-26core: Add an option to start multiline input text on a new lineTrygve Aaberge
This does the same as the lead_linebreak option in multiline.pl. That is, when the input contains more than one line, the first line will be displayed beneath the previous items in the bar. This is practical because all the lines in the input will be aligned. Related to #1498
2023-03-26core: fix code style (issue #1503)Sébastien Helleu
2023-03-26core: add keys `shift-left` and `shift-right` with same commands as `left` ↵Sébastien Helleu
and `right` (issue #1503)
2023-03-26core: revert keys `meta-r` (delete line) and `meta-R` (delete input) (issue ↵Sébastien Helleu
#1503)
2023-03-26core: Implement commands for operating on a single input lineTrygve Aaberge
This changes the commands delete_beginning_of_line, delete_end_of_line, delete_line, move_beginning_of_line and move_end_of_line to operate on the current line instead of the whole input. The commands delete_beginning_of_input, delete_end_of_input, delete_input, move_beginning_of_input and move_end_of_input are added with the previous implementations that the line commands had. Additionally, the commands move_previous_line and move_next_line are added which moves the cursor to the previous/next line and keeps the horizontal position in the line. The meta-r key is changed from delete_line to delete_input to keep the behavior, and because you probably want to delete the whole input more often than the line. The meta-R key is added for delete_line. The home, end, ctrl-u and ctrl-k keys are kept to the same commands, which means that they change behaviour. This is because having them operate on the line is consistent with other applications (vim, zsh), and I also think it's more practical. These new bindings are added: shift-home: /input move_beginning_of_input shift-end: /input move_end_of_input shift-up: /input move_previous_line shift-down: /input move_next_line meta-R: /input delete_line meta-ctrl-u: /input delete_beginning_of_input meta-ctrl-k: /input delete_end_of_input Relates to #1498
2023-03-26core: fix default value of bar optionsSébastien Helleu
The previous commit e385eec1d6116b8c87889fc1d829aa1c5192156f fixed default value for bar added by plugins and option "items" in all bars. This commit fixes the default value of all bar options.
2023-03-25core: fix typo and code styleSébastien Helleu
2023-03-25core: Include blank lines in paste line countTrygve Aaberge
Since pastes are now inserted into the input instead of sent, and blank lines are preserved in the input, they should now be counted too.
2023-03-25core: Remove option weechat.look.paste_auto_add_newlineTrygve Aaberge
This option existed so that you could edit the last line of a multiline paste before it was sent. Now that pasting multiple lines don't cause the lines to be sent immediately anymore, this option isn't useful anymore since you can always edit pasted text before it's sent.
2023-03-25core: Always remove final newline when pastingTrygve Aaberge
Since pasting doesn't send the line now, it's more practical to always remove the final newline so you don't end up with an empty line at the end of the input buffer. Fixes a part of #1498
2023-03-25core: Replace newline/tabs after paste is acceptedTrygve Aaberge
Instead of replacing newline/tabs when paste is started, do it when the paste is accepted instead. This makes a difference if you paste again while the paste confirmation is active, where instead of running it again for each paste, it will now be run for all the text at the end. For now this doesn't make a practical difference, but the next commit will remove the final newline when multiple lines are pasted too, which we only want to do for the final paste.
2023-03-25core: When pasting, insert text in input instead of interpreting keysTrygve Aaberge
This makes pasted text appear in the input bar, instead of each line being sent. This allows you to edit the text before sending it, and it makes multiline paste supported in buffers with input_multiline on. It also replaces \r with \n in pasted text because most terminals (e.g. xterm and urxvt) print lines separated by \r when pasting as if return was pressed between each line, even though the copied text uses \n. The text sent to the buffer should use \n, not \r, so we have to replace it. Note that this only works when bracketed paste is enabled or the paste confirmation as shown, because non-bracketed paste with no paste confirmation is not detected as a paste. Fixes a part of #1498
2023-03-25core: Parse bracketed paste also when paste pendingTrygve Aaberge
When in paste pending mode, the bracketed paste escape sequence should still be interpreted, so that if you paste while in paste pending the same things as when pasting in normal mode still happens, i.e. the escape sequence is removed, ctrl-y/n is not interpreted and newline/tabs are replaced.
2023-03-25core: fix uninitialized variable `chunks2_count` when key_name and ↵Sébastien Helleu
key_name_alias are the same
2023-03-25core: remove unnecessary assignmentSébastien Helleu
2023-03-25core: remove commented codeSébastien Helleu
2023-03-25core: fix gcc warning on snprintfSébastien Helleu
2023-03-21core: move buffer functions and remove them from header fileSébastien Helleu
2023-03-21core: remove unused function gui_buffer_is_scrolledSébastien Helleu
2023-03-21core: remove unused function gui_buffer_search_by_layout_numberSébastien Helleu
2023-03-20core: add relative move of read marker with `/buffer set unread [+/-]N` ↵Sébastien Helleu
(closes #1895)
2023-03-19core: fix default value of options for bars added by pluginsSébastien Helleu
When the bar name already exists, the function `bar_new` returns the pointer to the bar (instead of NULL) and sets the default value for all options with the values received.
2023-03-19core: fix long lines in function gui_bar_use_temp_barsSébastien Helleu
2023-03-19core: allow any valid boolean value in command `/bar set <name> separator xxx`Sébastien Helleu
2023-03-19core: fix typo on bar option name "separator"Sébastien Helleu
2023-03-19core: use a fixed size buffer to create a bar optionSébastien Helleu
2023-03-19core: use a fixed size buffer to rename a barSébastien Helleu
2023-03-18core: bump version to 4.0.0-dev, follow "practical" semantic versioningSébastien Helleu
2023-03-17core: also display mouse codes with `/debug key`Sébastien Helleu