ae15869d07
popover: Able to receive screensaver events
2022-12-08 09:38:31 +00:00
cf6171a51f
loops: Use Void for infinite loops
2022-12-06 13:01:25 +00:00
ea5e36e9fd
screensaver: Catch activeness changes
2022-12-06 12:58:17 +00:00
783ca9ae11
structure: Create a module for custom event loops
2022-12-06 12:19:17 +00:00
38165ac039
Merge branch 'event' into 'master'
...
Decouple event handling from concrete logic
See merge request World/Phosh/squeekboard!581
2022-12-06 12:14:17 +00:00
7f1d237551
event loop: Move event handlers from event loop driver to main loop
2022-11-28 15:53:41 +00:00
6d01386d8a
main: Moved event loop definition close to actor
2022-11-28 15:53:41 +00:00
e5be92efae
loop driver: Decouple from concrete state
2022-11-28 15:53:41 +00:00
2f011a57dd
test: Mark loop scheduling test for rewrite
2022-11-28 15:53:41 +00:00
e7c2350c92
event loop: Decouple event handler from concrete state
2022-11-28 15:53:41 +00:00
d51408a3e0
event loop: Add descriptions
2022-11-28 15:53:41 +00:00
b8c0836f51
event loop: Decouple event type from handler
2022-11-28 15:53:41 +00:00
e0b37d60c4
event loop: Decouple state type from event handler
2022-11-28 15:53:41 +00:00
23d6beee8e
event loop: Decouple event timeout from event type
2022-11-28 15:53:41 +00:00
805c0d27fd
panel: Fix resize when reusing the window
...
When the panel window was reused, it was not re-initialized. That includes the panel size request. If the last panel size was matching a different display size (including orientation), the newly shown panel would re-use that size instead of respecting the newly requested size.
2022-11-27 18:04:18 +00:00
9242bb679d
panel: Hardcode some debugging
...
Quickly done, useful for development tests. For user control, this requires connecting to some switch.
2022-11-27 18:02:47 +00:00
973bbaca4b
layout: Increase separation between mutable and logic
2022-10-01 18:29:24 +00:00
14282387f2
layout: Increase separation between mutable and logic
2022-10-01 18:25:35 +00:00
a5fdc25452
layout: Unbox buttons
...
The Box was just polluting the code, and the original reason for it (passing buttons individually to C) is gone.
2022-10-01 16:38:10 +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
fc4fa63cc6
layout: Remove unused code
2022-10-01 12:10:03 +00:00
5e12666b8f
layout: Pressed buttons are now a list of indices
...
This makes it possible to copy layout state wholesale, as well as to drop shared state of keys.
2022-10-01 11:11:33 +00:00
649f67d319
layout: Split out static data
...
This will make it possible later to cache this data or compare for best size selection without hassle.
2022-09-30 17:42:03 +00:00
c017a773ea
layout: Gather state-related stuff together
2022-09-30 17:12:00 +00:00
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
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
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
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