io/pointer: change Type to uint

This is to allow for future new Types.

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
This commit is contained in:
Pierre Curto
2021-10-19 20:45:11 +02:00
committed by Elias Naur
parent aac53ad0b5
commit 6b0e00b9aa
3 changed files with 16 additions and 13 deletions
+1 -1
View File
@@ -109,7 +109,7 @@ const (
TypePopAreaLen = 1
TypePassLen = 1
TypePopPassLen = 1
TypePointerInputLen = 1 + 1 + 1 + 2*4 + 2*4
TypePointerInputLen = 1 + 1 + 1*2 + 2*4 + 2*4
TypeClipboardReadLen = 1
TypeClipboardWriteLen = 1
TypeKeyInputLen = 1 + 1
+9 -6
View File
@@ -93,7 +93,7 @@ type InputOp struct {
type ID uint16
// Type of an Event.
type Type uint8
type Type uint
// Priority of an Event.
type Priority uint8
@@ -251,17 +251,20 @@ func (op InputOp) Add(o *op.Ops) {
if b := op.ScrollBounds; b.Min.X > 0 || b.Max.X < 0 || b.Min.Y > 0 || b.Max.Y < 0 {
panic(fmt.Errorf("invalid scroll range value %v", b))
}
if op.Types>>16 > 0 {
panic(fmt.Errorf("value in Types overflows uint16"))
}
data := ops.Write1(&o.Internal, ops.TypePointerInputLen, op.Tag)
data[0] = byte(ops.TypePointerInput)
if op.Grab {
data[1] = 1
}
data[2] = byte(op.Types)
bo := binary.LittleEndian
bo.PutUint32(data[3:], uint32(op.ScrollBounds.Min.X))
bo.PutUint32(data[7:], uint32(op.ScrollBounds.Min.Y))
bo.PutUint32(data[11:], uint32(op.ScrollBounds.Max.X))
bo.PutUint32(data[15:], uint32(op.ScrollBounds.Max.Y))
bo.PutUint16(data[2:], uint16(op.Types))
bo.PutUint32(data[4:], uint32(op.ScrollBounds.Min.X))
bo.PutUint32(data[8:], uint32(op.ScrollBounds.Min.Y))
bo.PutUint32(data[12:], uint32(op.ScrollBounds.Max.X))
bo.PutUint32(data[16:], uint32(op.ScrollBounds.Max.Y))
}
func (t Type) String() string {
+6 -6
View File
@@ -147,10 +147,11 @@ func (q *pointerQueue) collectHandlers(r *ops.Reader, events *handlerEvents) {
state.t = q.transStack[n-1]
q.transStack = q.transStack[:n-1]
case ops.TypePointerInput:
bo := binary.LittleEndian
op := pointer.InputOp{
Tag: encOp.Refs[0].(event.Tag),
Grab: encOp.Data[1] != 0,
Types: pointer.Type(encOp.Data[2]),
Types: pointer.Type(bo.Uint16(encOp.Data[2:])),
}
area := -1
if i := state.node; i != -1 {
@@ -175,15 +176,14 @@ func (q *pointerQueue) collectHandlers(r *ops.Reader, events *handlerEvents) {
h.area = area
h.wantsGrab = h.wantsGrab || op.Grab
h.types = h.types | op.Types
bo := binary.LittleEndian.Uint32
h.scrollRange = image.Rectangle{
Min: image.Point{
X: int(int32(bo(encOp.Data[3:]))),
Y: int(int32(bo(encOp.Data[7:]))),
X: int(int32(bo.Uint32(encOp.Data[4:]))),
Y: int(int32(bo.Uint32(encOp.Data[8:]))),
},
Max: image.Point{
X: int(int32(bo(encOp.Data[11:]))),
Y: int(int32(bo(encOp.Data[15:]))),
X: int(int32(bo.Uint32(encOp.Data[12:]))),
Y: int(int32(bo.Uint32(encOp.Data[16:]))),
},
}
case ops.TypeCursor: