Report cursor size to InputMethod
Co-authored-by: dcz-self <dcz-self@users.noreply.github.com>
This commit is contained in:
parent
e163333161
commit
d22da7d261
5 changed files with 31 additions and 20 deletions
|
|
@ -172,7 +172,7 @@ where
|
|||
pub renderer: P::Renderer,
|
||||
pub redraw_at: Option<Instant>,
|
||||
preedit: Option<Preedit<P::Renderer>>,
|
||||
ime_state: Option<(Point, input_method::Purpose)>,
|
||||
ime_state: Option<(Rectangle, input_method::Purpose)>,
|
||||
}
|
||||
|
||||
impl<P, C> Window<P, C>
|
||||
|
|
@ -215,11 +215,11 @@ where
|
|||
self.disable_ime();
|
||||
}
|
||||
InputMethod::Enabled {
|
||||
position,
|
||||
cursor,
|
||||
purpose,
|
||||
preedit,
|
||||
} => {
|
||||
self.enable_ime(position, purpose);
|
||||
self.enable_ime(cursor, purpose);
|
||||
|
||||
if let Some(preedit) = preedit {
|
||||
if preedit.content.is_empty() {
|
||||
|
|
@ -229,7 +229,7 @@ where
|
|||
self.preedit.take().unwrap_or_else(Preedit::new);
|
||||
|
||||
overlay.update(
|
||||
position,
|
||||
cursor.position(),
|
||||
&preedit,
|
||||
self.state.background_color(),
|
||||
&self.renderer,
|
||||
|
|
@ -274,19 +274,23 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
fn enable_ime(&mut self, position: Point, purpose: input_method::Purpose) {
|
||||
fn enable_ime(
|
||||
&mut self,
|
||||
cursor: Rectangle,
|
||||
purpose: input_method::Purpose,
|
||||
) {
|
||||
if self.ime_state.is_none() {
|
||||
self.raw.set_ime_allowed(true);
|
||||
}
|
||||
|
||||
if self.ime_state != Some((position, purpose)) {
|
||||
if self.ime_state != Some((cursor, purpose)) {
|
||||
self.raw.set_ime_cursor_area(
|
||||
LogicalPosition::new(position.x, position.y),
|
||||
LogicalSize::new(10, 10), // TODO?
|
||||
LogicalPosition::new(cursor.x, cursor.y),
|
||||
LogicalSize::new(cursor.width, cursor.height),
|
||||
);
|
||||
self.raw.set_ime_purpose(conversion::ime_purpose(purpose));
|
||||
|
||||
self.ime_state = Some((position, purpose));
|
||||
self.ime_state = Some((cursor, purpose));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue