abouttreesummaryrefslogcommitdiff
path: root/srcs
AgeCommit message (Collapse)AuthorFilesLines
2026-01-18Refactor: Split DeviceLocales out of Keyboard2 (#1154)Jules Aguillon3-61/+107
* Refactor: Split DeviceLocales out of Keyboard2 This moves the code from Keyboard2 that handles the active IME subtypes and the current one. The goal is to access this information from the dictionary activity while simplifying the code of Keyboard2. * Refresh the candidates view when subtype changes This fixes the status message being inconsistently shown. * Refactor: Load DeviceLocales less often Previously, [DeviceLocales.load()] was called everytime the keyboard was shown on the screen. This operation is moderately costly and only need to be done when the IME subtype changes. * EditorConfig: Fix crash on Android 9
2025-12-28Fix CurrentlyTypedWord counting the first letter twiceJules Aguillon2-4/+4
2025-12-28CurrentlyTypedWord: Handle key eventsJules Aguillon2-7/+46
Currently, refreshing the current word on each key event. Refreshing is done after a short delay, to ensure the editor has handled the event.
2025-12-28CurrentlyTypedWord: Handle selectionJules Aguillon1-12/+23
When selection is entered, the current word is cleared.
2025-12-28Enter the suggestion when it's pressedJules Aguillon3-7/+31
The current word is replaced by the pressed suggestion.
2025-12-28Track the currently typed wordJules Aguillon5-6/+161
The `CurrentlyTypedWord` class tracks the word that is being typed. It's implemented on the same model as Autocapitalisation and avoid expensive IPC calls when possible. The `Suggestions` class is where the suggestion lookup should go. It currently just echoes the current word.
2025-12-28Candidates viewJules Aguillon6-8/+139
The `CandidatesView` is implemented as a `LinearLayout` that is divided horizontally with up to 3 `TextView`. It might in the future contain buttons on the sides. The candidate view is nested into the input view rather than using Android's `setCandidatesView` and callbacks as the API is unreliable and complicated. The first suggestion goes in the middle to be more accessible. The second suggestion goes on the right to be more accessible to the right-handed, because it must go somewhere.
2025-12-26Fix clipboard manager crashes (#1148)Jules Aguillon2-22/+33
* Fix background crash in clipboard history service The clipboard history service might crash when the connection between the keyboard and the system is in a bad state. * Fix race condition in clipboard history service The clipboard history service callback appears to be called concurrently leading to concurrent accesses to data and to concurrent calls to 'on_clipboard_history_change'. Access are now synchronized. * Fix clipboard manager crash when device is locked
2025-12-22Fix various linting issues (#1146)Jules Aguillon9-16/+18
2025-12-18Disable selection mode in text editors (#1141)Jules Aguillon8-118/+157
* Disable selection mode in text editors Selection mode removes the space bar key (which is replaced by the Esc key) and can be annoying in Emacs for example. Text editor users probably have the `esc` key available. * Refactor: Move EditorInfo related code to EditorConfig Add the new EditorConfig class that handles configuration extracted from the EditorInfo. It is accessible from the Config class for convenience. This aims at reducing the length of already large classes and group the code that was spread over several classes.
2025-12-13Added keyboards (#1129)10Develops7-74/+249
* Delete srcs/layouts/armenian_ph_am.xml There is a phonetic layout which is used in old typewriters * Amendments according to GOST 6431-90 * Russian traditional layout cyrl_jiuken.xml * Create cyrl_yawerty.xml Added ЯВЕРТЫ layout * Update cyrl_jcuken_ru.xml Typo fixed * Added QZERTY layout for Italian and Latin
2025-12-13Remove emoji history migration function (#1139)Jules Aguillon2-745/+0
This function was used to migrate the representation of the emoji history and needed a very large table. This reduces the app size by 22KB.
2025-12-13AZERTY: Make sure the accents are available (#1140)Jules Aguillon1-3/+3
Remove the `loc` prefix for important accent dead keys and add ê.
2025-12-13Fix parsing of escaped characters in macros (#1126)Jules Aguillon2-7/+33
* refactor: Better printing for KeyValue in tests * Fix parsing of escaped characters in macros The parsing code was bugged with custom macros like `symbol:\abc` and `symbol:\\abc`.
2025-11-10Fix insets being excluded from computed width (#1127)dzaima1-0/+1
2025-11-01Turkish F layout (#1096)Autissima1-0/+44
2025-11-01Update ComposeKeyData.javaJules Aguillon1-150/+150
Missing from previous commit.
2025-11-01Update extra.json (#1118)Houfalafel1-7/+11
change compose for n͠g to g + n + ~ to avoid overlap. this in order to add n + g = ŋ. also added lowercase Ğ.
2025-09-29Cobalt & Pine theme (#1084)wei lang1-0/+3
2025-09-29Make history duration configurable (#1074)Matej Drobnič2-3/+13
2025-09-15Allow smaller row height in custom layouts (#1100)Jules Aguillon1-1/+1
The height of row set with `<row height="...">` cannot be lower than 0.5 to avoid rendering problems. This restriction is not necessary when the row has no key and is lifted in this case.
2025-08-31Use the <fn /> mappings first when typing a gesture (#1085)Jules Aguillon1-0/+7
This allows assigning mappings to letters without changing the Shift mappings and making uppercase impossible to type. For gestures, the Shift modifier is still applied first, unless a custom mapping for <fn/> is set for the key.
2025-08-24add Everforest Light theme (#1080)Animesh1-0/+1
2025-08-17Slider sensitivity option and improve slider ergonimics (#1070)Jules Aguillon2-3/+3
* Add option 'Space bar slider sensitivity' * Fix slider moving the cursor twice at the beginning The slider was generating two events when first activated. Since 2bed42857. * Make slider less sensitive for the first step This moves the second slider step approximately 40% further and takes the new sensitivity option into account. Allows moving the cursor by one spot more easily.
2025-08-07Fix very small label size on 11+ columns layouts (#1046)Jules Aguillon1-3/+3
The label size was computed against the width of keys on the keyboard, which resulted in a different label size on different layouts. Notably, it made the labels very small on a 11 columns layout and relatively larger on the numpad. The label size is now computed against a baseline of 1/10 of the width of the screen.
2025-07-30Fix alternate keyboard layouts rendering behind navbar on some devices. (#1062)cillyvms1-0/+1
2025-07-22Fix missing swipe vibration and visual feedback (#1054)Jules Aguillon1-0/+1
This was removed by mistake in 42528ab211.
2025-07-22Add compose sequences for ꜩ Ꜩ (#1058)Harry-Ais02-147/+151
2025-07-19Added Majuscules to the Cyrillic Compose Sequences (#1042)Anastázius Kaejatídarján3-221/+426
* add majuscules to compose * add tse to compose * added reverse ya FN to modernize it FROM the older form * fix accent FN and add reverse arabic-heh FN * little improvements and additions * QoL improvements for Kurdish Sorani
2025-07-19Fix autocapitalisation flicker (#1047)JeelsBoobz1-1/+1
2025-07-13Replaced combining_acute with combining_aigu (#1040)Mal Bajun1-1/+1
2025-07-11Use screen width to switch layouts (#1029)Matej Drobnič1-31/+25
This changes layout switching logic to detect screen width rather than increasingly specific portrait/landscape/unfolded state. This reduces number of different auto-layouts back to 2: narrow devices (such as a phone in portrait) and wide devices (such as a phone in landscape or a tablet).
2025-07-11Improve layout cyrl_jcuken_as (#1039)Mal Bajun1-5/+5
2025-07-06Workaround Godot editor not implementing setSelection() (#1033)Jules Aguillon1-6/+12
This was tested against: org.godotengine.editor.v3 org.godotengine.editor.v4
2025-07-06Fix crash with unexpected value in NumberLayout pref (#1036)Jules Aguillon2-4/+14
2025-07-02Promote ComposeKeyData.javaJules Aguillon1-113/+113
2025-07-01feat: added јcuken leyout for all slavic language (#992)Mal Bajun1-0/+43
Co-authored-by: Pavel «Mal Bajun» Skrylev <majioa@yandex.ru>
2025-07-01Add cyrillic combining kavyka and palatalization (#998)Jules Aguillon4-0/+29
2025-07-01Make vertical sliders slower (#1023)Jules Aguillon1-2/+7
Make vertical sliders slower. The intention is to make the up/down slider slower, as we have less visibility and do smaller movements in that direction.
2025-07-01Fix extra bottom margin when navbar buttons absent (#1024)Jules Aguillon3-42/+24
* Fix extra bottom margin when navbar buttons absent Fix the extra space that was appearing when the gesture-navigation bar didn't contain the "switch IME" or "close IME" buttons. This was found on OneUI 7 with the two "keyboard key" related options turned off. * Remove unneeded nav bar detection and width computation
2025-06-29Add option to also disable number entry layout (#1007)Matej Drobnič3-5/+17
2025-06-29Fix unwanted bottom margin on Samsung OneUI 7 (#1022)Jules Aguillon2-18/+4
This fixes the unwanted margin at the bottom of the screen on Samsung One UI 7 based on Android 15.
2025-06-21cut and copy with built in keys only if text is selected (#1019)alotbsol5551-2/+9
cut and copy with built in keys only if text is selected to keep existing clipboard content. does not work for key combinations like ctrl+x or ctrl+c.
2025-06-19Fix selection mode not exited when selection cleared (#1020)Jules Aguillon1-0/+4
The selection mode was not exited when the selection was cleared with, for example, ctrl+x.
2025-06-19Added Macedonian language layout (#1016)David1-0/+43
2025-06-19Improve selection mode when selection ends cross (#1013)Jules Aguillon2-11/+28
Emptying the selection with the spacebar slider puts the selection mode in an unexpected state. This checks that this doesn't happen. The selection ends can now cross each other, reversing the selection order. Special care is made to make sure that the sliders go in the expected direction. Pointers is changed to send a `onPointerDown` for the first slider event instead of a `onPointerHold`. This event is detected in `KeyEventHandler` and the selection ends are reordered if needed when sliding again.
2025-06-18Add <row scale=""> attribute (#1018)Jules Aguillon7-86/+90
* Add <row scale=""> attribute Scale the width of the keys in the row to match a value. Useful to remove space on the right of the row without adding a 'width' attribute to each key. * layouts: Use the 'scale=""' attribute in builtin layouts This removes the very specific 'width' values.
2025-06-14Increase the clipboard history size to 6Jules Aguillon1-1/+1
2025-05-30Fix high keyboard height making it overflowsJules Aguillon3-16/+21
The calculation for the size of each rows now avoid making the keyboard bigger than the screen if the Keyboard Height option is unusually high. The height calculation with the default settings is changed slightly, it is now assuming that a layout is 3.95 rows high instead of 4. This is because the bottom row is usually 0.95% the size of other rows.
2025-05-30Fix label size when the keyboard is unusually highJules Aguillon1-5/+18
The label size is computed relatively to the width of the keyboard when the height is larger than 3/2 of the width. This ensures that the labels have a reasonable size when the keyboard height increases.