mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-02-09 13:47:11 +02:00
fix popup panel resizing
This commit is contained in:
parent
c1bf1e52b0
commit
422b263df4
5
Gopkg.lock
generated
5
Gopkg.lock
generated
@ -189,11 +189,11 @@
|
|||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
branch = "master"
|
branch = "master"
|
||||||
digest = "1:acbcdae312c37a8019e0f573a9be26499058d5e1244243655373d2fd97714658"
|
digest = "1:145fe566d21b0e2579e1600f09e4e4b01da017676ba8e079de75a2e21111538b"
|
||||||
name = "github.com/jesseduffield/gocui"
|
name = "github.com/jesseduffield/gocui"
|
||||||
packages = ["."]
|
packages = ["."]
|
||||||
pruneopts = "NUT"
|
pruneopts = "NUT"
|
||||||
revision = "5d9e836837237cb3aadca51ecb37c7cf3345bfa4"
|
revision = "c4051ef0fbcbe519bc1d082a579a38100c7cf044"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
digest = "1:ac6d01547ec4f7f673311b4663909269bfb8249952de3279799289467837c3cc"
|
digest = "1:ac6d01547ec4f7f673311b4663909269bfb8249952de3279799289467837c3cc"
|
||||||
@ -611,7 +611,6 @@
|
|||||||
analyzer-version = 1
|
analyzer-version = 1
|
||||||
input-imports = [
|
input-imports = [
|
||||||
"github.com/cloudfoundry/jibber_jabber",
|
"github.com/cloudfoundry/jibber_jabber",
|
||||||
"github.com/davecgh/go-spew/spew",
|
|
||||||
"github.com/fatih/color",
|
"github.com/fatih/color",
|
||||||
"github.com/golang-collections/collections/stack",
|
"github.com/golang-collections/collections/stack",
|
||||||
"github.com/heroku/rollrus",
|
"github.com/heroku/rollrus",
|
||||||
|
@ -34,15 +34,6 @@ func (gui *Gui) handleCommitClose(g *gocui.Gui, v *gocui.View) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) handleNewlineCommitMessage(g *gocui.Gui, v *gocui.View) error {
|
func (gui *Gui) handleNewlineCommitMessage(g *gocui.Gui, v *gocui.View) error {
|
||||||
// resising ahead of time so that the top line doesn't get hidden to make
|
|
||||||
// room for the cursor on the second line
|
|
||||||
x0, y0, x1, y1 := gui.getConfirmationPanelDimensions(g, v.Buffer())
|
|
||||||
if _, err := g.SetView("commitMessage", x0, y0, x1, y1+1, 0); err != nil {
|
|
||||||
if err != gocui.ErrUnknownView {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
v.EditNewLine()
|
v.EditNewLine()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ import (
|
|||||||
|
|
||||||
"github.com/fatih/color"
|
"github.com/fatih/color"
|
||||||
"github.com/jesseduffield/gocui"
|
"github.com/jesseduffield/gocui"
|
||||||
"github.com/jesseduffield/lazygit/pkg/utils"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (gui *Gui) wrappedConfirmationFunction(function func(*gocui.Gui, *gocui.View) error) func(*gocui.Gui, *gocui.View) error {
|
func (gui *Gui) wrappedConfirmationFunction(function func(*gocui.Gui, *gocui.View) error) func(*gocui.Gui, *gocui.View) error {
|
||||||
@ -161,17 +160,3 @@ func (gui *Gui) createErrorPanel(g *gocui.Gui, message string) error {
|
|||||||
coloredMessage := colorFunction(strings.TrimSpace(message))
|
coloredMessage := colorFunction(strings.TrimSpace(message))
|
||||||
return gui.createConfirmationPanel(g, currentView, gui.Tr.SLocalize("Error"), coloredMessage, nil, nil)
|
return gui.createConfirmationPanel(g, currentView, gui.Tr.SLocalize("Error"), coloredMessage, nil, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) resizePopupPanel(g *gocui.Gui, v *gocui.View) error {
|
|
||||||
// If the confirmation panel is already displayed, just resize the width,
|
|
||||||
// otherwise continue
|
|
||||||
content := utils.TrimTrailingNewline(v.Buffer())
|
|
||||||
x0, y0, x1, y1 := gui.getConfirmationPanelDimensions(g, content)
|
|
||||||
vx0, vy0, vx1, vy1 := v.Dimensions()
|
|
||||||
if vx0 == x0 && vy0 == y0 && vx1 == x1 && vy1 == y1 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
gui.Log.Info(gui.Tr.SLocalize("resizingPopupPanel"))
|
|
||||||
_, err := g.SetView(v.Name(), x0, y0, x1, y1, 0)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
@ -307,9 +307,7 @@ func (gui *Gui) layout(g *gocui.Gui) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gui.resizePopupPanels(g)
|
return gui.resizeCurrentPopupPanel(g)
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) promptAnonymousReporting() error {
|
func (gui *Gui) promptAnonymousReporting() error {
|
||||||
@ -355,14 +353,6 @@ func (gui *Gui) goEvery(g *gocui.Gui, interval time.Duration, function func(*goc
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) resizePopupPanels(g *gocui.Gui) error {
|
|
||||||
v := g.CurrentView()
|
|
||||||
if v.Name() == "commitMessage" || v.Name() == "confirmation" {
|
|
||||||
return gui.resizePopupPanel(g, v)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run setup the gui with keybindings and start the mainloop
|
// Run setup the gui with keybindings and start the mainloop
|
||||||
func (gui *Gui) Run() error {
|
func (gui *Gui) Run() error {
|
||||||
g, err := gocui.NewGui(gocui.OutputNormal, OverlappingEdges)
|
g, err := gocui.NewGui(gocui.OutputNormal, OverlappingEdges)
|
||||||
|
@ -268,3 +268,25 @@ func (gui *Gui) currentViewName(g *gocui.Gui) string {
|
|||||||
currentView := g.CurrentView()
|
currentView := g.CurrentView()
|
||||||
return currentView.Name()
|
return currentView.Name()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (gui *Gui) resizeCurrentPopupPanel(g *gocui.Gui) error {
|
||||||
|
v := g.CurrentView()
|
||||||
|
if v.Name() == "commitMessage" || v.Name() == "confirmation" {
|
||||||
|
return gui.resizePopupPanel(g, v)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gui *Gui) resizePopupPanel(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
// If the confirmation panel is already displayed, just resize the width,
|
||||||
|
// otherwise continue
|
||||||
|
content := v.Buffer()
|
||||||
|
x0, y0, x1, y1 := gui.getConfirmationPanelDimensions(g, content)
|
||||||
|
vx0, vy0, vx1, vy1 := v.Dimensions()
|
||||||
|
if vx0 == x0 && vy0 == y0 && vx1 == x1 && vy1 == y1 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
gui.Log.Info(gui.Tr.SLocalize("resizingPopupPanel"))
|
||||||
|
_, err := g.SetView(v.Name(), x0, y0, x1, y1, 0)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
2
vendor/github.com/jesseduffield/gocui/edit.go
generated
vendored
2
vendor/github.com/jesseduffield/gocui/edit.go
generated
vendored
@ -114,8 +114,8 @@ func (v *View) EditDelete(back bool) {
|
|||||||
func (v *View) EditNewLine() {
|
func (v *View) EditNewLine() {
|
||||||
v.breakLine(v.cx, v.cy)
|
v.breakLine(v.cx, v.cy)
|
||||||
v.ox = 0
|
v.ox = 0
|
||||||
|
v.cy = v.cy + 1
|
||||||
v.cx = 0
|
v.cx = 0
|
||||||
v.MoveCursor(0, 1, true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MoveCursor moves the cursor taking into account the width of the line/view,
|
// MoveCursor moves the cursor taking into account the width of the line/view,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user