-
-
Notifications
You must be signed in to change notification settings - Fork 22k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement on-the-spot IME support for X11 #53682
Conversation
// Force on-the-spot for the over-the-spot style. | ||
if ((xim_style & XIMPreeditPosition) != 0) { | ||
xim_style &= ~XIMPreeditPosition; | ||
xim_style |= XIMPreeditCallbacks; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is supposed to work.
The list of supported XIMStyles
did not contain any with XIMPreeditCallbacks
for me, I was only getting XIMPreeditPosition
which is supposed to be over-the-spot
(not on-the-spot
), forcing it seems to work.
9dbb93c
to
2525b0f
Compare
The I don't know how I'm supposed to update the position of the suggestion list when using godot/platform/linuxbsd/display_server_x11.cpp Lines 1818 to 1830 in 0eed8d8
|
Thanks for your work on this, any idea when this may finally get reviewed so it can be added to the next update? |
The suggestion list still shows in the wrong position and I could not figure out why, so until that's resolved this won't be merged since it offers no benefit over the current implementation that uses If anyone more knowledgeable about X11 knows what I'm doing wrong I'd really appreciate the help. |
I'm not familiar with X Input Method so I've been investigating for a few days, But unfortunately XIM may not have a way to specify a candidate position when using In SDL2, the candidates are correctly displayed (at least in my Fcitx environment) at the position specified by |
I've been looking up some info about this, but it is a quite a bit above my level. I hope somebody will be able to do this by the time the beta's start rolling out. |
If it's displayed under the window, I guess we can try adding an invisible sub-window as a host for IME, add use its position to move candidate window. |
I've tried to create a sub_window to use for IME but then the sub_window steals the focus and I can't give back focus to the main window because it seems when I try to focus back on the main window the LineEdit still has the focus and reopens the IME sub_window, maybe I'm doing it wrong. For now, I rebased but I'm marking this PR as a draft and moving the milestone to 4.x since I don't think I'll finish this for 4.0. But if anyone wants to take over and implement this sooner then go ahead. |
I may give this a try, not certain if I can succeed or not. |
Superseded by #70052 |
Implements the linux part of #53658
Currently the area with the options is rendered in the wrong position:
