Compare commits

..

9 Commits

Author SHA1 Message Date
5aa7334787 Release 1.11.0 "Perceptron"
This is a special Evergreen release with only 2 changes:

- don't delay hiding when explicitly requested to hide,
- fix typo in Friulian translation.
2020-11-14 06:49:00 +00:00
955a138849 Update dependencies 2020-11-14 06:44:23 +00:00
44c80a0406 Merge branch 'fix_delay' into 'master'
ui: Cancel hiding delay when activity requested again

See merge request Librem5/squeekboard!404
2020-11-14 06:36:23 +00:00
12c9ca1e02 ui: Cancel hiding delay when activity requested again 2020-11-14 06:09:37 +00:00
91acfa0138 Merge branch 'patch-1' into 'master'
Update fur-IT.txt fix typo for Spanish

See merge request Librem5/squeekboard!401
2020-11-10 14:39:18 +00:00
8d01d17b8c Update fur-IT.txt fix typo for Spanish 2020-10-28 11:55:34 +00:00
74a5b0937b Merge branch 'improve_delay' into 'master'
Delay hiding only when leaving a text field

Closes #121

See merge request Librem5/squeekboard!400
2020-10-27 20:34:50 +00:00
17ce0b6b46 Merge branch '1.10.0' into 'master'
Release 1.10.0

See merge request Librem5/squeekboard!397
2020-10-23 10:43:10 +00:00
d07b5ed0d6 UI: Delay hiding only when leaving a text field 2020-10-20 11:52:06 +00:00
5 changed files with 57 additions and 31 deletions

20
Cargo.lock generated
View File

@ -59,9 +59,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.61" version = "1.0.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" checksum = "f1770ced377336a88a67c473594ccc14eca6f4559217c34f64aac8f83d641b40"
[[package]] [[package]]
name = "clap" name = "clap"
@ -265,9 +265,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.79" version = "0.2.80"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743" checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614"
[[package]] [[package]]
name = "linked-hash-map" name = "linked-hash-map"
@ -353,9 +353,9 @@ dependencies = [
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.6.20" version = "0.6.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c" checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
[[package]] [[package]]
name = "rs" name = "rs"
@ -400,9 +400,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_yaml" name = "serde_yaml"
version = "0.8.13" version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5" checksum = "f7baae0a99f1a324984bcdc5f0718384c1f69775f1c7eec8b859b71b443e3fd7"
dependencies = [ dependencies = [
"dtoa", "dtoa",
"linked-hash-map", "linked-hash-map",
@ -412,9 +412,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.45" version = "1.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea9c5432ff16d6152371f808fb5a871cd67368171b09bb21b43df8e4a47a3556" checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View File

@ -2,7 +2,7 @@ be Belgjic
br Brasilian br Brasilian
de Todesc de Todesc
dk Danês dk Danês
es Spgnûl es Spagnûl
fi Finlandês fi Finlandês
fr Francês fr Francês
it+fur Furlan it+fur Furlan

12
debian/changelog vendored
View File

@ -1,3 +1,15 @@
squeekboard (1.11.0) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* UI: Delay hiding only when leaving a text field
* ui: Cancel hiding delay when activity requested again
* Update dependencies
[ Fabio Tomat ]
* Update fur-IT.txt fix typo for Spanish
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Sat, 14 Nov 2020 06:46:28 +0000
squeekboard (1.10.0) amber-phone; urgency=medium squeekboard (1.10.0) amber-phone; urgency=medium
[ Dorota Czaplejewicz ] [ Dorota Czaplejewicz ]

View File

@ -42,7 +42,7 @@ pub mod c {
pub fn eek_input_method_commit(im: *mut InputMethod, serial: u32); pub fn eek_input_method_commit(im: *mut InputMethod, serial: u32);
fn eekboard_context_service_set_hint_purpose(state: *const StateManager, hint: u32, purpose: u32); fn eekboard_context_service_set_hint_purpose(state: *const StateManager, hint: u32, purpose: u32);
fn server_context_service_show_keyboard(imservice: *const UIManager); fn server_context_service_show_keyboard(imservice: *const UIManager);
fn server_context_service_hide_keyboard(imservice: *const UIManager); fn server_context_service_keyboard_release_visibility(imservice: *const UIManager);
} }
// The following defined in Rust. TODO: wrap naked pointers to Rust data inside RefCells to prevent multiple writers // The following defined in Rust. TODO: wrap naked pointers to Rust data inside RefCells to prevent multiple writers
@ -165,7 +165,7 @@ pub mod c {
} }
} else { } else {
if let Some(ui) = imservice.ui_manager { if let Some(ui) = imservice.ui_manager {
unsafe { server_context_service_hide_keyboard(ui); } unsafe { server_context_service_keyboard_release_visibility(ui); }
} }
} }
} }
@ -185,7 +185,7 @@ pub mod c {
imservice.current.active = false; imservice.current.active = false;
if let Some(ui) = imservice.ui_manager { if let Some(ui) = imservice.ui_manager {
unsafe { server_context_service_hide_keyboard(ui); } unsafe { server_context_service_keyboard_release_visibility(ui); }
} }
} }

