This commit ensures both the underline and the overline are
both drawn inside the row. Each row keeps the same height as
the font.
If possible, the position of the underline and of the overline
are those provided by Qt. If the position is outside of the row,
then the nearest position is chosen.
When resizing, the selection cursor can easily end up being out of
bounds, potentially causing a crash if trying to extend the selection
later. Since resizing already clears the normal mouse selection on
konsole, it makes sense to also disable keyboard selection mode to avoid
trouble.
BUG: 467872
In highdpi with fractional scaling factor some lines appear in the
terminal area. This may be the result of areas that should be
refreshed with new content that are not included in the invalidated
area. This commit increases the invalidated area a bit to ensure
the missing area is included.
CCBUG: 373232
The code is supposed to skip them, but Character::stringWidth() does not
always return the correct result, so make sure they are not decoded into
text (as NUL characters).
VS16 (emoji presentation variation) may change the width of some
emoji characters from 1 to 2. With this commit, konsole changes the
character width in those cases.
These are used when extending a (possibly empty) selection via
shift+LMB. When resizing, a point of reference may easily be out of
bounds if it was beyond the last line written.
BUG: 464040
When rendering underlined text in hidpi, the result may be wrong: position
of the underline may be wrong, invisible or with incorrect size.
The patch draws the line using floating point precision and changes the y coord
of the line to respect the Qt coordinate system specs.
CCBUG: 373232
The computation of overline and underlines is missing the line spacing. The result
is a completely wrong position for the underlines and the overlines when line
spacing is > 0.
When the konsole profile is set to use translucency and the konole part
is used in an app that doesn't support it, like konsole or dolphin, on X11
the translucency has no effect and the konsole part is opaque.
On wayland this doesn't happen and it tries to make that area of the app
translucent, but then the damage information is not correctly set and
there are drawing glitches in the transparent area.
This just disables transparency when the toplevel window doesn't have
the WA_TranslucentBackground attribute set.
This allows to use ssh plugin in Windows by skipping the check
if the running process is shell or not. If the running process
is not a known shell, creating any new ssh connection will fail
without any error message. It is possible to run different shell
under cmd.exe or powershell.exe. So, it is not enough to check
only the child process of conpty's conhost.exe.
This helps to run a command with arguments in conpty in Windows.
For example, "C:\\Windows\\System32\\cmd.exe /c ping -t 127.0.0.1"
command can now run with the arguments. Otherwise, only cmd.exe
is executed without the arguments.
Fixes the following crash
- Open Settings -> Manage Profiles...
- Click on a non default profile and edit it
- In "Edit Profile Dialog", check "Default" to make this profile default
- Click Ok, Now we are back in "Manage Profiles" dialog.
- See that "Set as Default" is still clickable, clicking it crashes konsole
BUG: 423136
BUG: 445173
BUG: 454986
Every now and then the PtyTest fails. A rerun typically fixes it.
Add errno output on tcgetpgrp failure. Close pty after test.
FAIL! : Konsole::PtyTest::testRunProgram() Compared values are not the same
Actual (pty.foregroundProcessGroup()): 0
Expected (pty.processId()) : 3239
This commit 97feb543 broke support for changing cursor color
by escape sequence if value starts with `CursorShape=`.
printf '\e]50;CursorShape=0;CustomCursorColor=#ff5f00\a'
This also implements support for setting cursor color and also for cursor
blinking without changing the current profile what is purpose of the
97feb543 change.
Fixes
- "warning C4804: '-': unsafe use of type 'bool' in operation"
- warning C4477: 'fprintf' : format string '%i' requires an argument of
type 'int', but variadic argument 1 has type 'qsizetype'