Fix IME window position with scale factor greater than 1.0 (#9637)

In #9456 I forgot to handle this...

Release Notes:

- N/A
This commit is contained in:
张小白 2024-03-22 00:31:43 +08:00 committed by GitHub
parent e1d1d575c3
commit d89905fc3d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -689,11 +689,14 @@ impl WindowsWindowInner {
let caret_range = input_handler.selected_text_range().unwrap();
let caret_position = input_handler.bounds_for_range(caret_range).unwrap();
self.input_handler.set(Some(input_handler));
let scale_factor = self.scale_factor.get();
let config = CANDIDATEFORM {
dwStyle: CFS_CANDIDATEPOS,
// logical to physical
ptCurrentPos: POINT {
x: caret_position.origin.x.0 as i32,
y: caret_position.origin.y.0 as i32 + (caret_position.size.height.0 as i32 / 2),
x: (caret_position.origin.x.0 * scale_factor) as i32,
y: (caret_position.origin.y.0 * scale_factor) as i32
+ ((caret_position.size.height.0 * scale_factor) as i32 / 2),
},
..Default::default()
};