1. 01 Jun, 2022 1 commit
    • Luis Javier Merino's avatar
      Fix scroll position jumps regression · a6fce70f
      Luis Javier Merino authored
      Commit d37d3ac1 "CompactHistoryScroll: Remove _maxLineCount + 5 lines at
      a time" caused a regression: addHistLine queried the number of lines in
      history before and after adding a line, and if it had not incremented it
      assumed one line entered history and another was dropped at the other
      end.  Now, lines are dropped from history in batches, so take care of
      that.
      
      Very similar to the regression fixed at 7a1e4768, only this one is about
      keeping the scroll position on the presence of scroll, and that other
      one is about keeping the selection.
      
      Thanks to the bug reporters Michael and Luke-Jr for the heads-up.
      
      BUG: 452955
      BUG: 453112
      (cherry picked from commit d2ca202a)
      a6fce70f
  2. 19 Apr, 2022 1 commit
  3. 18 Mar, 2022 1 commit
  4. 04 Mar, 2022 1 commit
  5. 03 Mar, 2022 6 commits
    • Luis Javier Merino's avatar
      Add support for DECSTR (Soft Terminal Reset) · 62f956b7
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      DECSTR is a level 2 control (VT2xx and up), and is to be used instead of
      RIS (Reset to Initial State), which can initiate a self-test and drop
      the connection on some hardware terminals.
      
      BUG: 134892
      62f956b7
    • Luis Javier Merino's avatar
      Improve support for isolated Hangul Jamo · 346e50ca
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      Korean Hangul can be represented in Unicode either as precomposed Hangul
      syllables, or as sequences of alphabetic components called Jamo.
      
      Jamo at U+1100..U+11FF, U+A960..U+A97F, U+D7B0..U+D7FF have conjoining
      behavior, a sequence of Jamo for Leading Consonants, Vowels, and
      (optionally) Trailing Consonants, in that order, conjoins into a
      syllable block, (i.e. a sequence L+V+T*, where + and * have their
      typical regex meaning).
      
      To represent a Jamo in isolation, there are several options:
      
       - Use non-conjoining Jamo from U+3130..U+318F (or the halfwidth forms
         at U+FFA0..U+FFDF.  These blocks covers all Jamo used in modern
         Korean, but not all Jamo used in Old Korean.
       - Use the fillers at U+115F and U+1160 to substitute for non-existing
         Leading Consonants, and Vowels.  Fonts may stretch Jamo into a
         corner.
       - Use Jamo from U+1100..U+11FF, U+A960..U+A97F, U+D7B0..U+D7FF, and
         separate them with non-Korean characters.  Unicode recommends U+200B
         ZERO WIDTH SPACE and U+2060 WORD JOINER for this purpose.
      
      Previously, Konsole treated conjoining Jamo as combining marks which
      could apply to any previous character.  This commit makes conjoining
      Jamo only join when previous Jamo when they form (the beginning) of a
      proper L+V+T* syllable.  It also fixes the width reported when they
      cannot join previous characters, which should now be 2, instead of 0.
      346e50ca
    • Luis Javier Merino's avatar
      Don't strip 0-width Other_Format characters · c26693af
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      These include ZWJ (Zero Width Joiner), ZWNJ (Zero Width Non-Joiner) and
      Zero Width Space, which can be used to change the rendering of text,
      e.g. forcing or preventing the formation of conjunct forms in Indic
      scripts.
      
      Treat them as combining characters, so they end up in an extended
      character in the previous character cell.
      
      To test, the output of:
      
      printf "[\u915\u94d\u927]  "[\u915\u94d\u200c\u937]  [\u915\u94d\u200d\u937]\n"
      
      can be compared against the examples in Figures 12.4 and 12.5 of the
      Unicode standard, from the "Explicit Virama (Halant)" and "Explicit
      Half-Consonants" sub-sections of the Devanagari section on "South and
      Central Asia I" chapter (page 465 in Unicode 14).
      ~
      c26693af
    • Luis Javier Merino's avatar
      Don't cross hard newlines looking for a base char · e7e90100
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      Combining characters could end up combining with an unrelated character
      from the previous line.  Now they just disappear, without messing with
      the display of unrelated characters.
      e7e90100
    • Luis Javier Merino's avatar
      Use a more explicit condition when combining chars · cb1e04a0
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      The logic for looking for a base character is meant to skip the right
      part of double-wide characters.  Be explicit about it.
      cb1e04a0
    • Luis Javier Merino's avatar
      d6cc3d4d
  6. 24 Feb, 2022 5 commits
  7. 23 Feb, 2022 1 commit
    • Matan Ziv-Av's avatar
      Improve memory handling · 78971aa5
      Matan Ziv-Av authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      - Remove placements when they scroll out of the scroll buffer
      - Delete removed placements.
      - Free QImage memory when image is deleted.
      78971aa5
  8. 07 Feb, 2022 4 commits
  9. 05 Feb, 2022 1 commit
  10. 11 Jan, 2022 1 commit
  11. 06 Jan, 2022 1 commit
    • Luis Javier Merino's avatar
      Fix remembering selection in scrollback buffer · 7a1e4768
      Luis Javier Merino authored and Kurt Hindenburg's avatar Kurt Hindenburg committed
      Commit d37d3ac1 "CompactHistoryScroll: Remove _maxLineCount + 5 lines at
      a time" caused a regression: addHistLine queried the number of lines in
      history before and after adding a line, and if it had not incremented it
      assumed one line entered history and another was dropped at the other
      end.  Now, lines are dropped from history in batches, so take care of
      that.
      7a1e4768
  12. 28 Dec, 2021 5 commits
    • Luis Javier Merino's avatar
      Move inverted selection to TerminalPainter · d787ac75
      Luis Javier Merino authored
      TerminalPainter already takes care of calculating blended colors when
      "Always invert the colors of selected text" is off.  Move there also the
      swapping of fg/bg colors for the inverted colors kind of selections.
      
      This removes one reference to TerminalDisplay from Screen.  There is
      still another one to support reflow for some zsh configurations.
      d787ac75
    • Luis Javier Merino's avatar
      Don't get the selection to check if it is empty · 5919c1fd
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      Every time the selection is changed, the selection text is retrieved to
      check whether to enable or disable the copy actions. Besides that, the
      selection text is also used for the web search context menu entries.
      
      Better just check if the selection is empty and make a note that the
      selection changed, so the next time the context menu is invoked it can
      retrieve the current selection text, which should happen much less often
      than selection changes.
      5919c1fd
    • Luis Javier Merino's avatar
      Avoid moving memory around in copyLineToStream · 5df601d9
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      If the "Trim leading spaces" option is set, we can pass a pointer to the
      first non-space character to decodeLine(), no need to first move memory
      around.
      5df601d9
    • Luis Javier Merino's avatar
      copyFromScreen/copyFromHistory improvements · 5067aeca
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      - Hoist _columns access out of loop.
      - Make copyFromScreen more similar to copyFromHistory.
      - Use std::copy and std::fill instead of explicit loops.
      
      Prompted by suggestions by Waqar Ahmed.
      5067aeca
    • Luis Javier Merino's avatar
      Don't check profile for every selected character · 0d65b7f0
      Luis Javier Merino authored and Tomaz  Canabrava's avatar Tomaz Canabrava committed
      The profile was checked for every selected character to learn whether it
      should be rendered with inverted foreground and background colors, or
      with blended colors.
      0d65b7f0
  13. 14 Dec, 2021 1 commit
  14. 26 Nov, 2021 1 commit
  15. 22 Nov, 2021 8 commits
  16. 21 Nov, 2021 2 commits