Made centering the buffer in the window optional

It causes jitter while resizing in floating wms
This commit is contained in:
Sasha Koshka 2022-11-16 11:31:35 -05:00
parent 81a0c60943
commit 0ee58d22f6
2 changed files with 28 additions and 7 deletions

View File

@ -39,13 +39,18 @@ func (backend *Backend) handleConfigureNotify (
width, height := backend.calculateBufferSize()
backend.application.SetSize(width, height)
// position buffer in the center of the screen
frameWidth := width * backend.metrics.cellWidth
frameHeight := height * backend.metrics.cellHeight
backend.metrics.paddingX =
(backend.metrics.windowWidth - frameWidth) / 2
backend.metrics.paddingY =
(backend.metrics.windowHeight - frameHeight) / 2
if backend.config.Center() {
// position buffer in the center of the screen
frameWidth := width * backend.metrics.cellWidth
frameHeight := height * backend.metrics.cellHeight
backend.metrics.paddingX =
(backend.metrics.windowWidth - frameWidth) / 2
backend.metrics.paddingY =
(backend.metrics.windowHeight - frameHeight) / 2
} else {
backend.metrics.paddingX = backend.metrics.padding
backend.metrics.paddingY = backend.metrics.padding
}
backend.windowBoundsClean = false
}

View File

@ -12,6 +12,7 @@ import "path/filepath"
type Config struct {
colors [8]color.Color
padding int
center bool
fontSize int
fontName string
}
@ -29,6 +30,13 @@ func (config *Config) Padding () (padding int) {
return
}
// Center returns whether the buffer should be displayed in the center of the
// window like in kitty, or aligned to one corner like in gnome-terminal.
func (config *Config) Center () (center bool) {
center = config.center
return
}
// FontSize specifies how big the font should be.
func (config *Config) FontSize () (fontSize int) {
fontSize = config.fontSize
@ -98,8 +106,14 @@ func (config *Config) loadFile (path string) {
}
key = strings.TrimSpace(key)
value = strings.TrimSpace(value)
var valueInt int
var valueColor color.Color
var valueBoolean bool
if value == "true" {
valueBoolean = true
}
if value[0] == '#' {
if len(value) != 7 {
@ -134,6 +148,8 @@ func (config *Config) loadFile (path string) {
config.fontSize = valueInt
case "padding":
config.padding = valueInt
case "center":
config.center = valueBoolean
case "colorBackground":
config.colors[ColorBackground] = valueColor
case "colorForeground":