Skip to content

Commit 62e31ef

Browse files
authored
Saner view geometry (#4085)
2 parents 579053d + f6f2a52 commit 62e31ef

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1285
-186
lines changed

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/integrii/flaggy v1.4.0
1717
github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68
1818
github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d
19-
github.com/jesseduffield/gocui v0.3.1-0.20240928100326-393cf89a5d3f
19+
github.com/jesseduffield/gocui v0.3.1-0.20241201093724-68c437bbd543
2020
github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10
2121
github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5
2222
github.com/jesseduffield/minimal/gitignore v0.3.3-0.20211018110810-9cde264e6b1e
@@ -38,7 +38,7 @@ require (
3838
github.com/stretchr/testify v1.8.1
3939
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778
4040
golang.org/x/exp v0.0.0-20220318154914-8dddf5d87bd8
41-
golang.org/x/sync v0.8.0
41+
golang.org/x/sync v0.9.0
4242
gopkg.in/ozeidan/fuzzy-patricia.v3 v3.0.0
4343
gopkg.in/yaml.v3 v3.0.1
4444
)
@@ -75,8 +75,8 @@ require (
7575
github.com/xanzy/ssh-agent v0.2.1 // indirect
7676
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
7777
golang.org/x/net v0.7.0 // indirect
78-
golang.org/x/sys v0.25.0 // indirect
79-
golang.org/x/term v0.24.0 // indirect
80-
golang.org/x/text v0.18.0 // indirect
78+
golang.org/x/sys v0.27.0 // indirect
79+
golang.org/x/term v0.26.0 // indirect
80+
golang.org/x/text v0.20.0 // indirect
8181
gopkg.in/warnings.v0 v0.1.2 // indirect
8282
)

go.sum

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68 h1:EQP2Tv8T
188188
github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68/go.mod h1:+LLj9/WUPAP8LqCchs7P+7X0R98HiFujVFANdNaxhGk=
189189
github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d h1:bO+OmbreIv91rCe8NmscRwhFSqkDJtzWCPV4Y+SQuXE=
190190
github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d/go.mod h1:nGNEErzf+NRznT+N2SWqmHnDnF9aLgANB1CUNEan09o=
191-
github.com/jesseduffield/gocui v0.3.1-0.20240928100326-393cf89a5d3f h1:ZzsAUDwPFLPITKLcJpMSqt/3rERdI8YRZKr2l0plrls=
192-
github.com/jesseduffield/gocui v0.3.1-0.20240928100326-393cf89a5d3f/go.mod h1:XtEbqCbn45keRXEu+OMZkjN5gw6AEob59afsgHjokZ8=
191+
github.com/jesseduffield/gocui v0.3.1-0.20241201093724-68c437bbd543 h1:mizrpmhRsYX6G7pqaLH+Rg9zdQ05S7xYVHTvSuBSX70=
192+
github.com/jesseduffield/gocui v0.3.1-0.20241201093724-68c437bbd543/go.mod h1:XtEbqCbn45keRXEu+OMZkjN5gw6AEob59afsgHjokZ8=
193193
github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10 h1:jmpr7KpX2+2GRiE91zTgfq49QvgiqB0nbmlwZ8UnOx0=
194194
github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10/go.mod h1:aA97kHeNA+sj2Hbki0pvLslmE4CbDyhBeSSTUUnOuVo=
195195
github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5 h1:CDuQmfOjAtb1Gms6a1p5L2P8RhbLUq5t8aL7PiQd2uY=
@@ -424,8 +424,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
424424
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
425425
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
426426
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
427-
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
428-
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
427+
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
428+
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
429429
golang.org/x/sys v0.0.0-20170407050850-f3918c30c5c2/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
430430
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
431431
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -475,14 +475,14 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
475475
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
476476
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
477477
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
478-
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
479-
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
478+
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
479+
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
480480
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
481481
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
482482
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
483483
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
484-
golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
485-
golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
484+
golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU=
485+
golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E=
486486
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
487487
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
488488
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -493,8 +493,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
493493
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
494494
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
495495
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
496-
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
497-
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
496+
golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug=
497+
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
498498
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
499499
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
500500
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=

pkg/gui/context/branches_context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func NewBranchesContext(c *ContextCommon) *BranchesContext {
3030
c.State().GetItemOperation,
3131
c.State().GetRepoState().GetScreenMode() != types.SCREEN_NORMAL,
3232
c.Modes().Diffing.Ref,
33-
c.Views().Branches.Width(),
33+
c.Views().Branches.InnerWidth(),
3434
c.Tr,
3535
c.UserConfig(),
3636
c.Model().Worktrees,

pkg/gui/context/merge_conflicts_context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,5 +115,5 @@ func (self *MergeConflictsContext) SetSelectedLineRange() {
115115
func (self *MergeConflictsContext) GetOriginY() int {
116116
view := self.GetView()
117117
conflictMiddle := self.GetState().GetConflictMiddle()
118-
return int(math.Max(0, float64(conflictMiddle-(view.Height()/2))))
118+
return int(math.Max(0, float64(conflictMiddle-(view.InnerHeight()/2))))
119119
}

pkg/gui/context/patch_explorer_context.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ func (self *PatchExplorerContext) setContent() {
104104
func (self *PatchExplorerContext) FocusSelection() {
105105
view := self.GetView()
106106
state := self.GetState()
107-
_, viewHeight := view.Size()
108-
bufferHeight := viewHeight - 1
107+
bufferHeight := view.InnerHeight()
109108
_, origin := view.Origin()
110109
numLines := view.LinesHeight()
111110

pkg/gui/context/view_trait.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (self *ViewTrait) SetOriginX(value int) {
6363
// tells us the start of line indexes shown in the view currently as well as the capacity of lines shown in the viewport.
6464
func (self *ViewTrait) ViewPortYBounds() (int, int) {
6565
_, start := self.view.Origin()
66-
length := self.view.InnerHeight() + 1
66+
length := self.view.InnerHeight()
6767
return start, length
6868
}
6969

@@ -89,7 +89,7 @@ func (self *ViewTrait) ScrollDown(value int) {
8989

9090
// this returns the amount we'll scroll if we want to scroll by a page.
9191
func (self *ViewTrait) PageDelta() int {
92-
_, height := self.view.Size()
92+
height := self.view.InnerHeight()
9393

9494
delta := height - 1
9595
if delta == 0 {

pkg/gui/controllers/helpers/confirmation_helper.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,13 +357,14 @@ func (self *ConfirmationHelper) resizeConfirmationPanel(parentPopupContext types
357357
suggestionsViewHeight = 11
358358
}
359359
panelWidth := self.getPopupPanelWidth()
360+
contentWidth := panelWidth - 2 // minus 2 for the frame
360361
prompt := self.c.Views().Confirmation.Buffer()
361362
wrap := true
362363
if self.c.Views().Confirmation.Editable {
363364
prompt = self.c.Views().Confirmation.TextArea.GetContent()
364365
wrap = false
365366
}
366-
panelHeight := getMessageHeight(wrap, prompt, panelWidth) + suggestionsViewHeight
367+
panelHeight := getMessageHeight(wrap, prompt, contentWidth) + suggestionsViewHeight
367368
x0, y0, x1, y1 := self.getPopupPanelDimensionsAux(panelWidth, panelHeight, parentPopupContext)
368369
confirmationViewBottom := y1 - suggestionsViewHeight
369370
_, _ = self.c.GocuiGui().SetView(self.c.Views().Confirmation.Name(), x0, y0, x1, confirmationViewBottom, 0)

pkg/gui/controllers/helpers/snake_helper.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func NewSnakeHelper(c *HelperCommon) *SnakeHelper {
2323
func (self *SnakeHelper) StartGame() {
2424
view := self.c.Views().Snake
2525

26-
game := snake.NewGame(view.Width(), view.Height(), self.renderSnakeGame, self.c.LogAction)
26+
game := snake.NewGame(view.InnerWidth(), view.InnerHeight(), self.renderSnakeGame, self.c.LogAction)
2727
self.game = game
2828
game.Start()
2929
}

pkg/gui/controllers/workspace_reset_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func (self *FilesController) animateExplosion() {
169169
// Animates an explosion within the view by drawing a bunch of flamey characters
170170
func (self *FilesController) Explode(v *gocui.View, onDone func()) {
171171
width := v.InnerWidth()
172-
height := v.InnerHeight() + 1
172+
height := v.InnerHeight()
173173
styles := []style.TextStyle{
174174
style.FgLightWhite.SetBold(),
175175
style.FgYellow.SetBold(),

pkg/gui/information_panel.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func (gui *Gui) handleInfoClick() error {
3030
view := gui.Views.Information
3131

3232
cx, _ := view.Cursor()
33-
width, _ := view.Size()
33+
width := view.Width()
3434

3535
if activeMode, ok := gui.helpers.Mode.GetActiveMode(); ok {
3636
if width-cx > utils.StringWidth(gui.c.Tr.ResetInParentheses) {

0 commit comments

Comments
 (0)