From 9d830a16859b7abb6bed5488b23a5e33a626a366 Mon Sep 17 00:00:00 2001 From: Kyosuke Fujimoto Date: Sun, 29 Nov 2020 09:29:06 +0900 Subject: [PATCH] Fix when dragging divider of split container --- widget/splitcontainer.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/widget/splitcontainer.go b/widget/splitcontainer.go index 82c1cd95c7..8a97b1c922 100644 --- a/widget/splitcontainer.go +++ b/widget/splitcontainer.go @@ -222,8 +222,20 @@ func (d *divider) DragEnd() { func (d *divider) Dragged(event *fyne.DragEvent) { offset := d.split.Offset if d.split.Horizontal { + if leadingRatio := float64(d.split.Leading.Size().Width) / float64(d.split.Size().Width); offset < leadingRatio { + offset = leadingRatio + } + if trailingRatio := 1. - (float64(d.split.Trailing.Size().Width) / float64(d.split.Size().Width)); offset > trailingRatio { + offset = trailingRatio + } offset += float64(event.DraggedX) / float64(d.split.Size().Width) } else { + if leadingRatio := float64(d.split.Leading.Size().Height) / float64(d.split.Size().Height); offset < leadingRatio { + offset = leadingRatio + } + if trailingRatio := 1. - (float64(d.split.Trailing.Size().Height) / float64(d.split.Size().Height)); offset > trailingRatio { + offset = trailingRatio + } offset += float64(event.DraggedY) / float64(d.split.Size().Height) } d.split.SetOffset(offset)