Commit Graph

847 Commits

Author SHA1 Message Date
dcz
afe6a6cf74 Merge branch 'orphans' into 'master'
tests: Check for orphaned layout files

See merge request World/Phosh/squeekboard!574
2022-09-29 16:25:47 +00:00
a09a51ada9 Add wide Swedish layout
Closes https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/351
2022-09-15 18:59:43 +02:00
d26927dc44 tests: Check for orphaned layout files
This adds a test which scans the layouts directory for files which have not been added to the resources file.
The majority os user-submitted layouts don't include layout registration, and I ran out of ideas for how to make it more visible in the documentation. Instead, it's going to be solved on the other side: the CI pipelines shall fail.

To make it easy on experimenters with untidy trees, it's disabled by default.
2022-09-15 14:13:40 +00:00
c30e951907 style: Use layout name as css class 2022-09-03 08:04:40 +00:00
51f8217646 build: Use Cargo.lock included with the repo by default
This should fix some future problems with dependencies getting updated in a way that's unsupported by the build tools targeted by Squeekboard.
2022-09-01 17:04:25 +00:00
dcz
a3f6349376 Merge branch 'hide' into 'master'
state: Don't animate when force-hidden

See merge request World/Phosh/squeekboard!565
2022-09-01 13:52:01 +00:00
0339a4a50f added US Dvorak Terminal 2022-07-11 06:54:09 +00:00
4ae78b89c6 state: Don't animate when force-hidden 2022-07-08 05:34:36 +00:00
cc7657e78c Merge branch 'leak' into 'master'
gtk: Persist panel state

See merge request World/Phosh/squeekboard!563
2022-07-06 06:03:27 +00:00
70bf101812 gtk: Persist panel state
Creating and destroying the panel as needed causes a resource leak somewhere in the deeper layers of the stack. This is a workaround.

See https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/343
2022-07-01 08:07:29 +00:00
9528339e02 build: Generate files before compiling sources 2022-06-30 18:12:57 +00:00
7f9baa8021 Added Georgian layout 2022-06-24 18:28:21 +00:00
dcz
ea73a34eb8 Merge branch 'layouts' into 'master'
state: Select the layout

See merge request World/Phosh/squeekboard!553
2022-06-14 15:23:14 +00:00
c1ceec3673 state: Become the source of layout choice
A redesign of popover was needed: it can no longer query the application state directly due to current state being its own actor, so instead the popover gets a dedicated copy of the relevant state.

I'm not entirely happy with the extra complexity of having an extra actor just for 1 string, but at least the duplication between C and Rust and mutual calls have been reduced.
2022-06-06 16:10:53 +00:00
30141db28d main: Dry-load layout in response to the layout command 2022-06-06 16:10:53 +00:00
8d0e1b4548 state: Use IM hint and purpose for layout selection 2022-06-06 16:10:53 +00:00
e6326b9b38 state: Use dummy layout command 2022-06-06 16:10:53 +00:00
b634e2bfa4 state: Decide panel arrangement
Combines arrangement with layout to get panel contents as outcome.

Includes some path syntax changes for 2018 compatibility.
2022-06-06 16:10:53 +00:00
590cd71f49 state: Store layout override
Not used for any externally observable effects
2022-06-06 16:10:53 +00:00
8ff72f312a state: Include layout choice in visible outcome
This is still in preparation and doesn't issue any observable effects.
2022-06-06 16:10:53 +00:00
82774d2315 state: Record layout choice
This does not get plugged into anything but debug prints yet.
2022-06-04 17:47:09 +00:00
c75723b705 Add FR+Bépo layout 2022-06-01 21:02:21 +02:00
c0f57e7355 glib: Fix import 2022-04-28 15:28:36 +00:00
dcz
36474d3e9d Merge branch 'output_fix' into 'master'
Panel handling cleanup

