about summary refs log tree commit diff
path: root/ui.c (follow)
Commit message (Collapse)AuthorAge
* Add bindings for C-Left and C-RightJune McEnroe2021-03-07
| | | | | | | | Apparently these are common. There's no terminfo for these, so manually define the xterm sequences. There's no documentation in the manual for the "intuitive" keys... I'm not sure if that should continue to be the case or not.
* Add all window names to global completionJune McEnroe2021-03-02
| | | | | Don't want to be touching window names much though, otherwise query window names would interfere with tab completion within a channel.
* Add workaround for lack of A_ITALIC in old ncursesJune McEnroe2021-02-27
| | | | | | | | | | | | | A_BLINK has probably always existed, but there's no good reason to ever use it, so make it do italics instead. Normally all attributes are set by a single set_attributes string if it's set, so clear it to force ncurses to use the reassigned enter_blink_mode string. If the terminal has no enter_italics_mode string, then nothing will happen. This makes setting multiple attributes a bit less efficient, but I don't think it's likely to make much of a difference since using multiple attributes at once is so uncommon.
* Add C-z p to manually toggle paste modeJune McEnroe2021-02-15
| | | | | | OpenBSD's xterm doesn't have bracketed paste mode, and it would be nice to still be able to paste in several lines and collapse them with M-q, provided one remembers to type C-z p first...
* Refactor Focus and Paste mode stringsJune McEnroe2021-02-15
|
* Add C-z C-v for literal nextJune McEnroe2021-02-03
| | | | | | | | | A little annoying to make it a "chord" like this, but C-v is already used for scrolling, following Emacs-style key bindings (in order to have a way to scroll without using "special" keys like the arrows and page up/down), and C-z is at least already in the business of inserting control characters. This makes it possible to manually enter some things that are otherwise only possible with /exec printf.
* Also skip marking swap windowJune McEnroe2021-01-31
| | | | Third time's the charm?
* Actually scroll to first line for "scroll to top"June McEnroe2021-01-29
|
* Only skip setting swap in windowShowJune McEnroe2021-01-29
| | | | | | With the early return, mainUpdate doesn't get called in cases where other functions expect windowShow to call it, such as when closing or moving windows.
* Move threshold and mute indicators directly after numberJune McEnroe2021-01-28
| | | | | | I don't know why I ruled this out originally, it's more visually pleasing to me now especially that threshold is likely to remain set at "+" for a long time.
* Save window time display toggleJune McEnroe2021-01-27
|
* Measure timestamp width using ncursesJune McEnroe2021-01-27
| | | | | This allows for non-ASCII characters in timestamps, and simplifies things by including the trailing space in the width.
* Change default timestamp format to %XJune McEnroe2021-01-27
| | | | This respects the user's locale settings.
* Add toggleable display of timestampsJune McEnroe2021-01-27
|
* Only list up until scroll position with M-lJune McEnroe2021-01-26
|
* Preserve scroll position across reflowsJune McEnroe2021-01-26
| | | | | | | | | | | | Finally! Changing the message visibility threshold doesn't totally screw up scroll position. Neither do horizontal resizes, but vertical resizes drift because the value of windowTop() changes before and after... The scroll position is anchored to the top of the window. It's arbitrary whether to anchor the top or the bottom, but other scrolling commands like M-p and C-r are anchored to the top, so this is consistent.
* Rename and move scroll functions closer to where they are usedJune McEnroe2021-01-26
|
* Factor out windowReflowJune McEnroe2021-01-26
|
* Disable notify in restricted modeJune McEnroe2021-01-25
| | | | | catgirl shouldn't try to execute a command if it is misconfigured with both restrict and notify.
* Don't print timestamps for blank lines in bufferListJune McEnroe2021-01-25
|
* Simplify windowUpdate loops and factor out windowTopJune McEnroe2021-01-21
| | | | | No idea why I made that more complicated than it had to be looping backwards.
* Don't lose swapped window when navigating to current bufferJeremy O'Brien2021-01-19
|
* Use Warm heat for manually inserted blank linesJune McEnroe2021-01-19
| | | | Oops, forgot about these.
* Use Warm heat for blank lines 1.5June McEnroe2021-01-17
| | | | So they're not hidden by M-+.
* Save and load window visibility thresholdsJune McEnroe2021-01-16
|
* Restore toggling ignore with M--June McEnroe2021-01-16
| | | | So that pressing M-- repeatedly maintains the previous behavior.
* Generalize ignore toggling to visibility thresholdJune McEnroe2021-01-16
|
* Save and load the URL ring in the save file 1.4June McEnroe2021-01-11
|
* Avoid eating C-c while connectingJune McEnroe2020-10-12
| | | | | Split UI initialization into two steps either side of the call to connect, so that C-c works as interrupt while it's blocked.
* Factor out styleStripJune McEnroe2020-10-09
|
* Silence set-but-unused warning 1.2June McEnroe2020-09-09
| | | | getyx is so annoying this way.
* Add blank line to unread if there are already unreadJune McEnroe2020-09-07
| | | | | This fixes the inconsistent M-u behaviour when catgirl is restarting and reconnecting to pounce, for example.
* Call uiWrite to insert blank linesJune McEnroe2020-09-07
| | | | | It only used to use different code to avoid adding the blank line to the soft buffer.
* Add C-r, C-s for basic scrollback searchJune McEnroe2020-09-06
|
* Add M-n, M-p to jump to highlightsJune McEnroe2020-09-03
|
* Fix M-u behaviour difference before and after reflowJune McEnroe2020-09-03
|
* Recalculate unreadHard on reflowJune McEnroe2020-09-02
|
* Give blank lines timestampsJune McEnroe2020-09-02
| | | | Otherwise the zero timestamps totally break save data loading! Bad!
* Hide ignored messages at the soft -> hard buffer layerJune McEnroe2020-09-02
| | | | This restores normal scrolling behaviour.
* Still add ignored lines to unreadHardJune McEnroe2020-09-02
| | | | | Scrolling is still affected by hidden lines (which I'm not sure yet is good or not), so for M-u to work it needs to count ignored lines.
* Actually insert blank lines in the soft bufferJune McEnroe2020-09-02
| | | | So they can be preserved forever!
* Reimplement split scrollingJune McEnroe2020-09-02
|
* Fix inserting blank lines BEFORE the new messageJune McEnroe2020-09-02
|
* Only call windowUpdate when the shown window needs updatingJune McEnroe2020-09-02
|
* Call wclear on resizeJune McEnroe2020-09-02
| | | | | Otherwise artefects can appear when resizing to smaller width with wide characters at the right edge of the window.
* Fix line wrapping in various waysJune McEnroe2020-09-02
| | | | | | Never split a codepoint, don't set wrapping point unless we're not already wrapping, wrap on any unicode whitespace, only clear rest of line if still on the same line...
* Render one main window from buffersJune McEnroe2020-09-02
| | | | | | | | Still missing: split scrolling and preserving a blank on reflow either from resize or ignore toggling. Anecdata: on one of my instances of catgirl, RAM usage of the previous release was ~30M, RAM usage of this commit was ~12M.
* Invert meaning of unreadHard/unreadSoft to match new buffer codeJune McEnroe2020-09-01
| | | | Not sure why I had named them this way. Hard means hard-wrapped.
* Factor buffer out of uiJune McEnroe2020-09-01
| | | | In preparation for doing line wrapping outside of ncurses.
* Move styleParse out of uiJune McEnroe2020-09-01
|