abouttreesummaryrefslogcommitdiff
path: root/srcs
diff options
context:
space:
mode:
Diffstat (limited to 'srcs')
-rw-r--r--srcs/juloo.keyboard2/Pointers.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/srcs/juloo.keyboard2/Pointers.java b/srcs/juloo.keyboard2/Pointers.java
index ab65a36..4efe2b6 100644
--- a/srcs/juloo.keyboard2/Pointers.java
+++ b/srcs/juloo.keyboard2/Pointers.java
@@ -47,7 +47,7 @@ public final class Pointers implements Handler.Callback
{
Pointer p = _ptrs.get(i);
if (p.value != null && p.value.getKind() == KeyValue.Kind.Modifier
- && !(skip_latched && p.pointerId == -1
+ && !(skip_latched && p.hasFlagsAny(FLAG_P_LATCHED)
&& (p.flags & FLAG_P_LOCKED) == 0))
mods[n_mods++] = p.value.getModifier();
}
@@ -82,7 +82,7 @@ public final class Pointers implements Handler.Callback
void add_fake_pointer(KeyboardData.Key key, KeyValue kv, boolean locked)
{
Pointer ptr = new Pointer(-1, key, kv, 0.f, 0.f, Modifiers.EMPTY);
- ptr.flags = FLAG_P_FAKE;
+ ptr.flags = FLAG_P_FAKE | FLAG_P_LATCHED;
if (locked)
ptr.flags |= FLAG_P_LOCKED;
_ptrs.add(ptr);
@@ -152,8 +152,8 @@ public final class Pointers implements Handler.Callback
}
else if ((ptr.flags & FLAG_P_LATCHABLE) != 0)
{
- // ptr.flags &= ~FLAG_P_LATCHABLE;
- ptr.pointerId = -1; // Latch
+ ptr.flags |= FLAG_P_LATCHED;
+ ptr.pointerId = -1;
_handler.onPointerFlagsChanged(false);
}
else
@@ -174,7 +174,7 @@ public final class Pointers implements Handler.Callback
private boolean isOtherPointerDown()
{
for (Pointer p : _ptrs)
- if (p.pointerId != -1 &&
+ if (!p.hasFlagsAny(FLAG_P_LATCHED) &&
(p.value == null || !p.value.hasFlagsAny(KeyValue.FLAG_SPECIAL)))
return true;
return false;
@@ -314,7 +314,8 @@ public final class Pointers implements Handler.Callback
if (v == null)
return null;
for (Pointer p : _ptrs)
- if (p.key == k && p.pointerId == -1 && p.value != null && p.value.equals(v))
+ if (p.key == k && p.hasFlagsAny(FLAG_P_LATCHED)
+ && p.value != null && p.value.equals(v))
return p;
return null;
}
@@ -325,7 +326,7 @@ public final class Pointers implements Handler.Callback
{
Pointer ptr = _ptrs.get(i);
// Latched and not locked, remove
- if (ptr.pointerId == -1 && (ptr.flags & FLAG_P_LOCKED) == 0)
+ if (ptr.hasFlagsAny(FLAG_P_LATCHED) && (ptr.flags & FLAG_P_LOCKED) == 0)
_ptrs.remove(i);
// Not latched but pressed, don't latch once released and stop long press.
else if ((ptr.flags & FLAG_P_LATCHABLE) != 0)
@@ -397,7 +398,7 @@ public final class Pointers implements Handler.Callback
return false;
}
// Stop repeating: Latched key, no key
- if (ptr.pointerId == -1 || ptr.value == null)
+ if (ptr.hasFlagsAny(FLAG_P_LATCHED) || ptr.value == null)
return false;
KeyValue kv = KeyModifier.modify_long_press(ptr.value);
if (!kv.equals(ptr.value))
@@ -493,6 +494,11 @@ public final class Pointers implements Handler.Callback
sliding = false;
sliding_count = 0;
}
+
+ public boolean hasFlagsAny(int has)
+ {
+ return ((flags & has) != 0);
+ }
}
/** Represent modifiers currently activated.