Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split every tab in two panes #206

Draft
wants to merge 20 commits into
base: master
Choose a base branch
from

Commits on Oct 14, 2021

  1. use Ctrl + keypad plus/minus to control font size

    on my keyboard, those are much more convenient to press than the regular
    plus and minus keys. the regular plus key is shift+equals, so increasing
    the font size requires a ctrl+shift combination while decreasing it only
    requires ctrl, which is awkward.
    gelisam committed Oct 14, 2021
    Configuration menu
    Copy the full SHA
    180472a View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2021

  1. typo

    gelisam committed Oct 22, 2021
    Configuration menu
    Copy the full SHA
    7080542 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2021

  1. Configuration menu
    Copy the full SHA
    51816b8 View commit details
    Browse the repository at this point in the history
  2. prototype: put terminals inside a Paned

    I eventually want to split terminals by replacing one terminal by two
    terminals inside a Paned. As a first step towards that, can I put every
    terminal inside a Paned (with a dummy button on the other side of the
    pane) without breaking the rest of the code?
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    e03bda2 View commit details
    Browse the repository at this point in the history
  3. rename TabTermContainer to TabScrolledWindow

    I want to add a TabPaned, and it seems weird for the ScrolledWindow to
    be identified more vaguely than the other widgets surrounding the
    terminal.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    240f1d8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e5226ed View commit details
    Browse the repository at this point in the history
  5. look for the Paned, not the ScrolledWindow

    compareScrolledWinAndTab was used to find the FLTab entry corresponding
    to a given Widget in a Notebook. Now that Notebook entries are Paned
    widgets containing a ScrolledWindow containing a terminal, and not
    simply a ScrolledWindow containing a terminal, we need to search for the
    Paned, not for the ScrolledWindow.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    43d04e7 View commit details
    Browse the repository at this point in the history
  6. include Paned field in Show instance

    We can't show a Paned any more that we can show a ScrolledWindow, but at
    least we can include a dummy entry for it in the Show instance, to match
    the record's real shape.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    e582ec2 View commit details
    Browse the repository at this point in the history
  7. detach the Paned on terminal exit

    We were previously trying to detach the ScrolledWindow, but since the
    Notebook now contains Paned widgets, it was not found and the tab was
    not detached.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    5a6afe6 View commit details
    Browse the repository at this point in the history
  8. correct TMNotebookTab's comment

    so that it also describes the new Paned field.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    b8aa4b0 View commit details
    Browse the repository at this point in the history
  9. relabel based on the Paned

    Like the last few commits, the relabelling code was looking for a
    ScrolledWindow but should now be looking for a Paned.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    484ed1d View commit details
    Browse the repository at this point in the history
  10. more straightforward invariant checks

    I previously edited the invariant checks so they would drill down the
    Paned in order to find the ScrolledWindow and compare it with the
    TMNotebookTab's ScrolledWindow. But directly comparing the Paned with
    the TMNotebookTab's Paned is much simpler.
    gelisam committed Oct 24, 2021
    Configuration menu
    Copy the full SHA
    1cb1bc9 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2021

  1. two terminals per tab

    gelisam committed Oct 25, 2021
    Configuration menu
    Copy the full SHA
    c1d0834 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4088f70 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2021

  1. track both terminals in the TMNotebookTab

    Since each of the two terminals have a ScrolledWindow associated with
    them, this required moving the ScrolledWindow field from the
    TMNotebookTab to the TMTerm.
    
    More importantly, this refactoring revealed many places where the two
    terminals were treated differently, and that code was changed to treat
    both terminals the same. This was made easier by the addition of a lens
    pointing to the focused terminal (which is currently always the left
    terminal), and a traversal pointing at both terminals.
    gelisam committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    a0618c0 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2021

  1. hotkeys to navigate between panes

    Also, update the tmNotebookTabFocusIsOnLeft field to reflect the
    currently-focused pane.
    
    The (followUp <- do ...) pattern is needed in order to avoid a deadlock
    when the onWidgetFocusInEvent callback tries to grab the MVar which is
    already locked.
    gelisam committed Oct 28, 2021
    Configuration menu
    Copy the full SHA
    9c06b97 View commit details
    Browse the repository at this point in the history

Commits on Jan 4, 2022

  1. Configuration menu
    Copy the full SHA
    bbcd3fa View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2022

  1. Configuration menu
    Copy the full SHA
    6dd0c15 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9568b68 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2022

  1. Configuration menu
    Copy the full SHA
    8913213 View commit details
    Browse the repository at this point in the history