From 08f255cefe036119ed9aecfc7c97c58fd5ceee83 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Wed, 22 Sep 2021 13:11:28 +0200 Subject: [PATCH] Hide OSK when physical keyboard is connected Fixes: #15 --- main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index e812c80..f3bb9d3 100644 --- a/main.c +++ b/main.c @@ -373,6 +373,11 @@ int main(void) { keyboard_indevs[i] = lv_indev_drv_register(&keyboard_indev_drvs[i]); } + /* Hide the on-screen keyboard by default if a physical keyboard is connected */ + if (num_keyboards > 0) { + is_keyboard_hidden = true; + } + /* Connect mice and trackpads */ #define MAX_POINTER_DEVICES 4 char *pointer_devices[MAX_POINTER_DEVICES] = { NULL, NULL, NULL, NULL }; @@ -522,7 +527,7 @@ int main(void) { lv_obj_add_event_cb(keyboard, keyboard_draw_part_begin_cb, LV_EVENT_DRAW_PART_BEGIN, NULL); lv_obj_add_event_cb(keyboard, keyboard_value_changed_cb, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_add_event_cb(keyboard, keyboard_ready_cb, LV_EVENT_READY, NULL); - lv_obj_set_pos(keyboard, 0, 0); + lv_obj_set_pos(keyboard, 0, is_keyboard_hidden ? keyboard_height : 0); lv_obj_set_size(keyboard, hor_res, keyboard_height); lv_obj_add_style(keyboard, &style_text_normal, 0);