Commit graph

15 commits

Author SHA1 Message Date
Brooks Rady
76a5bc8a05
feat(ui): overhauled resize and layout systems
* refactor(panes): move to parametric pane sizes

* Fixed the simpler errors by casting to usize

* The least I can do is pass the formatting check...

* Move to stable toolchain

* Well, it compiles?

* And now it doesn't! ;)

* Baseline functionality with the new Dimension type

* Working POC for percent-based resizing

* REVERT THIS COMMIT – DELETES TESTS

* Perfected the discrete resize algorithm

* Fixed fixed-size panes

* Basic bidirectional resize

* feat(resize): finalised parametric resize algorithm

* Reduce the logging level a bit

* Fixed nested layouts using percents

* Bug squishing for implicit sizing

* Here is a funky (read: rubbish) rounding approach

* And now it's gone again!

* Improve discretisation algorithm to fix rounding errors

* Fix the last layout bug (maybe?)

* Mixed explicit and implied percents work now

* Let's pretend that didn't happen...

* Make things a bit less crashy

* Crash slightly more for now (to find bugs)

* Manaually splitting of panes works now

* Start moving to percent-based resizes

* Everything but fullscreen seems to be working

* Fix compilatation errors

* Culled a massive amount of border code

* Why not pause to please rustfmt?

* Turns out I was still missing a few tests...

* Bringing back even more tests!

* Fix tests and pane boarders

* Fix the resize system without gaps

* Fix content offset

* Fixed a bug with pane closing

* Add a hack to fix setting of the viewport

* Fix toggling between shared borders and frames

* fix(tests): make e2e properly use PaneGeom

* style(fmt): make rustfmt happy

* Revert unintentional rounding of borders

* Purge some old borderless stuff

* Fix busted tab-bar shrinking

* Update E2E tests

* Finish implementing fullscreen!

* Don't crash anymore?

* Fix (almost) all tests

* Fix a lack of tab-stops

* All tests passing

* I really can't be bothered to debug a CI issue

* Tie up loose ends

* Knock out some lingering FIXMEs

* Continue to clean things up

* Change some naming and address FIXMEs

* Cull more code + FIXMEs

* Refactor of the resize system + polish

* Only draw frames when absolutely necessary

* Fix the tab-bar crash

* Fix rendering of boarders on reattach

* Fix resizing at small pane sizes

* Deduplicate code in the layout system

* Update tab-bar WASM

* Fixed the pinching of panes during resize

* Unexpose needlessly public type

* Add back a lost test

* Re-add tab tests and get them to compile

* All tabs need layouts

* Start fixing tests + bug in main

* Stabilize the resize algorithm rounding

* All tests from main are now passing

* Cull more dead code
2021-08-28 17:46:24 +01:00
Brooks J Rady
f2c5ee44f7 Getting back to where we started... (Buggy Resizing) 2021-05-29 23:12:11 +01:00
Brooks J Rady
e163bd56e7 feat(plugin): simple timers implemented via the set_timeout() call 2021-04-27 17:13:25 +01:00
Brooks J Rady
2814c30272 feat(plugin): added the get_plugin_ids() query function 2021-04-27 14:57:54 +01:00
Brooks J Rady
b6f945da35 Wrap up the plugin system refactor, running everything through update() 2021-03-25 17:22:10 +00:00
Brooks J Rady
84a5cf95d1 Converted tab updates to the new generic update() function 2021-03-25 15:51:39 +00:00
Brooks J Rady
0371c111b7 Removed AppState and the unneeded get_help() function 2021-03-25 14:56:59 +00:00
Brooks J Rady
0ea8ce497d Rename Help to ModeInfo 2021-03-25 14:30:31 +00:00
Brooks J Rady
ac55e59047 Initial implementation of the update callback + upstream termion 2021-03-23 19:52:59 +00:00
Brooks J Rady
e9ab81850e Add event subscription tracking 2021-03-09 21:51:17 +00:00
Brooks J Rady
06bce9a1fd Deduplicate the WASM interface structs 2021-03-09 19:39:42 +00:00
Jonah Caplan
44b0246e91
feat(tabs): add ability to set tab name (#212)
* send all tabs in vec

* works but no input filtering

* add event types

* add event handler for tab events

* fmt fixups

* update tab name in place, and escape rename works

* rename handle_tab_event handle_tab_rename_keypress

* handle empty new_name when renaming

* fix(tabs): pad active tab name too

* fix(tabs): report proper length

* fix(tabs): always render active tab

* style(fmt): rustfmt

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2021-03-08 10:06:23 +01:00
categorille
c74e2ef273
feat(input): new keybindings and persistent mode as default (#181)
* added some comments in the input module

* InputHandler now has InputState instead of separate InputMode and permanent bool

* keybinds are now associated with a Vec<Action> instead of a single Action

* removing "persistent" modes alltogether to reimplement the feature, help bar broken

* locked command mode by default, fixes #161, help bar still broken

* status bar fixed, still a few improvements/bugs to go

* better shortcut help bar contents

* fixed last bits and i think we are good

* modified tests according to new controls, not working

* Revert "modified tests according to new controls, not working"

This reverts commit f2d9421ff0169feb83dbd9b246e59b9244cafc16.

* basic.rs tests now pass, not the rest

* close_pane.rs tests pass, but very slowly?

* compatibility.rs tests pass, very slowly as well

* {layout, {move_focus_*}}.rs all working mildly slowly

* {resize_*}.rs should all work but very slowly and funky, see PR comments

* {tabs,toggle_fullscreen}.rs pass. Test performance issue yet to be fixed

* tests now work, with a hack :| ready for merge

* rustfmt + deleted references to InputState and mode persistency
2021-02-12 14:55:22 +01:00
Brooks J Rady
678a6f877c Work towards a functional build 2021-02-09 19:06:47 +00:00
Brooks J Rady
7bab33e5d2 Merged in mosaic-tile and started renaming to zellij 2021-02-09 17:38:02 +00:00