aboutsummaryrefslogtreecommitdiff
path: root/vendor/gioui.org/layout/context.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gioui.org/layout/context.go')
-rw-r--r--vendor/gioui.org/layout/context.go20
1 files changed, 18 insertions, 2 deletions
diff --git a/vendor/gioui.org/layout/context.go b/vendor/gioui.org/layout/context.go
index f47233b..5d31496 100644
--- a/vendor/gioui.org/layout/context.go
+++ b/vendor/gioui.org/layout/context.go
@@ -5,6 +5,7 @@ package layout
import (
"time"
+ "gioui.org/f32"
"gioui.org/io/event"
"gioui.org/io/system"
"gioui.org/op"
@@ -39,15 +40,30 @@ type Context struct {
// Constraints: Exact(e.Size),
// }
//
-// NewContext calls ops.Reset.
+// NewContext calls ops.Reset and adjusts ops for e.Insets.
func NewContext(ops *op.Ops, e system.FrameEvent) Context {
ops.Reset()
+
+ size := e.Size
+
+ if e.Insets != (system.Insets{}) {
+ left := e.Metric.Px(e.Insets.Left)
+ top := e.Metric.Px(e.Insets.Top)
+ op.Offset(f32.Point{
+ X: float32(left),
+ Y: float32(top),
+ }).Add(ops)
+
+ size.X -= left + e.Metric.Px(e.Insets.Right)
+ size.Y -= top + e.Metric.Px(e.Insets.Bottom)
+ }
+
return Context{
Ops: ops,
Now: e.Now,
Queue: e.Queue,
Metric: e.Metric,
- Constraints: Exact(e.Size),
+ Constraints: Exact(size),
}
}