Skip to content

Commit

Permalink
Remove the 'slider="true"' attribute
Browse files Browse the repository at this point in the history
Whether a key behaves as a slider is now purely defined by the key
values present on it.
  • Loading branch information
Julow committed Jan 11, 2025
1 parent 1783dcd commit ddd2eeb
Show file tree
Hide file tree
Showing 8 changed files with 13 additions and 20 deletions.
1 change: 0 additions & 1 deletion doc/Custom-layouts.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ The following optional properties define the effects of swipes:

You can define a swipe only once with either compass-point or numeric notation. Unexpected Keyboard automatically puts a small legend in that direction from the center of the key.

* `slider`: If `slider="true"`, and the key also has `w` and `e` properties, then the key tracks horizontal finger motion precisely and sends the `w` and `e` keystrokes repeatedly. In built-in layouts, this makes the space bar send left and right characters as the user slides on the space bar.
* `anticircle`: The key value to send when doing an anti-clockwise gesture on the key.

### Layout
Expand Down
4 changes: 2 additions & 2 deletions doc/Possible-key-values.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ Value | Meaning
These keys perform editing on the text without sending keys that the app can interpret differently or ignore.
Value | Meaning
:----------------- | :------
`cursor_left` | Moves the cursor position to the left directly, without sending a `left` key event.
`cursor_right` | Moves the cursor position to the right directly, without sending a `right` key event.
`cursor_left` | Moves the cursor to the left with the slider gesture.
`cursor_right` | Moves the cursor to the right with the slider gesture.

## Other modifiers and diacritics
Value | Meaning
Expand Down
2 changes: 1 addition & 1 deletion res/xml/bottom_row.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<row height="0.95">
<key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key3="loc switch_clipboard" key4="switch_numeric"/>
<key width="1.1" key0="fn" key1="loc alt" key2="loc change_method" key3="switch_emoji" key4="config"/>
<key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right" slider="true"/>
<key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right"/>
<key width="1.1" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down"/>
<key width="1.7" key0="enter" key1="loc voice_typing" key2="action"/>
</row>
2 changes: 1 addition & 1 deletion res/xml/clipboard_bottom_row.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<keyboard bottom_row="false">
<row height="0.95">
<key key0="switch_back_clipboard"/>
<key width="3" key0="space" key5="cursor_left" key6="cursor_right" slider="true"/>
<key width="3" key0="space" key5="cursor_left" key6="cursor_right"/>
<key key0="backspace" key2="delete"/>
<key key0="enter" key2="action"/>
</row>
Expand Down
2 changes: 1 addition & 1 deletion res/xml/emoji_bottom_row.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<keyboard bottom_row="false">
<row height="0.95">
<key key0="switch_back_emoji"/>
<key width="3" key0="space" key5="cursor_left" key6="cursor_right" slider="true"/>
<key width="3" key0="space" key5="cursor_left" key6="cursor_right"/>
<key key0="backspace" key2="delete"/>
<key key0="enter" key2="action"/>
</row>
Expand Down
18 changes: 6 additions & 12 deletions srcs/juloo.keyboard2/KeyboardData.java
Original file line number Diff line number Diff line change
Expand Up @@ -401,24 +401,20 @@ public static class Key
public final float width;
/** Extra empty space on the left of the key. */
public final float shift;
/** Keys 2 and 3 are repeated as the finger moves laterally on the key.
Used for the left and right arrow keys on the space bar. */
public final boolean slider;
/** String printed on the keys. It has no other effect. */
public final String indication;

/** Whether a key was declared with the 'loc' prefix. */
public static final int F_LOC = 1;
public static final int ALL_FLAGS = F_LOC;

protected Key(KeyValue[] ks, KeyValue antic, int f, float w, float s, boolean sl, String i)
protected Key(KeyValue[] ks, KeyValue antic, int f, float w, float s, String i)
{
keys = ks;
anticircle = antic;
keysflags = f;
width = Math.max(w, 0f);
shift = Math.max(s, 0f);
slider = sl;
indication = i;
}

Expand Down Expand Up @@ -487,11 +483,10 @@ public static Key parse(XmlPullParser parser) throws Exception
KeyValue anticircle = parse_nonloc_key_attr(parser, "anticircle");
float width = attribute_float(parser, "width", 1f);
float shift = attribute_float(parser, "shift", 0.f);
boolean slider = attribute_bool(parser, "slider", false);
String indication = parser.getAttributeValue(null, "indication");
while (parser.next() != XmlPullParser.END_TAG)
continue;
return new Key(ks, anticircle, keysflags, width, shift, slider, indication);
return new Key(ks, anticircle, keysflags, width, shift, indication);
}

/** Whether key at [index] as [flag]. */
Expand All @@ -503,8 +498,7 @@ public boolean keyHasFlag(int index, int flag)
/** New key with the width multiplied by 's'. */
public Key scaleWidth(float s)
{
return new Key(keys, anticircle, keysflags, width * s, shift, slider,
indication);
return new Key(keys, anticircle, keysflags, width * s, shift, indication);
}

public void getKeys(Map<KeyValue, KeyPos> dst, int row, int col)
Expand All @@ -525,12 +519,12 @@ public Key withKeyValue(int i, KeyValue kv)
for (int j = 0; j < keys.length; j++) ks[j] = keys[j];
ks[i] = kv;
int flags = (keysflags & ~(ALL_FLAGS << i));
return new Key(ks, anticircle, flags, width, shift, slider, indication);
return new Key(ks, anticircle, flags, width, shift, indication);
}

public Key withShift(float s)
{
return new Key(keys, anticircle, keysflags, width, s, slider, indication);
return new Key(keys, anticircle, keysflags, width, s, indication);
}

public boolean hasValue(KeyValue kv)
Expand All @@ -556,7 +550,7 @@ public Key apply(Key k)
for (int i = 0; i < ks.length; i++)
if (k.keys[i] != null)
ks[i] = apply(k.keys[i], k.keyHasFlag(i, Key.F_LOC));
return new Key(ks, k.anticircle, k.keysflags, k.width, k.shift, k.slider, k.indication);
return new Key(ks, k.anticircle, k.keysflags, k.width, k.shift, k.indication);
}
}

Expand Down
2 changes: 1 addition & 1 deletion srcs/juloo.keyboard2/Pointers.java
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ public void onTouchMove(float x, float y, int pointerId)
ptr.value = new_value;
ptr.flags = pointer_flags_of_kv(new_value);
// Start sliding mode
if (ptr.key.slider && new_value.getKind() == KeyValue.Kind.Slider)
if (new_value.getKind() == KeyValue.Kind.Slider)
startSliding(ptr, x, (dx < 0 ? -1 : 1), new_value);
_handler.onPointerDown(new_value, true);
}
Expand Down
2 changes: 1 addition & 1 deletion srcs/layouts/latn_neo2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
<row height="0.95">
<key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key4="switch_numeric"/>
<key width="1.1" key0="fn" key1="loc alt" key2="loc change_method" key3="switch_emoji" key4="config"/>
<key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right" slider="true"/>
<key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right"/>
<key width="1.1" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down"/>
<key key0="j" key4=";"/>
<key width="1.7" key0="enter" key1="loc voice_typing" key2="action"/>
Expand Down

0 comments on commit ddd2eeb

Please sign in to comment.