Skip to content

Commit 6b95a4f

Browse files
authored
Merge pull request #26 from OpenTabletDriver/fix-oor
Fix last report getting duplicated when pen is OOR
2 parents 2fcdaac + 9353dbc commit 6b95a4f

2 files changed

Lines changed: 9 additions & 7 deletions

File tree

DevocubFilters/AntiChatter.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,19 +145,20 @@ protected override void ConsumeState()
145145
else
146146
calcTarget = targetPos;
147147
}
148+
else
149+
{
150+
OnEmit();
151+
}
148152
}
149153

150154
protected override void UpdateState()
151155
{
152-
if (State is ITabletReport report)
156+
if (State is ITabletReport report && PenIsInRange())
153157
{
154158
report.Position = Filter(calcTarget) / MillimeterScale;
155159
report.Pressure = this.pressure;
156160
State = report;
157-
}
158161

159-
if (PenIsInRange() || State is not ITabletReport)
160-
{
161162
OnEmit();
162163
}
163164
}

HawkuFilters/Smoothing.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,21 @@ protected override void ConsumeState()
3737
{
3838
if (State is ITabletReport report)
3939
this.targetPos = new Vector3(report.Position, report.Pressure) * mmScale;
40+
else
41+
OnEmit();
4042
}
4143

4244
protected override void UpdateState()
4345
{
44-
if (State is ITabletReport report)
46+
if (State is ITabletReport report && PenIsInRange())
4547
{
4648
var newPoint = Filter(this.targetPos) / mmScale;
4749
report.Position = new Vector2(newPoint.X, newPoint.Y);
4850
report.Pressure = (uint)newPoint.Z;
4951
State = report;
50-
}
5152

52-
if (PenIsInRange() || State is not ITabletReport)
5353
OnEmit();
54+
}
5455
}
5556

5657
public Vector3 Filter(Vector3 point)

0 commit comments

Comments
 (0)