Fix the candidate window position of fcitx5 which does't work well with winit's set_ime_cursor_area()
This commit is contained in:
parent
716c75da3f
commit
a9bcb00529
1 changed files with 12 additions and 2 deletions
|
|
@ -322,9 +322,19 @@ where
|
|||
}
|
||||
|
||||
if self.ime_state != Some((cursor, purpose)) {
|
||||
// Specify only the bottom-left position of the cursor on Linux
|
||||
// because fcitx5 doesn't work well with cursor areas of
|
||||
// the top-left position and height.
|
||||
// The candidate window hides the composing text (a.k.a. preedit).
|
||||
let (cursor_y, cursor_height) =
|
||||
if cfg!(not(any(target_os = "windows", target_os = "macos"))) {
|
||||
(cursor.y + cursor.height, 0.0)
|
||||
} else {
|
||||
(cursor.y, cursor.height)
|
||||
};
|
||||
self.raw.set_ime_cursor_area(
|
||||
LogicalPosition::new(cursor.x, cursor.y).into(),
|
||||
LogicalSize::new(cursor.width, cursor.height).into(),
|
||||
LogicalPosition::new(cursor.x, cursor_y).into(),
|
||||
LogicalSize::new(cursor.width, cursor_height).into(),
|
||||
);
|
||||
self.raw.set_ime_purpose(conversion::ime_purpose(purpose));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue