We want to be able to build without X11 support even if some of the used
libraries may not work w/o X11 themselves yet or need to be built with
X11 support for other reverse dependencies.
HAVE_X11 already exists and is set automagically so far, but using
-DCMAKE_DISABLE_FIND_PACKAGE_X11 will break if any dependencies list X11
as required in their cmake config.
Introducing this option means there is no behavior change by default,
cmake will just skip finding X11 or adding unwanted features if the
option is enabled.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
For clarity, the VT state machine has some comments where it differs
from the diagram from vt100.net. Add comments for some transitions on
String Terminator (ST / 0x9C) which appear on the diagram, but which
were already handled in the "anywhere" state.
Reported here:
https://mail.kde.org/pipermail/konsole-devel/2022-July/041429.html
- Use delete[] to free array allocated with new.
- Don't separate two cases which are handled identically.
- In vt100 parsing state machine no need to handle in specific states
characters which are handles identically in all states.
- The line separating commands may appear never, always, or when showing
URL hints.
- Up/Down arrows may be translated to a number of Left/Right arrows.
A UI for those options was also added.
"Delete" instead of "Remove" makes it more obvious the data is gone
afterwards, not just removed from a list.
Also use KMessageBox::warningYesNo instead of the helper method
KMessageBox::messageBox.
And fix missing i18n markup of menu entry.
Yes/No buttons in dialogs are discouraged (not only) by KDE HIG in favour
of actions terms.
Also use KMessageBox::warningYesNo instead of the helper method
KMessageBox::messageBox.
Yes/No buttons in dialogs are discouraged (not only) by KDE HIG in favour
of actions terms.
Commit 60b0c9d breaks bidi rendering, essentialy making all spaces
hard L2R characters, instead of neutral.
The deleted mostly does not do anything - it groups a
sequence of space which would be grouped anyway.
The problem is the break at the end, which exits the outer loop so
stops grouping after any sequence of space.
It "works" by having more groups, thus the rendering is closer to
rendering each character in its place, mitigating somewhat the issue
caused by non-fixed fonts (fallback to a font with different width).
To support focusing a session from a notification in Wayland, we need to
use the XdgActivation protocol. This is done by passing to
KWindowSystem an XDG activation token that we get from the notification.
Adds a "Show session" button to notifications, which, when clicked, will
focus the originating session.
Original patch by Kasper Laudrup at bug 305162, then updated by Martin
T. H. Sandsmark.
Now updated and extended to silence/activity/process termination
notifications, adding support for focusing a TerminalDisplay inside a
hierarchy of ViewSplitters inside a TabbedViewContainer, and using
KWindowSystem::forceActiveWindow() instead of ::activateWindow().
BUG: 305162
BUG: 344208
Before 3d6c839b, sessions were snapshotted every 2 seconds, and also
half a second after the associated view received focus or a key press.
This second timer could theoretically be postponed indefinitely.
Commit 3d6c839b tries to save energy by not taking a snapshot every 2
seconds, and instead has a timer that fires half a second after any
event received by the application.
This commit goes back to the old behavior, but still without the 2
second timer, and also sets the half second timer after receiving the
Emulation::outputChanged signal, which is sent at a maximum 40ms after
the emulation receives data. It also copies the idea from commit
3d6c839b of not restarting the timer if it's already started, since
otherwise, continuous output could postpone the timer indefinitely.
- Selecting Copy (or pressing ctrl-shift-c) when there is no selection
selects current output if current mode is output, current input if
current mode is input and input is non-empty, and last output if current
input is empty.
- Ctrl + mouse triple click selects the pointed input/output/prompt.
- There is also a fix that was missed in previous patch for keeping
track of current semantic mode through scrolls.
Bugs reported here:
https://invent.kde.org/utilities/konsole/-/merge_requests/691#note_480025
- Properly ignore OSC parameters for now. (later we'll support some).
- Handle Input end for when command gets shorter.
- Always draw separating line in foreground color
- Don't group characters of different REPL type.
- Don't reset double width/height attributes of erased lines.
When showing URL hints, show also visual hints for semantic shell:
- A thin line above every line where a prompt starts.
- Prompts become less intense.
- User input becomes more intense.
- Add `OSC 133 ; *` escape sequences (where * stands for one of
A,B,C,D,L,P. For the shell to report text mode
(one of prompt/input/output).
- Store the mode of each character written to the screen.
- Replace isRealCharacter field in Character with flags.
- Store line length in _lineProperties array.
Walk over LocalTabTitle just once looking for percent signs, and doing
the appropriate substitution based on the next character.
This not only is slightly more performant, but also avoids trouble if
one of the substitutions happens to contain a percent sign.
Mostly fallout from not paying attention to it when resolving the
conflict with 5888a377.
Reporting parse errors (and many other things) can be enabled with:
QT_LOGGING_RULES="org.kde.konsole.debug=true"