mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-03 00:16:15 +00:00
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:
+1
-1
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user