- 15 Jun, 2021 11 commits
-
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
This will make it possible to snap the splitters when you resize (to be configurable)
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
Tomaz Canabrava authored
-
- 07 Jun, 2021 14 commits
-
-
AutoScrollHandler generates synthetic mouse moves to allow extending the selection by dragging the mouse ouside the display area. The synthetic events it generates didn't carry any modifiers, so they were not properly working when an application had requested mouse tracking reports. In that case, generate the events with ShiftModifier, so they work properly.
-
As gumix explains in the bug below, "Konsole keeps sending mouse-drag reports in ESC[?1003h mode after releasing button outside window [...] The only way to stop it is to get mouse back over Konsole window." These mouse-drag reports are actually generated by AutoScrollHandler, to support the use case of extending the selection by dragging the mouse outside the display area. So, only generate those reports while selecting. Can be tested by playing around in vttest: - 11. Test non-VT100 (e.g., VT220, XTERM) terminals - 8. Test XTERM special features - 5. Mouse features - 7. Mouse Button-Event Tracking (XFree86 xterm) BUG: 391975
-
AutoScrollHandler allows to extend the selection by dragging the mouse outside the display. It does this by generating synthetic mouse move events when the left mouse button is held down and the mouse is moved outside of the display area. This improves the user experience of extending the selection to cover text that is scrolled outside the display area. Unfortunately, this was broken by commit 6667d96e, which filters out mouse move events if they don't change the character cell position. So, modify the filtering a bit, allowing mouse movements outside the display area to pass through.
-
Something was swallowing mouse moves on the top left 100x30 pixels of TerminalDisplay. As it turns out, it was the widgets for TerminalFonts and TerminalColor. Neither of them really needs to be a QWidget. TerminalColor emits the onPalette(const QPalette &) signal, has slots, and overrides event(QEvent &), so turn it into a QObject. TerminalFonts doesn't do any of the above, turn it into a plain C++ object. Now that TerminalFonts is no longer a QObject, manage it with a std::unique_ptr. TerminalFonts::fontChange(const QFont &) was calling update(), which was probably a leftover from when it was split from TerminalDisplay. Get rid of it. Trivial testing using keyboard shortcuts to change font size (Ctrl++, Ctrl+-, Alt+Ctrl+0), and previewing font changes on "Edit Current Profile..." seem to indicate that it isn't needed.
-
Mode 1003 reports all mouse movement. Support it in Konsole. BUG: 391967 BUG: 416530 BUG: 423333
-
xterm's DECSET 1000 requests justs press and release notifications, so do not send move events on this mode. BUG: 302731
-
On xterm, modes 9 (X10 legacy, button press), 1000 (button press and release), 1001 (mouse highlight tracking), 1002 (mouse drag) 1003 (mouse move) and DECELR (DEC Locator) are mutually exclusive. So are 1005 (extended coordinates mode), 1006 (SGR extended coordinates), 1015 (urxvt extended coordinates) and 1016 (use pixel coordinates). On xterm, disabling any of the 9, 1000, 1001, 1002, 1003, DECELR modes disables mouse tracking. To disable the extended coordinate modes (1005, 1006, 1015, 1016), the current mode should be disabled. So, do the same for the modes Konsole supports.
-
The read-only property wasn't being respected for mouse move and mouse release events.
-
As explained by magiblot at the bug below, "When double clicking with the right button, the sequences sent to the application in the terminal are DOWN-UP-UP instead of DOWN-UP-DOWN-UP." BUG: 425926
-
Martin Tobias Holmedahl Sandsmark authored
CCBUG: 432376 CCMAIL: cbc.alves@gmail.com
-
Martin Tobias Holmedahl Sandsmark authored
-
-
-
When a Splitter has only one child, it can be removed, and the child can be united with the widget above, unless it's the only splitter - as that holds the main widget.
-
- 05 Jun, 2021 1 commit
-
-
Heiko Becker authored
(cherry picked from commit 1a62df92)
-
- 01 Jun, 2021 1 commit
-
-
Adriaan de Groot authored
The existing code scans through `programs` to find an acceptable shell to start; `_program` is the shell that is configured for the session (line 456). The first shell to be found from that list, is assigned to `exec` and we'll run that shell. If the shell found wasn't the one configured (e.g. one of the other ones from the list) then a warning is printed, but we carry on. **However**, if the shell found is the **last** one in the list (i.e. `/bin/sh`) then a warning is printed and the shell does not start. If the configured shell is `/bin/sh` this obviously breaks down: it is found (as the first one in the list!) but still equals the last one; the warning is printed and nothing runs. It is unclear **why** `/bin/sh` is not allowed as a shell: it exists, it's an executable, and it's an interactive shell. Curiously, configuring the shell as `sh` for the session runs `/bin/sh` in the end, but just tricks the logic here: - `checkProgram("sh")` returns `sh` as string, - so the comparison against `/bin/sh` fails, - and we can run `sh` .. which is `/bin/sh`. There's no good reason to forbid `/bin/sh`, so change the check to **only** fail if no shell was found at all (`exec` stayed empty) or if the found shell behaves weirdly (is not equal to itself).
-
- 25 May, 2021 1 commit
-
-
Luis Javier Merino authored
Commit 72d604c6 refactored some code from TerminalDisplay into a new TerminalColor class, and in the process lost an F on setAlphaF(). BUG: 437223
-
- 24 May, 2021 2 commits
-
-
A new assert in GCC 11.1.0 std::piecewise_linear_distribution fails in the case that the lower and upper boundaries are equal. So, make sure to not construct a std::piecewise_linear_distribution when minSaturation equals maxSaturation and when minLightness equals maxLightness. BUG: 434892
-
Ahmad Samir authored
It should be uint. I am not sure this fixes the mentioned bug, but it's correct anyway, std::mt19937 and co. unsigned types; and we shouldn't mix signed with unsigned. CCBUG: 434892
-
- 23 May, 2021 1 commit
-
-
Carlos Alves authored
Was missing the startColumn factor in the startCopy position. BUG: 436845
-
- 16 May, 2021 1 commit
-
-
Ahmad Samir authored
We only need to set the favourite emblem for the default profile icon, for other profiles, the profile icon is already set on the menu action. Rename a lambda to a more meaningful name. BUG: 437200 FIXED-IN: 21.08
-
- 07 May, 2021 1 commit
-
-
Heiko Becker authored
(cherry picked from commit 2680966a)
-
- 06 May, 2021 1 commit
-
-
Alexander Lohnau authored
-
- 05 May, 2021 3 commits
-
-
Keep _cuY position inside max screen lines in AppScreen mode.
-
Commits 9ffe33a2 and 4352df00 introduce and use a getScreenLineColumns(line) method to provide support for DECDWL (Double-Width) lines. It turns out that under some conditions on resize Screen::_cuY (the current cursor Y position) and ScreenWindow::endWindowLine() can have different ideas of how many lines the terminal has. A test that asserts: - while [ true ]; do echo -e "\e[?1047h"; done - Resize the window, making it smaller BUG: 436327
-
Restore Y coordinate before X coordinate, so we make sure Y is in bounds before trying to access _lineProperties depending on Y. To test: - Go to the last line - tput sc - Shrink the terminal - tput rc
-
- 03 May, 2021 3 commits
-
-
* Using internal erase function instead of While loop. * Just clear if there is only one line.
-
Declaring it where there is no change in content and enable compiler to perform better optimizations.
-
It is removing the vector of lines storage. Now it is using a similar idea used in history file. All chars are stored in a linear way, only the line indexes are changed when reflowing. No speed problem found when removing lines.
-