34564edf32
Port to crate xkbcommon 0.7
...
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/656 >
2024-08-14 15:18:43 +00:00
400e82326d
memory: Fix undefined behaviour
...
As warned by the compiler.
At the same time drop support for older rustc, as the code was dead anyway.
2023-01-15 11:52:21 +00:00
952ec805ed
layout: Put all button state into active_buttons
...
Ths gets rid of Rc<RefCell<>> sharing of state, which can be hard to keep track of.
In addition, there's no longer any duplication of button state.
2022-10-01 16:38:01 +00:00
74c5ef4a51
layout: Separate button info from state
...
Splitting out state into a dedicated place lets keep all the immutable metadata in one place, and all state in another.
2022-10-01 13:37:35 +00:00
a4e7ad06d3
build: Avoid MaybeUninit on older Debian
2020-10-12 14:14:26 +00:00
db298b0fb8
keymaps: Use multiple key maps, each within the limit of what Xorg can accept.
...
Key maps are switched on key press whenever needed.
2020-10-12 14:14:17 +00:00
4373cf7bc3
keymap: Concentrate special handling of BackSpace, which is implicit in Erase action
2020-10-12 13:57:53 +00:00
de3bf54dc9
data: Restore testability of action->keysym conversion
2020-10-06 10:32:07 +00:00
2219eb67e1
keymap: Generate from symbol map, not layout
...
Includes changes to the keymap string without which Xwayland won't work.
2020-10-06 10:31:28 +00:00
0f7ab99da3
keyboard: Fix warning
...
warning: unused variable: `name`
--> /var/scratch/librem5/squeekboard/src/keyboard.rs:195:10
|
195 | for (name, state) in keystates.iter() {
| ^^^^ help: consider prefixing with an underscore: `_name`
2020-09-11 18:16:30 +02:00
9512fd8436
virtual_keyboard: Fix desynced modifiers state
...
This ensures that keymap switches leave modifiers and virtual keys in a known state.
2020-07-15 18:08:59 +00:00
abaaf04b87
Merge branch 'modifiers' into 'master'
...
Add simple modifiers support
See merge request Librem5/squeekboard!306
2020-03-07 10:32:33 +00:00
67cc4f11cf
Fix minor comment typos
2020-03-04 04:53:53 +00:00
92e9d994fe
modifiers: Support Control and Alt
...
Control and Alt are special in that they aren't expected to switch levels, and so don't need to change what characters are output.
Use in layouts by adding `modifier: Control` or `modifier: Alt` in place of `text: "foo"`.
The latching of the modifier will force the keyboard to emit raw key presses and prevent it from outputting text.
2020-02-28 11:21:07 +00:00
cb802cfb50
layout: Improve press handling
...
Makes it more similar to release handling, removes some redundant checks.
This makes it easier to integrate modifiers in the future.
2020-02-19 15:40:39 +00:00
0ac8c620fd
Merge branch 'lock' into 'master'
...
Turn locking stateless
See merge request Librem5/squeekboard!322
2020-02-05 09:25:49 +00:00
500c23beec
locking: Lock keys statelessly
...
Locking is not determined by button state any more, but rather based on the view active at the moment. If pressing/locking a key results in the current view being active, the key is active. If locking a key results in the current view, the unlock view is activated.
2020-02-02 15:41:47 +00:00
cd252634bd
logging: Use in merged functions
2020-01-28 12:45:45 +00:00
de8aaa1a47
Merge remote-tracking branch 'upstream/master' into text_input_enable
2020-01-28 12:39:42 +00:00
585ed5e97d
input_method: Use for erasing
2020-01-23 15:39:40 +00:00
c75e085dc8
logging: Unified to remove random eprint calls
2020-01-17 12:25:39 +00:00
42cb73cd8c
submission: Handle submitting strings
2020-01-14 18:33:47 +00:00
34db364a62
layout: Centralize handling key releases
2020-01-08 18:52:09 +00:00
950310c8a5
keyboard: Introduce a KeyCode type wrapping u32
2020-01-08 18:52:09 +00:00
432e4fe1e5
Merge branch 'drop_key' into 'master'
...
Simplify renderer
See merge request Librem5/squeekboard!272
2019-12-15 16:38:31 +00:00
f9fbd3fb2d
rendering: Simplify Cairo context usage, remove unneeded calls.
...
Moved Cairo context usage to Rust, and rearranged ctx setup (position) to happen in one place.
Removed render calls that were overwritten on each draw call anyway.
2019-12-07 12:47:47 +00:00
83fea8cd31
Drop squeek_key
2019-12-01 15:01:08 +00:00
3ac4caa3b9
keycodes: Sort to eliminate runtime indeterminism
2019-11-27 16:18:36 +00:00
5a262242a3
keymap: Work around sending keycode 0
...
If keycode 0 resolves to a letter, the the press is ignored by the compositor. This works around the bug.
2019-11-26 15:35:22 +00:00
c99efc430c
presses: Move press handling to Rust
...
This fixes some rendering things which would happen with multiple state-sharing buttons. It also removes some interfaces exposing rows, views, layouts, and buttons, bringing the code closer to removing them from the FFI entirely.
2019-10-23 15:11:16 +00:00
89b56ddccf
util: C-wrapped data don't need to be cloneable
2019-10-10 16:54:02 +00:00
ac68d5d0a8
tests: Check keymap generation results
2019-10-09 16:08:50 +00:00
dc2bc46167
keymap: Simplified key state passing
...
There's no need to treat states as a shared resource before they are placed inside buttons.
2019-10-09 15:38:21 +00:00
9cd439767e
virtual_keyboard: Submit multi-codepoint strings
2019-10-09 15:13:46 +00:00
31fdde4da9
keycodes: Moved submission to Rust
2019-10-09 09:23:06 +00:00
10bad4ebe3
warnings: Fix and silence
2019-10-09 08:15:03 +00:00
da5a83f367
action: Rename file to action.rs
2019-10-09 08:11:28 +00:00
ef38fd3e64
symbol: Eliminate in favor of Action
2019-10-09 08:06:17 +00:00
46d3312c86
cleanup: Unused symbol functions
2019-10-09 08:03:39 +00:00
8e654346a2
keysyms: Derive from Unicode labels
2019-09-11 12:03:57 +00:00
aa9523338f
Merge branch 'buttonlists' into reparse
2019-09-09 15:11:59 +00:00
60a89b6c3f
Merge branch 'wrapping' into reparse
2019-09-04 10:01:22 +00:00
b84c402c4a
WIP
...
WIP
WIP: keymap generation test passes
meta: Update features and version
WiP: cargo.lock
WIP: don't crash
WIP: no outlines
parsing: New tests
WIP: base level works
WIP: remove old keyboard
symbols correctly input
WIP: lodaing files
WIP: fallback works
Valid fallback
2019-09-04 09:44:31 +00:00
6c0a642abf
Store key instead of button in pressed lists
2019-08-31 11:30:51 +00:00
878b7ed18e
ffi: Use a generic wrapper for opaque Rust structs
2019-08-29 13:33:04 +00:00
6fc351d2e8
eekkey: Dropped in favor of Button
...
Each Button has a KeyState, which may be shared with other buttons. The list of pressed and locked buttons is used as a list of keys, causing a search for the button in the current view.
2019-08-18 13:22:18 +00:00
b70afbe9eb
keystate: Wrap in refconuter
2019-08-18 13:20:43 +00:00
996f681e5c
keystate: Removed multiple symbols
2019-08-18 13:20:43 +00:00
725b36ba79
locking: Move to squeek_key
2019-08-18 13:20:43 +00:00
1cfec4de50
key: Share state between multiple keys
2019-08-08 20:04:38 +00:00