static Eina_Bool _preedit_cursor_changed = EINA_FALSE;
static Input_Language input_lang = INPUT_LANG_OTHER;
-static Evas_Coord g_scr_w = 0, g_scr_h = 0;
static void set_autocapital (Ecore_IMF_Context *ctx);
static void
reset_keyboard_geometry ()
{
- Ecore_Wl2_Display *wl2_display = ecore_wl2_connected_display_get(NULL);
- if (wl2_display && (g_scr_w == 0 || g_scr_h == 0)) {
- ecore_wl2_sync();
- ecore_wl2_display_screen_size_get(wl2_display, &g_scr_w, &g_scr_h);
- }
_keyboard_geometry.x = 0;
- _keyboard_geometry.y = g_scr_h;
+ _keyboard_geometry.y = 0;
_keyboard_geometry.w = 0;
_keyboard_geometry.h = 0;
_keyboard_geometry_notified = EINA_FALSE;
ECORE_IMF_INPUT_PANEL_STATE_EVENT,
_input_panel_state);
- if (state == WL_TEXT_INPUT_INPUT_PANEL_STATE_HIDE) {
+ if (state == WL_TEXT_INPUT_INPUT_PANEL_STATE_HIDE &&
+ !(!_keyboard_geometry.x && !_keyboard_geometry.y && !_keyboard_geometry.w && !_keyboard_geometry.h &&
+ _keyboard_geometry_notified)) {
reset_keyboard_geometry();
send_keyboard_geometry_event(imcontext->ctx);
}