Hotkeys malfunction after leaving text field with no input using IME(Chinese/Japanese/Korean) #93421
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
8 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#93421
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows-10-10.0.19044-SP0 64 Bits
Graphics card: NVIDIA GeForce GTX 980/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 496.76
Blender Version
Broken: version: 3.0.0 Release Candidate, branch: master, commit date: 2021-11-25 17:24, hash:
2fb8c6805a
Worked: Unknow
Short description of error
Using IME(Input method editor) like Chinese/Japanese/Korean IME, activate a text field then go back to 3D viewport while inputing nothing will make some hotkeys malfunction.
Exact steps for others to reproduce the error
Notes:
Added subscriber: @PrettyFireNOI7
#92700 was marked as duplicate of this issue
Just in case, this is how to install "Microsoft Pinyin" on Windows 10:
Added subscriber: @NXSK
I can reproduce this. It seems blender can't switch back to IME's English input mode automatically.
Added subscriber: @sntulix
Thank you for confirm on previous task and comming new task.
note:
A behavior that IME don't switch to English mode is because of no event is happen. In other that IME switch to English mode is because of IME event is happen and Blender's implementation of event handling.
I don't know if the IME's mode swiching automatically when deactivating a text box was intended.
I don't know Blender has a event happen when a text box deactivating as alternative IME event for making IME Off.
D11929's implementation has affected handling a input by IME.
New Microsoft IME (with duplicating first character (D11929) and some other bugs) began from Windows10 version 2004. Microsoft recommended to temporarily use old Microsoft IME temporary and has been fixed its. (but D11929's work was needed.)
I see that one user in Japanese hoping that hotkeys are functional with IME On have appeared.
@sntulix Thank you for elaboration. I have seen D11929 and to me it's an amazing commit that fix a long standing issue in Blender.
According to your notes, it looks like Blender is lacking a specific event for this situation (if I comprehend correctly).
In my opinion, the auto-switching feature should be intended and when doing IME mode auto-switching, clear the input cache in IME first is aslo reasonable.If user is in 3D viewport or other area except text field, keys that are inputed would mostly be used to trigger operations rather than typing words.
Simultaneously having hotkeys functional and IME handling is a bit confuse to me. I would like to know more about this.
Thanks for the effort on IME problems.
Hi.
I found Blender calls a IME End function when exit a text edit box by clicking. But it doesn't call the function when no IME input currently.
It's below:
So, I tested a modifing that ui_textedit_end() calls ui_textedit_ime_end() with no IME input too.
Because of this modiy, "G" hotkey is functional after activating a text edit box and toggling IME to On (I confirm with Japanese.) and press no key and click 3D viewport.
And it seems #WITH_INPUT_IME is MS-Windows only.
The IME end function call tree when clicking 3D viewport with a text edit box activating.
This may be need more test. But this malfunction may be resolved by knowing Blender's event handling internal.
@PrettyFireNOI7
I am so glad to hear that.
I though too. But it is found the calling handler.
And I found Blender calls button_activate_exit() (source: source\blender\editors\interface\interface_handlers.c) when mouse cursor goes out from such a form control (i.e. text edit box etc). I think this may be useful for your opnion below.
I don't talk with the user yet.
But he says (machine translationing from Japanese):
Thanks, though I compeletely know nothing about the codes.
Hi @PrettyFireNOI7
New IME is the road on fixing now. So I don't know the behavior is a bug or a environment specific.
But my ideal affected from the user's saying is that a key code inputted becomes Blender hot key or IME string without changing IME mode by where mouse cursor's position is on. Although, it's hard to propose to people who don't use IME, and the range of influence on the source of changes seems to be complicated, so I'm wondering if it can be realized as an add-on.
I confirmed with Microsoft IME Chinese pinyin that IME end when clicking 3D viewport after no inputting to a text edit box.
I built a binary with debug print (release build).
https://www.futuregadget.com/file/Blender-3.1.0-alpha-master-20211124-for_T93421-debug_print.zip
I also tested Korean and Janpanese.
Everything is good except Japanese's auto-switching is not funtional unless manually switch the mode once.
Reproduce steps :
Japanese auto-switching issue is also in 3.0 and I find {key Shift} is not the hotkey to switch Japanese IME mode.
For the other two IME, auto-switching is also functional when switch to other programs.
Thank you for your work @PrettyFireNOI7
In Microsoft Japanese IME, solo Shift key is not a hotkey.
note: About Microsoft IME Shortcut keys:
By the way, I may have misleaded, but I don't test Japanese IME's auto-swithing now.
Because it was not added a code switching IME mode of MS-Windows side in D11929's fixing.
Hi.
Thank you for your concern. @PrettyFireNOI7
I decided to enable that hotkeys functional with IME On.
It becomes be back to current LTS version's behavior ( as same as Blender v2.9x, and 3.0 before D11929).
So I don't do the approach that it calls ui_textedit_ime_end everytime after deactivating a text edit in a previous day. Because it's doesn't go back with the behavior so far.
The approach that making hotkeys functional with IME-On I think is that it toggles enable/disable of Blender's key event forwarding (cause of this malfunction) to MS-Windows when Blender's event "ui_textedit_begin" and "ui_textedit_end". And IME's auto-end by Blender after deactivating a text box (calling ui_textedit_ime_end()) is as it is.
And, this approach becomes a solution for this malfunction.
First, I will make a patch and test.
Added subscriber: @lictex_1
Hi.
I built a binary that I'm working on.
https://www.futuregadget.com/file/Blender-master-3.1.0-#93421-working_on.zip
It is fixed the malfunction.
Would you test this, please?
Note:
The Behavior per blender version:
click a text edit, switch to IME On (manually or automatically), inputting some letters, click 3D viewport:
click a text edit, switch to IME On (manually or automatically), click 3D viewport:
2.92: After above, IME is not changed and hotkey is functional (IME word conversion list will be popup, inputting is continue on IME).
3.0 (Released): After above, IME is not change and some hotkey is NOT functional (IME word conversion list will be popup, inputting is continue on IME).
The Behavior of a fixing binary that I'm at working on:
click a text edit, switch to IME On (manually or automatically), inputting some letters, click 3D viewport:
click a text edit, switch to IME On (manually or automatically), click 3D viewport:
@sntulix Hi, I have tested the new build in Chinese, Korean, Japanese.
So far so good.
Hi.
I comfirmed it. I don't know yet. It may be triaged at #93626.
I didn't know it :)
I see.
note:
IME's mode automatic restore work at numeric edit text too. (The case: When users's manupilation goes to numeric edit text from string edit text with IME enabled.) It may be not necessary sometimes by a workflow. I think it is useful if it's automatically disabled in the numeric edit text.
By the way, When I learn old culture crafts and architectures using Blender, I think it is useful for learning, if Blender has the unit that the language has. (for example: a Japanese Culture Unit "1尺" is 1 meter ÷ 3.3.)
O.K.
Didn't notice that but I agree. Since only numbers will be inputted in numeric text editing.
Added subscriber: @iss
Hi @iss.
Thank you for watching the task about IME.
By the way, I posted D13551 without closing here, can I close here?
@PrettyFireNOI7
I thinked again, I notice that some user use IME as a snippet tool with dictionary. So numeric text edit is good without modify, unless adding switching IME mode auto-swtching function at Blender preference.
@sntulix
Got it.
And I don't know if I should, I gathered some reports that I know which are about IME problem. In my opinoin, they could be closed as resolved: #80532 #91103 #91355 .
Changed status from 'Needs Triage' to: 'Confirmed'
Did not notice this is not confirmed.. But can reproduce.
Added subscriber: @Leroy-Xie
Added subscriber: @ziweidao