mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 781318 - Autofocus textboxes in prompts. r=mbrubeck
This commit is contained in:
parent
9b290a3be9
commit
b809a63359
@ -23,6 +23,7 @@ import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.InputType;
|
||||
import android.util.Log;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -94,6 +95,7 @@ public class PromptService implements OnClickListener, OnCancelListener, OnItemC
|
||||
private String label = "";
|
||||
private String type = "";
|
||||
private String hint = "";
|
||||
private Boolean autofocus = false;
|
||||
private String value = "";
|
||||
private JSONObject mJSONInput = null;
|
||||
private View view = null;
|
||||
@ -112,6 +114,9 @@ public class PromptService implements OnClickListener, OnCancelListener, OnItemC
|
||||
try {
|
||||
value = aJSONInput.getString("value");
|
||||
} catch(Exception ex) { }
|
||||
try {
|
||||
autofocus = aJSONInput.getBoolean("autofocus");
|
||||
} catch(Exception ex) { }
|
||||
}
|
||||
|
||||
public View getView() throws UnsupportedOperationException {
|
||||
@ -187,6 +192,18 @@ public class PromptService implements OnClickListener, OnCancelListener, OnItemC
|
||||
if (!hint.equals("")) {
|
||||
input.setHint(hint);
|
||||
}
|
||||
|
||||
if (autofocus) {
|
||||
input.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
if (hasFocus) {
|
||||
((InputMethodManager) GeckoApp.mAppContext.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(v, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
input.requestFocus();
|
||||
}
|
||||
|
||||
view = (View)input;
|
||||
} else if (type.equals("menulist")) {
|
||||
Spinner spinner = new Spinner(GeckoApp.mAppContext);
|
||||
|
@ -248,7 +248,7 @@ Prompt.prototype = {
|
||||
},
|
||||
|
||||
nsIPrompt_prompt: function nsIPrompt_prompt(aTitle, aText, aValue, aCheckMsg, aCheckState) {
|
||||
let inputs = [{ type: "textbox", value: aValue.value }];
|
||||
let inputs = [{ type: "textbox", value: aValue.value, autofocus: true }];
|
||||
let data = this.commonPrompt(aTitle, aText, null, aCheckMsg, aCheckState, inputs);
|
||||
|
||||
let ok = data.button == 0;
|
||||
@ -261,7 +261,7 @@ Prompt.prototype = {
|
||||
|
||||
nsIPrompt_promptPassword: function nsIPrompt_promptPassword(
|
||||
aTitle, aText, aPassword, aCheckMsg, aCheckState) {
|
||||
let inputs = [{ type: "password", hint: PromptUtils.getLocaleString("password", "passwdmgr"), value: aPassword.value || "" }];
|
||||
let inputs = [{ type: "password", hint: PromptUtils.getLocaleString("password", "passwdmgr"), value: aPassword.value || "", autofocus: true }];
|
||||
let data = this.commonPrompt(aTitle, aText, null, aCheckMsg, aCheckState, inputs);
|
||||
|
||||
let ok = data.button == 0;
|
||||
@ -274,7 +274,7 @@ Prompt.prototype = {
|
||||
|
||||
nsIPrompt_promptUsernameAndPassword: function nsIPrompt_promptUsernameAndPassword(
|
||||
aTitle, aText, aUsername, aPassword, aCheckMsg, aCheckState) {
|
||||
let inputs = [{ type: "textbox", hint: PromptUtils.getLocaleString("username", "passwdmgr"), value: aUsername.value },
|
||||
let inputs = [{ type: "textbox", hint: PromptUtils.getLocaleString("username", "passwdmgr"), value: aUsername.value, autofocus: true },
|
||||
{ type: "password", hint: PromptUtils.getLocaleString("password", "passwdmgr"), value: aPassword.value }];
|
||||
let data = this.commonPrompt(aTitle, aText, null, aCheckMsg, aCheckState, inputs);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user