diff -Naur ibus-1.5.25/client/gtk2/ibusimcontext.c ibus-1.5.25.new/client/gtk2/ibusimcontext.c --- ibus-1.5.25/client/gtk2/ibusimcontext.c 2021-08-20 02:48:40.000000000 +0200 +++ ibus-1.5.25.new/client/gtk2/ibusimcontext.c 2021-09-08 14:58:40.500448136 +0200 @@ -1497,7 +1497,10 @@ #if GTK_CHECK_VERSION (3, 98, 4) #elif GTK_CHECK_VERSION (2, 91, 0) - area.y += gdk_window_get_height (ibusimcontext->client_window); + if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { + area.x = 0; + area.y += gdk_window_get_height (ibusimcontext->client_window); + } #else if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { gint w, h; diff -Naur ibus-1.5.25/client/gtk3/ibusimcontext.c ibus-1.5.25.new/client/gtk3/ibusimcontext.c --- ibus-1.5.25/client/gtk3/ibusimcontext.c 2021-08-20 02:48:40.000000000 +0200 +++ ibus-1.5.25.new/client/gtk3/ibusimcontext.c 2021-09-08 14:59:39.992371070 +0200 @@ -1497,7 +1497,10 @@ #if GTK_CHECK_VERSION (3, 98, 4) #elif GTK_CHECK_VERSION (2, 91, 0) - area.y += gdk_window_get_height (ibusimcontext->client_window); + if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { + area.x = 0; + area.y += gdk_window_get_height (ibusimcontext->client_window); + } #else if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) { gint w, h;