The layout rendering of different cases is not the same, and it is distinguished by |flag.uppercase| we passed to IMERender.draw() function. In fact, this is only matters for layout definitions where |secondLayout| is true. In this bug, I propose we merge the different rendering (a <div class="keyboard-type-container">) of different cases, that should allow us to remove special |secondLayout| handling in RenderingManager, and prevent |showUpperCase| from being needed in VisualHighlightManager. This has a dependency to bug 985853 because of bug 985853 comment 10. If we keep using different set of DOM elements to render upper/lower case layouts, bug 985853 will not work in layout definitions where |secondLayout| is true.
Comment on attachment 8508773 [details] [review] mozilla-b2g:master PR#25374 Rudy, John, could you review this? I think having one of you to review the patch would be enough. With this patch I removed all |secondLayout| handling in business logic, and pass the responsibility to view, since this property affects representation only. Get rid of that simplifies business logic and avoid yet another special handling in bug 985853. It is undesirable to put more code into render.js, but I want to block bug 985853 as soon as possible so I choose not to spend time factoring out KeyView etc. here. I also didn't pay attention to arguments passed to buildKey() because I want to keep the change at the minim. Thanks.
Attachment #8508773 - Flags: review?(jlu) → feedback+
Comment on attachment 8508773 [details] [review] mozilla-b2g:master PR#25374 After some experimentation, it appears that my claim on comment 3 is incorrect. It's an issue that arises from Japanese IME's implementation for candidate suggestion and is observable in master if reproduced with correct timing.
Attachment #8508773 - Flags: feedback+ → review+
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.