1. 07 Jun, 2021 12 commits
    • Luis Javier Merino's avatar
      Restore AutoScrollHandler behavior · c9f77e52
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      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.
      c9f77e52
    • Luis Javier Merino's avatar
      De-qwidget-ize TerminalColor and TerminalFonts · 66e19aaf
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      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.
      66e19aaf
    • Luis Javier Merino's avatar
      Support DECSET 1003 mouse move tracking · b5d17438
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      Mode 1003 reports all mouse movement.  Support it in Konsole.
      
      BUG: 391967
      BUG: 416530
      BUG: 423333
      b5d17438
    • Luis Javier Merino's avatar
      Don't send move events for normal mouse tracking · 027e8c15
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      xterm's DECSET 1000 requests justs press and release notifications, so
      do not send move events on this mode.
      
      BUG: 302731
      027e8c15
    • Luis Javier Merino's avatar
      Make mouse tracking modes mutually exclusive · d70fc5ee
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      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.
      d70fc5ee
    • Luis Javier Merino's avatar
      Respect read-only for all mouse tracking events · 1a63b91d
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      The read-only property wasn't being respected for mouse move and mouse
      release events.
      1a63b91d
    • Luis Javier Merino's avatar
      Do not swallow right button presses on double-click · 7cbbb07f
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      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
      7cbbb07f
    • Martin Tobias Holmedahl Sandsmark's avatar
      add test to expose memory corruption · 16d0df1f
      Martin Tobias Holmedahl Sandsmark authored
      CCBUG: 432376
      CCMAIL: cbc.alves@gmail.com
      16d0df1f
    • Martin Tobias Holmedahl Sandsmark's avatar
      enable ECM cmake stuff · d853baaf
      Martin Tobias Holmedahl Sandsmark authored
      d853baaf
    • Tomaz  Canabrava's avatar
      Simplify Algorithm · 6723627d
      Tomaz Canabrava authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      6723627d
    • Tomaz  Canabrava's avatar
      Restore the sizes so the splits don't resize after rearrange · 52e08628
      Tomaz Canabrava authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      52e08628
    • Tomaz  Canabrava's avatar
      Remove uneeded spliters from the widget tree · 208181d4
      Tomaz Canabrava authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      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.
      208181d4
  2. 05 Jun, 2021 1 commit
  3. 01 Jun, 2021 1 commit
    • Adriaan de Groot's avatar
      Allow sessions with /bin/sh · 5871a53c
      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).
      5871a53c
  4. 25 May, 2021 1 commit
  5. 24 May, 2021 2 commits
    • Luis Javier Merino's avatar
      Fix crash when using a color scheme with random colors · 8c24953b
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      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
      8c24953b
    • Ahmad Samir's avatar
      Fix type of randomSeed parameter · b7f6849d
      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
      b7f6849d
  6. 23 May, 2021 1 commit
  7. 16 May, 2021 1 commit
    • Ahmad Samir's avatar
      Don't override profile icon in "New Tab" menu · e03a4680
      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
      e03a4680
  8. 07 May, 2021 1 commit
  9. 06 May, 2021 1 commit
  10. 05 May, 2021 3 commits
  11. 03 May, 2021 4 commits
  12. 01 May, 2021 1 commit
    • Carlos Alves's avatar
      Fix crash showing Settings Dialog · 49692c0f
      Carlos Alves authored
      When you open settings and close it, than open a new window, than
      close the old window, the MainWindow with the settings will
      delete the configDialog. If you try to open settings againg it crashes.
      
      Fix is each MainWindow now has its own configDialog.
      
      BUG: 436366
      49692c0f
  13. 30 Apr, 2021 1 commit
  14. 29 Apr, 2021 1 commit
  15. 28 Apr, 2021 1 commit
  16. 26 Apr, 2021 2 commits
  17. 25 Apr, 2021 1 commit
  18. 24 Apr, 2021 1 commit
  19. 21 Apr, 2021 1 commit
  20. 17 Apr, 2021 3 commits