View File

@ -226,15 +226,6 @@ make_widget (ServerContextService *self)
gtk_widget_show_all(self->widget); gtk_widget_show_all(self->widget);
} }
static gboolean
on_hide (ServerContextService *self)
{
gtk_widget_hide (GTK_WIDGET(self->window));
self->hiding = 0;
return G_SOURCE_REMOVE;
}
static void static void
server_context_service_real_show_keyboard (ServerContextService *self) server_context_service_real_show_keyboard (ServerContextService *self)
{ {
@ -242,11 +233,6 @@ server_context_service_real_show_keyboard (ServerContextService *self)
return; return;
} }
if (self->hiding) {
g_source_remove (self->hiding);
self->hiding = 0;
}
if (!self->window) { if (!self->window) {
make_window (self); make_window (self);
} }
@ -260,17 +246,29 @@ server_context_service_real_show_keyboard (ServerContextService *self)
static void static void
server_context_service_real_hide_keyboard (ServerContextService *self) server_context_service_real_hide_keyboard (ServerContextService *self)
{ {
if (!self->hiding) { gtk_widget_hide (GTK_WIDGET(self->window));
self->hiding = g_timeout_add (200, (GSourceFunc) on_hide, self);
}
self->visible = FALSE; self->visible = FALSE;
} }
static gboolean
on_hide (ServerContextService *self)
{
server_context_service_real_hide_keyboard(self);
self->hiding = 0;
return G_SOURCE_REMOVE;
}
void void
server_context_service_show_keyboard (ServerContextService *self) server_context_service_show_keyboard (ServerContextService *self)
{ {
g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(self)); g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(self));
if (self->hiding) {
g_source_remove (self->hiding);
self->hiding = 0;
}
if (!self->visible) { if (!self->visible) {
server_context_service_real_show_keyboard (self); server_context_service_real_show_keyboard (self);
} }
@ -286,6 +284,22 @@ server_context_service_hide_keyboard (ServerContextService *self)
} }
} }
/// Meant for use by the input-method handler:
/// the visible keyboard is no longer needed.
/// The implementation will delay it slightly,
/// because the release may be due to switching from one text field to another.
/// In this case, the user doesn't really need the keyboard surface
/// to disappear completely.
void
server_context_service_keyboard_release_visibility (ServerContextService *self)
{
g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(self));
if (!self->hiding && self->visible) {
self->hiding = g_timeout_add (200, (GSourceFunc) on_hide, self);
}
}
static void static void
server_context_service_set_property (GObject *object, server_context_service_set_property (GObject *object,
guint prop_id, guint prop_id,