a volume to the audio data. It ramps between a previous and the current volume
if necessary to smooth out the changes. The volume slider functionality is
thereby restored.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26066 a95241bf-73f2-0310-859d-f6bbb57e9c96
can edit the settings file. The default are 10000 lines BTW.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26045 a95241bf-73f2-0310-859d-f6bbb57e9c96
selection which we update whenever the first mouse button is released.
This also enables copy'n'paste between Terminals.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26044 a95241bf-73f2-0310-859d-f6bbb57e9c96
the left/right cursor keys.
* Normalized the Ctrl-<cursor> escape sequences. Makes word navigation
in vim work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26038 a95241bf-73f2-0310-859d-f6bbb57e9c96
wrapped to the next line and a subsequent LF would advance another line.
We behave like xterm now, i.e. visually the cursor stays on the same
line (on the last character), but the next character will be wrapped to
the next line.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26033 a95241bf-73f2-0310-859d-f6bbb57e9c96
buffer). These are the sequences our /etc/termcap uses (local less and
vim use the alternative screen buffer now). The ones already implemented
are used e.g. by the termcap of my Linux installation. A bit weird all
those different termcap files, some even with the same version
number.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26031 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Set TERM to "xterm".
* Removed unnecessary {Begin,End}ViewTransaction() in TermView::Draw().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26022 a95241bf-73f2-0310-859d-f6bbb57e9c96
initialization. This would lead to crashes when resizing.
* Shuffled code in ResizeTo() a bit to make it more robust in case of
error (out of memory).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26004 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented alternate screen buffer support. Not used by any program
yet, since we still use the beterm termcap entry.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26003 a95241bf-73f2-0310-859d-f6bbb57e9c96
and it does fit in the line.
* Removed extraneous whitespace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25994 a95241bf-73f2-0310-859d-f6bbb57e9c96
knob, or actually for some reasons it didn't for me after r25969.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25993 a95241bf-73f2-0310-859d-f6bbb57e9c96
session (tab) has it's own window title. Switching between them changes
the window title, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25987 a95241bf-73f2-0310-859d-f6bbb57e9c96
on the line before the cursor.
* Implemented \ESC[1J (erase screen above.
* Fixed \ESC[2J (erase all). It shall not move the cursor.
* When scrolling only the top part of the screen, we do now also
invalidate the line below the scroll region. Otherwise the view
wouldn't know that they have not been scrolled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25986 a95241bf-73f2-0310-859d-f6bbb57e9c96
lines would be initialized while the right ones might have remained
uninitialized. Could happen only in case that more lines were
scrolled out of the screen than there were in the scroll region.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25985 a95241bf-73f2-0310-859d-f6bbb57e9c96
screen (as vim does for instance). Should fix #2382 and #2386.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25973 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Placement of the time text was broken. With big fonts, the text was way too low. Using text bounding box now, it looks pretty and robust too.
- Fixed the height of the time view to the replicant height. The view has a fixed height now and can never overlap deskbar at the bottom (horizontal deskbar mode) or other replicant
below.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25970 a95241bf-73f2-0310-859d-f6bbb57e9c96
run of a history line would not be initialized correctly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25968 a95241bf-73f2-0310-859d-f6bbb57e9c96
synchronize with the text buffer when being re-attached. Fixes the
problem that after switching to another tab and back ongoing output
wouldn't show anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25965 a95241bf-73f2-0310-859d-f6bbb57e9c96
terminal view that is attached to the window and can receive messages at
all.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25964 a95241bf-73f2-0310-859d-f6bbb57e9c96
nasty things with the tab view.
* The tabs are named "Shell <number>" now, which is somewhat more
useful than all being named "Terminal". This is similar to Konsole and
we should probably also support setting the tab name by the user.
Until Haiku supports persistent sessions, that is not really useful,
though.
* Shift-Left/Right iterates through the tabs, now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25960 a95241bf-73f2-0310-859d-f6bbb57e9c96
* BasicTerminalBuffer::Init() no longer uses _ClearLines() to clear
the screen lines, since that expects the lines to be somewhat valid
at least and also needlessly updates the dirty region.
* _ClearLines() always clears lines, even if they were empty. This way
the "softBreak" flag is cleared too.
* Be a bit more careful when multiplying a potentially negative signed
number by an unsigned one. Shouldn't have caused a problem in this
case, though.
Either of the first three items should fix #2379.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25958 a95241bf-73f2-0310-859d-f6bbb57e9c96
lines * (width + 8) bytes which is only a little more than a sixth of
what it was before. The effect on performance is relatively small. In
my tests I measured about 2% slowdown.
* Fixed artifacts after soft-wrapped lines.
* Re-enabled cursor blinking. I changed it so that the cursor is 1s
shown and 0.5s hidden (instead of 1s each). Tell me what you think.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25957 a95241bf-73f2-0310-859d-f6bbb57e9c96
BasicTerminalBuffer. It synchronizes this buffer with the actual
terminal buffer and uses it for drawing. This does significantly
decrease the time the terminal buffer is locked by the window thread,
and avoids the necessity to do invalidations in Draw() when the
terminal buffer changed in the meantime.
* When the view detects heavy scrolling of the terminal buffer due to
lots of continued output, it throttles redraws to one every 0.1s. The
detection condition might need some fine-tuning -- it's probably a bit
too strict for most situations.
I guess I'm done now with optimizations. After testing on real iron for
the first time, I'm a little impressed. In the "time seq ..." speed
competition Haiku's Terminal easily beats Konsole by 10 to 20% for 80x25
and by factor 3+ for full screen. And if I interpret the results
correctly 90% of the time is actually used by "seq" itself which seems
to be about 5 times slower than under Linux.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25917 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added a ResizeTo() version that allows to set the history capacity at
the same time.
* Added a SynchronizeWith() method that allows synchronizing with (a
part of) another buffer.
* Fixed TODO in _Scroll().
* Improved the dirty region update code in _Scroll(). It would in
certain (not exactly uncommon) situations needlessly invalidate the
whole screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25912 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Introduced a small (64 byte) buffer for the parser thread. Instead of
directly reading single characters out of the reader buffer, we read
a full parser buffer and process the characters from the parser
buffer. Thus _NextParseChar() could be inlined, since it merely
consists of a conditional method call and an access to the parser
buffer, now.
* Improved the locking of the terminal buffer. Instead of unlocking and
relocking after every multi-byte char or escape sequence, we only
unlock while refilling the parser buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25911 a95241bf-73f2-0310-859d-f6bbb57e9c96
(can't tell if it was the same for audio, as mine -hda- is not supported
yet).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25894 a95241bf-73f2-0310-859d-f6bbb57e9c96
pretty much all the meaty code. Left in TerminalBuffer is only stuff
that didn't quite fit, like the encoding and view notifications.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25893 a95241bf-73f2-0310-859d-f6bbb57e9c96
there, but that's the easiest solution for the time being.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25887 a95241bf-73f2-0310-859d-f6bbb57e9c96