182 Commits

Author SHA1 Message Date
95be96d27e scaling: Keep proportions of labels and icons when stretching layouts
Before this change, the labels and icons were stretched along with the
layout.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/686>
2024-10-08 23:05:09 +00:00
9c9f371f91 Rename LevelKeyboard to Layout 2022-11-28 15:53:41 +00:00
c30e951907 style: Use layout name as css class 2022-09-03 08:04:40 +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
9985f81624 Merge branch 'scale' into 'master'
renderer: Take context scale into account when drawing icons

Closes #139

See merge request World/Phosh/squeekboard!512
2021-12-18 14:37:53 +00:00
589b5e490e renderer: Take context scale into account when drawing icons
Closes: #139
2021-12-18 12:31:31 +00:00
321dadba34 renderer: Set style class based on input purpose 2021-12-05 17:34:40 +01:00
379a09e0d6 renderer: Disconnect theme change signal handler
The renderer does not stick around so we need to disconnect the signal
handler on "dispose". Since the renderer is not a GObject track the
signal id manually instead of using `g_signal_connect_object ()`.

Fixes 1995285 ("eek-renderer: Honor theme changes")
2021-11-22 17:56:15 +01:00
a6d766e650 renderer: Use g_debug ()
Switching to `g_debug ()` after adding `G_LOG_DOMAIN` got lost
in a rebase.
2021-11-22 17:08:17 +01:00
1995285b65 eek-renderer: Honor theme changes
Reload style providers so e.g. switching to HighContrast is handled.

Closes: #296
2021-11-22 10:27:43 +01:00
73515b5fe1 eek-renderer: Fix indentation 2021-11-22 10:27:43 +01:00
8cfce093e7 eek-renderer: Add log domain
This allows to only log renderer messages similar to what
other projects to. `G_MESSAGES_DEBUG=all` is unaffected.
2021-11-22 10:27:43 +01:00
273179e1ec use the correct GtkStyleProviderPriority to indicate that the styles are provided by the application 2021-05-10 17:02:11 -04:00
b578414655 Merge remote-tracking branch 'upstream/master' into latch 2021-03-31 09:48:29 +00:00
7b1755a489 renderer: Mark latched buttons differently than locked
There are some hacks here in the form of an extra field "appears_locked_from", which can be used to hint that the user should see the button as locked. Without it, there's some confusion on user side regarding buttons that change states unprompted.
2021-03-31 09:11:11 +00:00
24c3fac505 renderer: Split mutable geometry and place it directly in GtkKeyboard
Geometry is now permanently married to the widget rather the renderer. While geometry is not always defined, C doesn't support sum types, so checks won't be enforced by the compiler. It's OK to pretend there's always some geometry to avoid crashes.
2021-03-17 14:37:54 +00:00
46f8790fc0 renderer: Reduce reliance on knowing the transform 2021-03-17 13:29:02 +00:00
c6cc58fd8e ffi: Eliminate squeek_button and squeek_row 2020-12-04 17:34:53 +00:00
9522d4e302 renderer: Bring button drawing closer to Rust 2020-12-04 15:35:02 +00:00
5e43a31051 Fix leak endlessly adding a resource path to the default theme 2020-10-03 16:23:13 +10:00
306c11f1fd treewide: Use new style function definitions 2020-09-11 18:15:02 +02:00
8ff8e8ac48 Merge remote-tracking branch 'upstream/master' into scaling 2020-03-07 10:46:09 +00:00
784f9127fa layout: Minor generalizations 2020-03-07 10:31:39 +00:00
4ff9cf087b renderer: Simplify by dropping gobjectness 2020-03-07 10:31:39 +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
4b34f18d34 font: Only pass relevant data to label renderer
This will help factoring the function out
2020-01-28 18:13:19 +00:00
d5682de47c font: Use font from style context
As a consequence, some dependency on renderer is gone.
2020-01-28 18:13:15 +00:00
dd21bfed8d positioning: Calculate sizes instead of storing, move position out of widgets
Sizes of widgets can be derived, so storing them was only for C compatibility. Similar with storing position inside of widgets.

Some layout margin and scaling changes could be introduced, meaning a possibility of visual differences.
2019-12-07 21:20:21 +00:00
1c4d027af5 cleanup: Remove references to squeek_view 2019-12-07 15:42:54 +00:00
51a77c41c3 renderer: Remove unused functions 2019-12-07 15:19:53 +00:00
f77db1bb73 renderer: Render whole keyboard the same way as pressed buttons
Removed window size dependent surface.
2019-12-07 14:33:49 +00:00
581c86809a renderer: Simply cut off when painting outside bounds 2019-12-07 14:03:51 +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
6e32a2ef41 renderer: Simplify surface rendering 2019-12-01 16:00:40 +00:00
34fce7395d renderer: Drop unused params 2019-12-01 15:36:01 +00:00
d415ecf5d0 renderer: Drop row from button rendering 2019-12-01 15:31:16 +00:00
5266c621fd renderer: Simplified outline rendering 2019-12-01 15:27:14 +00:00
4ee832c594 renderer: Remove some unneeded vars 2019-12-01 15:22:00 +00:00
83fea8cd31 Drop squeek_key 2019-12-01 15:01:08 +00:00
59f6173282 theme: Use a matching layout theme for any widget theme
Dedicated styling is now possible for themes which have a corresponding style-theme.css file. Adwaita:dark gets one, whereas other themes use the new generic fallback theme.
2019-11-27 16:30:32 +00:00
c096698ec1 renderer: Remove unused ascii_font 2019-11-07 14:13:27 +00:00
3aaaed3bae renderer: Clean up EekColor & label 2019-11-07 14:10:20 +00:00
f1c76a0ca4 Don't leak CSS 2019-11-06 15:46:53 +00:00
7d18f81a30 Remove unused surface caches 2019-11-06 14:32:23 +00:00
ce223e04e6 icons: Fix scaling to 16 units of scale 2019-10-29 13:32:53 +00:00
c917a1f818 layout: Keep kind metadata in loaded layouts
It will come useful for applying per-kind styling later without having to give each layout a new stylesheet
2019-10-29 13:27:54 +00:00
8f7f6c05c0 renderer: Remove dependencies on renderer in button rendering functions
The rendering functions become more pure, which, once reached, will allow for better tracking of what they do and easier modularization.
2019-10-28 21:13:58 +00:00
01fe433612 icons: Remove caching 2019-10-25 15:43:29 +00:00
63e55ff5c4 renderer: Free temporary surfaces 2019-10-25 15:18:37 +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