See merge request World/Phosh/squeekboard!529
2022-04-21 07:28:38 +00:00
58c7fe98b8 layout: fix build on i386
Due to the (lack of) precision of floating-point values, comparison
results may differ slightly between architectures, leading to the
`check_stretching` test failing when building for i386. This can be
fixed by adjusting the value against which we compare the ratio between
x/y scaling factors in `calculate_transformation`.
2022-04-20 12:43:20 +02:00
2eec3372f3 panel: Split away panel handling
This reduces ServerContextService to a mere handler of "docked mode" gsetting.
2022-04-13 16:49:33 +00:00
dcz
f6724c0948 Merge branch 'debug' into 'master'
Enable debugging at runtime

See merge request World/Phosh/squeekboard!526
2022-04-13 16:40:36 +00:00
68087a125c layout: allow stretching the layout by a small amount
Due to the way the panel size is calculated, there might be a small
empty space on the sides or top of the layout. This can be an issue,
especially when this empty space is located on the sides, as touch
events in this area are not taken into account.

By allowing a small difference in horizontal and vertical scaling, we
can ensure the panel occupies the whole display width in cases where
this would be problematic.
2022-04-09 16:43:06 +02:00
dcz
323fd7ea14 Merge branch 'phys_size' into 'master'
Physically-based sizing

See merge request World/Phosh/squeekboard!543
2022-04-08 17:30:04 +00:00
8ea6f6d5c1 layouts: Register gr_wide 2022-04-07 14:59:06 +00:00
dcz
3b70116a15 Merge branch 'gro' into 'master'
layouts: Add Greek Polytonic

See merge request World/Phosh/squeekboard!540
2022-04-07 14:33:23 +00:00
397f5e126e state: Add sizing unit test 2022-04-07 14:30:46 +00:00
14d7d5d4e0 Clean up size types 2022-04-06 16:03:31 +00:00
6528879fed state: Derive panel size from physical click target size 2022-04-06 15:53:37 +00:00
57aeeaa882 output: Store physical size 2022-04-06 08:58:41 +00:00
bbceba7e9b debug: Add dbus interface to control debug prints 2022-04-05 14:19:52 +00:00
dcz
5a210712f6 Merge branch 'fix' into 'master'
Fix scaling to set height

See merge request World/Phosh/squeekboard!535
2022-04-05 11:55:55 +00:00
bb8bba163e layouts: Add Greek Polytonic
By Antonis Tsolomitis <atsol@aegean.gr>
2022-04-05 11:41:27 +00:00
83b0d1553f state: fix "wide mode" detection in portrait orientation
We need to check if we should use the wide layout based on the
*logical* display width, not its *physical* resolution.
2022-04-05 10:16:22 +00:00
29b30fbe22 panel: Use scaling to set height 2022-04-05 09:26:11 +00:00
04018a8c06 Do not reset pending state on zwp_input_method_v2.done 2022-03-15 15:51:09 -04:00
dcz
dd2871b6bb Merge branch 'output' into 'master'
Derive panel size from outputs

See merge request World/Phosh/squeekboard!528
2022-02-26 10:49:52 +00:00
0b9350d19b Check if dbus handler is null before using 2022-02-08 10:56:00 -05:00
16d6871422 panel: Apply a hard limit of 1/2 height 2022-02-04 09:40:21 +00:00
78ff02e255 output: Use new source of panel height information
This removed duplicate calculation of ideal height as well.
2022-02-04 09:40:21 +00:00
a3f91701d0 outputs: Remove ui manager 2022-02-04 09:40:21 +00:00
697be64418 visibility: Forward panel height information to window creation 2022-02-04 09:40:21 +00:00
a4b67c65ff Don't reach for globals to choose output
This actually removes the size request from panel creation. Incidentally, this still works becuae the following configure event gets the sizes from glib.
2022-02-04 09:40:21 +00:00
f040e708a4 Carry output information on visible command all the way to C 2022-02-04 09:40:18 +00:00
e6c19a1e6a deps: Vendor assert_matches
The library is small and simple enough to be considered "finished". In addition, it doesn't seem to be shipped by Debian.

In relation to its usefulness, it's little effrt to copy it.
2022-02-04 09:38:06 +00:00