1638 Commits

Author SHA1 Message Date
9ce2cf254b layout_state: Don't always operate on the global instance 2020-03-12 11:34:20 +00:00
6d7360a230 layout_holder: Rename functions used from C 2020-03-12 11:34:20 +00:00
33039e65cb layout_holder: Remove unused functions 2020-03-12 11:34:20 +00:00
4007754de9 eekboard_context: Rename to LayoutHolder 2020-03-12 11:34:20 +00:00
6abaa36db8 eekboard_context: Rename 2020-03-12 11:34:20 +00:00
710509a671 eekboard context: Remove some unused code 2020-03-12 11:34:20 +00:00
16d7fcae7c eekboard context: Remove unused struct 2020-03-12 11:34:20 +00:00
e504154571 managers: Turn gsettings management into a separate piece. 2020-03-12 11:34:20 +00:00
b19938da01 ui: Fix old Rust borrowing 2020-03-12 11:26:49 +00:00
b409df15bb ui: Update UI state based on output events 2020-03-12 11:26:49 +00:00
7dd2866b17 ui manager: Update state and calculate new size on ouptut change 2020-03-12 11:26:49 +00:00
f6fc6c83dc outputs: Pass output updates
Introduce a callback in `outputs::Outputs` that calls on every `wl_output.done`, and a dummy consumer in `ui_manager`.

This is sufficient to detect display height changes.
2020-03-12 11:26:49 +00:00
fa5c7c63d9 ui_manager: Calculate max_height in a purer fashion 2020-03-12 11:26:49 +00:00
1093e32325 sizing: Use physical dimensions of the display to determine optimal keyboard height.
Parameters fudged appropriately to preserve dimensions from the original design targting Librem5:

- 720×1440 results in 420px height, via max finger size
- 1440×720 results in 360px height, via not exceeding half the display

In absence of physical dimensions, a pixel is assumed to measure half the size as on the Librem5, and then shrunk by the current display scale factor.This gives the ability to test in nested phoc at selected scale factors like before (2x being most accurate), and keeps the right size in QEMU.
2020-03-12 11:26:49 +00:00
3d1a641ca3 Merge remote-tracking branch 'upstream/master' into scaling 2020-03-12 10:51:30 +00:00
0466a520f2 Merge branch 'predictoin_ui' into 'master'
Cleanups to make EekGtkKeyboard more standalone

See merge request Librem5/squeekboard!336
2020-03-12 10:46:14 +00:00
9e8aca1cbf Merge branch 'unavailable' into 'master'
Crash less when outside resources are unavailable

See merge request Librem5/squeekboard!341
2020-03-11 10:55:05 +00:00
eb84e52897 Merge branch 'release_check' into 'master'
CI: Fix typo

See merge request Librem5/squeekboard!343
2020-03-07 11:38:34 +00:00
0f7ff1636d CI: Fix typo 2020-03-07 11:17:25 +00:00
8ff8e8ac48 Merge remote-tracking branch 'upstream/master' into scaling 2020-03-07 10:46:09 +00:00
d4bb9038c5 Merge branch 'release_check' into 'master'
CI: Test that any bump to changelog has a corresponding tag

See merge request Librem5/squeekboard!337
2020-03-07 10:33:53 +00:00
f3caeb8fc6 Merge branch 'docs' into 'master'
Docs: describe project priorities

See merge request Librem5/squeekboard!338
2020-03-07 10:33:03 +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
2770e1769c sizing: Ignore scaling factor for layout selection 2020-03-07 10:31:39 +00:00
3cd170acc3 sizing: Create a standalone UI shape manager
The manager is used for sizing the layer surface. It promises never to exceed half the output height.

The selection of the current layout is not being done here, leading to worse behaviour in 1:1 scaling.

In the future, it could be used for sizing the keyboard itself and the suggestion box, as well as decide which layout to use, because layouts should have some sizing hints.
2020-03-07 10:31:39 +00:00
24f709ab13 Remove unused code 2020-03-07 10:31:39 +00:00
784f9127fa layout: Minor generalizations 2020-03-07 10:31:39 +00:00
22daefba3a levelkeyboard: Rearrange to make future conversion easier 2020-03-07 10:31:39 +00:00
4ff9cf087b renderer: Simplify by dropping gobjectness 2020-03-07 10:31:39 +00:00
61e1ab5c5a layout: Split out choice to a struct on its own 2020-03-07 10:26:52 +00:00
7fbc9ed56e Merge branch 'master' into 'master'
Fix minor comment typos

See merge request Librem5/squeekboard!342
2020-03-04 07:18:02 +00:00
&t
67cc4f11cf Fix minor comment typos 2020-03-04 04:53:53 +00:00
8ac2b5a713 gsettings: Don't crash on switching when unavailable 2020-03-03 19:46:53 +00:00
8bae8fe5bb dbus: Don't crash if can't make a connection 2020-03-03 19:25:49 +00:00
b3cfc8a0f3 gsettings: Don't crash when unavailable 2020-03-03 19:10:50 +00:00
5a591127a1 Merge branch 'doap' into 'master'
meta: Add doap file

See merge request Librem5/squeekboard!335
2020-03-01 14:21:45 +00:00
8f3d010349 hacking: Move into docs/ 2020-02-28 14:10:44 +00:00
7eb5c6d466 docs: Add the guiding principle 2020-02-28 13:26:09 +00:00
9f6fe8318c CI: Test that any bump to changelog has a corresponding tag
Prevents forgetting to sign the tag, which is currently done out of band and independently of review.
2020-02-28 12:14:18 +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
c28f07fcfd Merge branch 'fix_variant' into 'master'
settings: Handle empty settings

See merge request Librem5/squeekboard!333
2020-02-28 11:09:11 +00:00
80919dbc42 Merge branch 'fix_ref' into 'master'
Variant: Use proper pointer conversion between C and Rust

See merge request Librem5/squeekboard!334
2020-02-28 11:08:46 +00:00
cc369f6f81 Merge branch 'press' into 'master'
layout: Improve press handling

See merge request Librem5/squeekboard!330
2020-02-26 18:43:21 +00:00
99f2f286e3 Merge branch '1.9.0' into 'master'
Release 1.9.0

See merge request Librem5/squeekboard!328
2020-02-24 12:55:52 +00:00
46cbaf8e87 keyboard: Remove unused code 2020-02-23 12:15:19 +00:00
53b4466899 meta: Add doap file 2020-02-23 10:42:07 +00:00
c0aee5de26 Variant: Use proper pointer conversion between C and Rust 2020-02-20 12:17:50 +00:00
404f94638f settings: Handle empty settings 2020-02-20 12:06:47 +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
930f5be0c8 Release 1.9.0 "Fractal dimension"
Highlights:

- Fixed glib critical when switching layouts
- Fixed minor memory leaks when switching layouts
- Whenever the client supports it, text is sent as text instread of key presses
- New Polish language layout
- Fixed greek layout
- Better key locking
- Less leaks
- Tweaks in terminal layout
- Better emoji layout
v1.9.0
2020-02-19 14:47:04 +00:00