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:
commit
b91fb81230
@ -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)),
|
||||||
},
|
},
|
||||||
}...,
|
}...,
|
||||||
)
|
)
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user