Commit Graph

949 Commits

Author SHA1 Message Date
5523b00442 test: Add missing gtk include 2019-07-31 14:11:35 +00:00
c81fdb18de eekelement: Fix case falling through 2019-07-31 14:11:03 +00:00
d5f8b0d83b Merge branch 'simplify-rendering' into 'master'
Simplify layout and rendering

See merge request Librem5/squeekboard!102
2019-07-31 09:10:57 +00:00
e70a898af5 Merge branch 'adjust-keyboard-geometry' into 'master'
Adjust keyboard geometry

See merge request Librem5/squeekboard!103
2019-07-31 06:39:45 +00:00
df249646bc Merge branch 'update-numeric-keypad' into 'master'
Rename keypad-related files

See merge request Librem5/squeekboard!101
2019-07-31 06:37:09 +00:00
35ff93258e Adjust geometry to match the compact keyboard in places 2019-07-31 00:43:39 +02:00
c58d034494 Adjust bounds of the keyboard to better fit it in the available space 2019-07-31 00:43:36 +02:00
8f1de46381 Simplify layout and rendering
Remove pre-scaling of the bounds for the keyboard and its contents.
Calculate the scale factor based on the allocation and the desired width
and height of each keyboard, using the lower value of the horizontal and
vertical scale factors.
Apply scaling in the renderer and prepare to perform centering there.
2019-07-30 21:48:36 +00:00
1846a67e83 Merge branch 'readme' into 'master'
readme: Change the clone URL

Closes #30

See merge request Librem5/squeekboard!100
2019-07-30 20:39:09 +00:00
35ac14806c Rename keypad-related files 2019-07-30 20:47:29 +02:00
4aee4915d9 Merge branch 'generate-xkb-files' into 'master'
Generate XKB keymaps from XML instead of using pre-made ones

See merge request Librem5/squeekboard!90
2019-07-30 17:38:06 +00:00
5eeaa1c693 Remove unused geometry file 2019-07-30 19:28:16 +02:00
9b2fcf89e8 Use a test-oriented init call 2019-07-30 17:20:15 +02:00
e801a68f0d Add comments to explain what empty labels do 2019-07-30 16:50:23 +02:00
ffc5628637 readme: Change the clone URL 2019-07-30 13:08:12 +00:00
306aa89d06 Merge branch 'content_type' into 'master'
Finish up imservice state

See merge request Librem5/squeekboard!93
2019-07-30 11:44:19 +00:00
236415cde4 Merge branch 'add-landscape-orientation' into 'master'
Add landscape orientation

See merge request Librem5/squeekboard!99
2019-07-30 11:19:41 +00:00
d49e0eaa1b Center the keyboard in landscape orientation 2019-07-26 22:27:56 +00:00
107399a531 Don't set the geometry of the window in normal use
Setting the geometry prevents the widget from getting the correct
allocation and prevents us from positioning it correctly in
landscape mode.
2019-07-26 22:26:02 +00:00
99a7786dc3 Remove declaration of unused variable 2019-07-26 12:01:04 +02:00
d8f48cc48b Merge branch 'use-button-size-for-icons' into 'master'
Use the standard button size for icons

See merge request Librem5/squeekboard!98
2019-07-26 08:04:53 +00:00
2f0beb6d3a Add a simple test of keymap generation 2019-07-25 22:25:30 +02:00
3ab3627ffe Remove unused keymaps 2019-07-25 22:25:30 +02:00
70895999c2 Generate XKB keymaps from XML instead of using pre-made ones 2019-07-25 22:25:29 +02:00
ce311e1bf1 Use the standard button size for icons 2019-07-25 20:14:32 +00:00
e9cf572a3c Only recreate the widget when the keyboard layout changes
Avoid creating a widget before there is a window to put it in.
2019-07-25 18:07:29 +00:00
943b2ad9f3 Merge branch 'xkb_resource_oob_read' into 'master'
Fix out of bounds memory read in get_keymap_from_resource.

