1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-05-21 22:43:27 +02:00

Merge pull request #1920 from Ryooooooga/feature/fix-prompt-height

This commit is contained in:
Jesse Duffield 2022-05-07 23:40:26 +10:00 committed by GitHub
commit b91fb81230
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 7 deletions

View File

@ -5,6 +5,7 @@ import (
"github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/context"
"github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/gui/types"
"github.com/jesseduffield/lazygit/pkg/utils" "github.com/jesseduffield/lazygit/pkg/utils"
"github.com/mattn/go-runewidth"
) )
// In this file we use the boxlayout package, along with knowledge about the app's state, // In this file we use the boxlayout package, along with knowledge about the app's state,
@ -78,7 +79,7 @@ func (gui *Gui) infoSectionChildren(informationStr string, appStatus string) []*
return []*boxlayout.Box{ return []*boxlayout.Box{
{ {
Window: "searchPrefix", Window: "searchPrefix",
Size: len(SEARCH_PREFIX), Size: runewidth.StringWidth(SEARCH_PREFIX),
}, },
{ {
Window: "search", Window: "search",
@ -93,7 +94,7 @@ func (gui *Gui) infoSectionChildren(informationStr string, appStatus string) []*
result = append(result, result = append(result,
&boxlayout.Box{ &boxlayout.Box{
Window: "appStatus", Window: "appStatus",
Size: len(appStatus) + len(INFO_SECTION_PADDING), Size: runewidth.StringWidth(appStatus) + runewidth.StringWidth(INFO_SECTION_PADDING),
}, },
) )
} }
@ -107,7 +108,7 @@ func (gui *Gui) infoSectionChildren(informationStr string, appStatus string) []*
{ {
Window: "information", Window: "information",
// unlike appStatus, informationStr has various colors so we need to decolorise before taking the length // unlike appStatus, informationStr has various colors so we need to decolorise before taking the length
Size: len(INFO_SECTION_PADDING) + len(utils.Decolorise(informationStr)), Size: runewidth.StringWidth(INFO_SECTION_PADDING) + runewidth.StringWidth(utils.Decolorise(informationStr)),
}, },
}..., }...,
) )

View File

@ -10,6 +10,7 @@ import (
"github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/gui/types"
"github.com/jesseduffield/lazygit/pkg/theme" "github.com/jesseduffield/lazygit/pkg/theme"
"github.com/jesseduffield/lazygit/pkg/utils" "github.com/jesseduffield/lazygit/pkg/utils"
"github.com/mattn/go-runewidth"
) )
// This file is for the rendering of confirmation panels along with setting and handling associated // This file is for the rendering of confirmation panels along with setting and handling associated
@ -76,7 +77,7 @@ func (gui *Gui) getMessageHeight(wrap bool, message string, width int) int {
// if we need to wrap, calculate height to fit content within view's width // if we need to wrap, calculate height to fit content within view's width
if wrap { if wrap {
for _, line := range lines { for _, line := range lines {
lineCount += len(line)/width + 1 lineCount += runewidth.StringWidth(line)/width + 1
} }
} else { } else {
lineCount = len(lines) lineCount = len(lines)

View File

@ -6,6 +6,7 @@ import (
"github.com/jesseduffield/generics/slices" "github.com/jesseduffield/generics/slices"
"github.com/jesseduffield/lazygit/pkg/constants" "github.com/jesseduffield/lazygit/pkg/constants"
"github.com/jesseduffield/lazygit/pkg/gui/style" "github.com/jesseduffield/lazygit/pkg/gui/style"
"github.com/mattn/go-runewidth"
) )
func (gui *Gui) informationStr() string { func (gui *Gui) informationStr() string {
@ -45,16 +46,16 @@ func (gui *Gui) handleInfoClick() error {
width, _ := view.Size() width, _ := view.Size()
if activeMode, ok := gui.getActiveMode(); ok { if activeMode, ok := gui.getActiveMode(); ok {
if width-cx > len(gui.c.Tr.ResetInParentheses) { if width-cx > runewidth.StringWidth(gui.c.Tr.ResetInParentheses) {
return nil return nil
} }
return activeMode.reset() return activeMode.reset()
} }
// if we're not in an active mode we show the donate button // if we're not in an active mode we show the donate button
if cx <= len(gui.c.Tr.Donate) { if cx <= runewidth.StringWidth(gui.c.Tr.Donate) {
return gui.os.OpenLink(constants.Links.Donate) return gui.os.OpenLink(constants.Links.Donate)
} else if cx <= len(gui.c.Tr.Donate)+1+len(gui.c.Tr.AskQuestion) { } else if cx <= runewidth.StringWidth(gui.c.Tr.Donate)+1+runewidth.StringWidth(gui.c.Tr.AskQuestion) {
return gui.os.OpenLink(constants.Links.Discussions) return gui.os.OpenLink(constants.Links.Discussions)
} }
return nil return nil