From 75d8eca76f5137c079c8efbaa7ef1832a668bec5 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 20 Apr 2013 13:59:07 -0700 Subject: [PATCH] Prefill the OSK when requested to. --- Core/Dialog/PSPOskDialog.cpp | 16 +++++++++------- Core/Dialog/PSPOskDialog.h | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Core/Dialog/PSPOskDialog.cpp b/Core/Dialog/PSPOskDialog.cpp index 97da2541e0..d0b548212f 100755 --- a/Core/Dialog/PSPOskDialog.cpp +++ b/Core/Dialog/PSPOskDialog.cpp @@ -112,7 +112,7 @@ int PSPOskDialog::Init(u32 oskPtr) ConvertUCS2ToUTF8(oskIntext, oskData.intextPtr); ConvertUCS2ToUTF8(oskOuttext, oskData.outtextPtr); - inputChars.clear(); + inputChars = oskIntext.substr(0, FieldMaxLength()); // Eat any keys pressed before the dialog inited. __CtrlReadLatch(); @@ -121,6 +121,12 @@ int PSPOskDialog::Init(u32 oskPtr) return 0; } +u32 PSPOskDialog::FieldMaxLength() +{ + if (oskData.outtextlimit > oskData.outtextlength - 1 || oskData.outtextlimit == 0) + return oskData.outtextlength - 1; + return oskData.outtextlimit; +} void PSPOskDialog::RenderKeyboard() { @@ -130,9 +136,7 @@ void PSPOskDialog::RenderKeyboard() char temp[2]; temp[1] = '\0'; - u32 limit = oskData.outtextlimit; - if (limit > oskData.outtextlength - 1 || limit == 0) - limit = oskData.outtextlength - 1; + u32 limit = FieldMaxLength(); const float keyboardLeftSide = (480.0f - (24.0f * KEYSPERROW)) / 2.0f; float previewLeftSide = (480.0f - (12.0f * limit)) / 2.0f; @@ -178,9 +182,7 @@ int PSPOskDialog::Update() int selectedRow = selectedChar / KEYSPERROW; int selectedExtra = selectedChar % KEYSPERROW; - u32 limit = oskData.outtextlimit; - if (limit > oskData.outtextlength - 1 || limit == 0) - limit = oskData.outtextlength - 1; + u32 limit = FieldMaxLength(); if (status == SCE_UTILITY_STATUS_INITIALIZE) { diff --git a/Core/Dialog/PSPOskDialog.h b/Core/Dialog/PSPOskDialog.h index 5623809eab..8b609f375a 100644 --- a/Core/Dialog/PSPOskDialog.h +++ b/Core/Dialog/PSPOskDialog.h @@ -151,6 +151,7 @@ public: private: void ConvertUCS2ToUTF8(std::string& _string, const u32 em_address); void RenderKeyboard(); + u32 FieldMaxLength(); SceUtilityOskParams *oskParams; SceUtilityOskData oskData;