See merge request Librem5/squeekboard!97
2019-07-25 13:20:35 +00:00
f86bbb09f8 Fix out of bounds memory read in get_keymap_from_resource.
The function reads resource content into a buffer whose size matches the
size of the file contents. This buffer does not have an extra byte that
would 0 terminate this string. This is by itself is not a problem.
Unfortunately the buffer is passed to g_utf8_make_valid function with
size argument specified as -1 which means the buffer is supposed to be
NULL terminated. The end result is g_utf8_make_valid will read at least
1 byte past "contents" buffer size.

Fix this by specifying buffer size when calling g_utf8_make_valid.
2019-07-24 17:08:19 +02:00
1246776328 Create the keyboard surface every time it is needed
Icons are still blurry the first time the keyboard is shown after
rotation.
2019-07-24 14:04:28 +00:00
ea15f69e73 Render the keyboard to a subsurface of the widget 2019-07-24 13:12:57 +00:00
2e22bb5431 Merge branch 'fix-squeekboard-resources' into 'master'
Ensure that resources are built with the application

See merge request Librem5/squeekboard!95
2019-07-23 23:25:33 +00:00
a9a6e1d2b5 Ensure that resources are built with the application 2019-07-24 01:22:58 +02:00
7e939c36cc imservice: Call show/hide directly 2019-07-23 20:26:42 +00:00
c5d2d76ab1 imservice: Handle unavailable message 2019-07-23 20:26:42 +00:00
622ba6e38a imservice: Handle text change cause
Nothing is being done with this information yet
2019-07-23 20:26:42 +00:00
fad06348a7 imservice: Make imservice opaque
The structure is defined in Rust, with the intention of evaluating using Rust in this area. It's specifically not defined as repr(C), in order to encourage that. Without the repr, it was unsafe to have its members exposed in C.
2019-07-23 20:26:42 +00:00
a6ee303123 imservice: Handle content type in Rust
This adds `bitflags.rs` from the bitflags crate.
Due to not wanting to introduce Cargo as the dependency manager yet, it's slightly modified to compile as a naked module.
2019-07-23 20:25:13 +00:00
4b66add65f Merge branch 'ci' into 'master'
Run tests in ci

See merge request Librem5/squeekboard!94
2019-07-23 11:29:34 +00:00
79dce7c4c3 gitlab-ci: Run tests under xvfb
We create widgets so need a display.
2019-07-23 10:20:07 +02:00
aff71e0e33 debian: Add test run dependencies
We need xvfb to run the tests since this involves creating GTK
widgets.
2019-07-23 10:20:02 +02:00
9b10f56ba6 Keep the build directory as an artifact 2019-07-23 10:18:44 +02:00
2391947b34 Update CI configuration to enable tests 2019-07-23 10:18:44 +02:00
e903150971 Enable tests, fixing the existing ones to use the current API
This also involved building a static library for the application for
tests to link to. The main application executable also links to it.
2019-07-23 10:18:44 +02:00
7495ec9bbb Merge branch 'remove-includes' into 'master'
Remove unnecessary X11 includes

See merge request Librem5/squeekboard!91
2019-07-20 22:00:58 +00:00
e25d5a84b2 Remove unnecessary X11 includes 2019-07-20 23:57:38 +02:00
88ade4df1b Merge branch 'add-keyboards-for-purposes' into 'master'
Add keyboards for purposes

See merge request Librem5/squeekboard!89
2019-07-20 21:44:30 +00:00
00c3903672 Respond to the input purpose, showing a numeric keypad if requested 2019-07-20 17:33:55 +02:00
c801b17ba0 Add initial files to test specialized keyboard support 2019-07-20 17:33:50 +02:00
9ec8d62f3f Merge branch 'respond-to-input-source-changes' into 'master'
Respond to input source changes

See merge request Librem5/squeekboard!88
2019-07-20 15:31:40 +00:00
b1edcfcb1b Tidy up a merge 2019-07-20 17:26:00 +02:00