[PR #3973] Add IME keyboard layout and panel metrics support #3838

Open
opened 2026-02-27 22:05:10 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/3973
Author: @w1naenator
Created: 1/29/2026
Status: 🔄 Open

Base: mainHead: ime-fixes-again


📝 Commits (9)

  • 11484f6 Add IME keyboard layout and panel metrics support
  • 800cdcd fix for Maxos Linux builds
  • 1016a6f Merge branch 'main' into ime-fixes-again
  • be4c29a Merge branch 'main' into ime-fixes-again
  • fef9912 Merge branch 'main' into ime-fixes-again
  • 36b08dc Merge branch 'main' into ime-fixes-again
  • b2c73ba Merge branch 'main' into ime-fixes-again
  • 74c6a40 Merge branch 'main' into ime-fixes-again
  • eaf5a04 Merge branch 'main' into ime-fixes-again

📊 Changes

15 files changed (+2203 additions, -487 deletions)

View changed files

📝 CMakeLists.txt (+2 -0)
📝 src/common/config.cpp (+23 -0)
📝 src/common/config.h (+4 -0)
📝 src/core/libraries/ime/ime.cpp (+41 -44)
📝 src/core/libraries/ime/ime.h (+8 -6)
📝 src/core/libraries/ime/ime_common.h (+37 -0)
📝 src/core/libraries/ime/ime_dialog.cpp (+1129 -314)
📝 src/core/libraries/ime/ime_dialog.h (+9 -7)
📝 src/core/libraries/ime/ime_dialog_ui.cpp (+480 -67)
📝 src/core/libraries/ime/ime_dialog_ui.h (+23 -3)
src/core/libraries/ime/ime_kb_layout.cpp (+237 -0)
src/core/libraries/ime/ime_kb_layout.h (+89 -0)
📝 src/core/libraries/ime/ime_ui.cpp (+115 -44)
📝 src/core/libraries/ime/ime_ui.h (+4 -2)
📝 src/core/libraries/kernel/kernel.h (+2 -0)

📄 Description

  • Introduced new header and implementation files for IME keyboard layout handling.
  • Added structures for viewport metrics, keyboard grid layout, and drawing parameters.
  • Implemented functions to compute viewport and panel metrics for the IME dialog.
  • Enhanced the IME dialog UI to utilize the new keyboard layout and metrics.
  • Updated input handling to support new keyboard interactions and layout adjustments.
  • Added caret management and text normalization features in the IME dialog state.
  • Improved window positioning logic to accommodate different screen resolutions.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/shadps4-emu/shadPS4/pull/3973 **Author:** [@w1naenator](https://github.com/w1naenator) **Created:** 1/29/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `ime-fixes-again` --- ### 📝 Commits (9) - [`11484f6`](https://github.com/shadps4-emu/shadPS4/commit/11484f6e3cfe365d47febc988849e4dfa3c3057a) Add IME keyboard layout and panel metrics support - [`800cdcd`](https://github.com/shadps4-emu/shadPS4/commit/800cdcdfe0bcb4acf1d65f37df6108c1eac35c8e) fix for Maxos Linux builds - [`1016a6f`](https://github.com/shadps4-emu/shadPS4/commit/1016a6faa7052611de2b38a65fe48cc7978f2d3a) Merge branch 'main' into ime-fixes-again - [`be4c29a`](https://github.com/shadps4-emu/shadPS4/commit/be4c29a9363018553b6cc1b9bc3bd286bfadf7cf) Merge branch 'main' into ime-fixes-again - [`fef9912`](https://github.com/shadps4-emu/shadPS4/commit/fef9912088f1657ee28580b71a60468c15036e83) Merge branch 'main' into ime-fixes-again - [`36b08dc`](https://github.com/shadps4-emu/shadPS4/commit/36b08dc81ead860f1a8fe66ad17abb9564c03f18) Merge branch 'main' into ime-fixes-again - [`b2c73ba`](https://github.com/shadps4-emu/shadPS4/commit/b2c73badaa54a5fdd943493430b89ce8c11b6889) Merge branch 'main' into ime-fixes-again - [`74c6a40`](https://github.com/shadps4-emu/shadPS4/commit/74c6a407373f7ef4443a5d3e8eab08059cefa205) Merge branch 'main' into ime-fixes-again - [`eaf5a04`](https://github.com/shadps4-emu/shadPS4/commit/eaf5a0488bcffdf51ab37160243111ddb192bbbc) Merge branch 'main' into ime-fixes-again ### 📊 Changes **15 files changed** (+2203 additions, -487 deletions) <details> <summary>View changed files</summary> 📝 `CMakeLists.txt` (+2 -0) 📝 `src/common/config.cpp` (+23 -0) 📝 `src/common/config.h` (+4 -0) 📝 `src/core/libraries/ime/ime.cpp` (+41 -44) 📝 `src/core/libraries/ime/ime.h` (+8 -6) 📝 `src/core/libraries/ime/ime_common.h` (+37 -0) 📝 `src/core/libraries/ime/ime_dialog.cpp` (+1129 -314) 📝 `src/core/libraries/ime/ime_dialog.h` (+9 -7) 📝 `src/core/libraries/ime/ime_dialog_ui.cpp` (+480 -67) 📝 `src/core/libraries/ime/ime_dialog_ui.h` (+23 -3) ➕ `src/core/libraries/ime/ime_kb_layout.cpp` (+237 -0) ➕ `src/core/libraries/ime/ime_kb_layout.h` (+89 -0) 📝 `src/core/libraries/ime/ime_ui.cpp` (+115 -44) 📝 `src/core/libraries/ime/ime_ui.h` (+4 -2) 📝 `src/core/libraries/kernel/kernel.h` (+2 -0) </details> ### 📄 Description - Introduced new header and implementation files for IME keyboard layout handling. - Added structures for viewport metrics, keyboard grid layout, and drawing parameters. - Implemented functions to compute viewport and panel metrics for the IME dialog. - Enhanced the IME dialog UI to utilize the new keyboard layout and metrics. - Updated input handling to support new keyboard interactions and layout adjustments. - Added caret management and text normalization features in the IME dialog state. - Improved window positioning logic to accommodate different screen resolutions. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#3838
No description provided.