mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	Merge pull request #41550 from godotengine/revert-40671-virtual-keyboard-height-fix
Revert "Fix virtual keyboard height regression"
This commit is contained in:
		
						commit
						c59e9399e7
					
				
					 2 changed files with 7 additions and 43 deletions
				
			
		|  | @ -70,7 +70,6 @@ import android.os.VibrationEffect; | |||
| import android.os.Vibrator; | ||||
| import android.provider.Settings.Secure; | ||||
| import android.view.Display; | ||||
| import android.view.Gravity; | ||||
| import android.view.KeyEvent; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.MotionEvent; | ||||
|  | @ -83,7 +82,6 @@ import android.view.Window; | |||
| import android.view.WindowManager; | ||||
| import android.widget.Button; | ||||
| import android.widget.FrameLayout; | ||||
| import android.widget.PopupWindow; | ||||
| import android.widget.ProgressBar; | ||||
| import android.widget.TextView; | ||||
| 
 | ||||
|  | @ -165,8 +163,6 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC | |||
| 	public GodotRenderView mRenderView; | ||||
| 	private boolean godot_initialized = false; | ||||
| 
 | ||||
| 	private PopupWindow mKeyboardWindow; | ||||
| 
 | ||||
| 	private SensorManager mSensorManager; | ||||
| 	private Sensor mAccelerometer; | ||||
| 	private Sensor mGravity; | ||||
|  | @ -223,23 +219,11 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC | |||
| 		containerLayout = new FrameLayout(activity); | ||||
| 		containerLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); | ||||
| 
 | ||||
| 		// Create a popup window with an invisible layout for the virtual keyboard, | ||||
| 		// so the view can be resized to get the vk height without resizing the main godot view. | ||||
| 		final FrameLayout keyboardLayout = new FrameLayout(activity); | ||||
| 		keyboardLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); | ||||
| 		keyboardLayout.setVisibility(View.INVISIBLE); | ||||
| 		mKeyboardWindow = new PopupWindow(keyboardLayout, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); | ||||
| 		mKeyboardWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); | ||||
| 		mKeyboardWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); | ||||
| 		mKeyboardWindow.setFocusable(true); // for the text edit to work | ||||
| 		mKeyboardWindow.setTouchable(false); // inputs need to go through | ||||
| 
 | ||||
| 		// GodotEditText layout | ||||
| 		GodotEditText editText = new GodotEditText(activity); | ||||
| 		editText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); | ||||
| 		editText.setKeyboardView(keyboardLayout); | ||||
| 		// ...add to keyboard layout | ||||
| 		keyboardLayout.addView(editText); | ||||
| 		editText.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); | ||||
| 		// ...add to FrameLayout | ||||
| 		containerLayout.addView(editText); | ||||
| 
 | ||||
| 		GodotLib.setup(command_line); | ||||
| 
 | ||||
|  | @ -256,13 +240,13 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC | |||
| 		editText.setView(mRenderView); | ||||
| 		io.setEdit(editText); | ||||
| 
 | ||||
| 		keyboardLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { | ||||
| 		view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { | ||||
| 			@Override | ||||
| 			public void onGlobalLayout() { | ||||
| 				Point fullSize = new Point(); | ||||
| 				activity.getWindowManager().getDefaultDisplay().getSize(fullSize); | ||||
| 				Rect gameSize = new Rect(); | ||||
| 				mKeyboardWindow.getContentView().getWindowVisibleDisplayFrame(gameSize); | ||||
| 				mRenderView.getView().getWindowVisibleDisplayFrame(gameSize); | ||||
| 
 | ||||
| 				final int keyboardHeight = fullSize.y - gameSize.bottom; | ||||
| 				GodotLib.setVirtualKeyboardHeight(keyboardHeight); | ||||
|  | @ -618,22 +602,8 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC | |||
| 		return containerLayout; | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void onStart() { | ||||
| 		super.onStart(); | ||||
| 
 | ||||
| 		mRenderView.getView().post(new Runnable() { | ||||
| 			@Override | ||||
| 			public void run() { | ||||
| 				mKeyboardWindow.showAtLocation(getActivity().getWindow().getDecorView(), Gravity.NO_GRAVITY, 0, 0); | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void onDestroy() { | ||||
| 		mKeyboardWindow.dismiss(); | ||||
| 
 | ||||
| 		for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) { | ||||
| 			plugin.onMainDestroy(); | ||||
| 		} | ||||
|  |  | |||
|  | @ -39,7 +39,6 @@ import android.text.InputFilter; | |||
| import android.text.InputType; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.KeyEvent; | ||||
| import android.view.View; | ||||
| import android.view.inputmethod.EditorInfo; | ||||
| import android.view.inputmethod.InputMethodManager; | ||||
| import android.widget.EditText; | ||||
|  | @ -57,7 +56,6 @@ public class GodotEditText extends EditText { | |||
| 	// Fields | ||||
| 	// =========================================================== | ||||
| 	private GodotRenderView mRenderView; | ||||
| 	private View mKeyboardView; | ||||
| 	private GodotTextInputWrapper mInputWrapper; | ||||
| 	private EditHandler sHandler = new EditHandler(this); | ||||
| 	private String mOriginText; | ||||
|  | @ -131,7 +129,7 @@ public class GodotEditText extends EditText { | |||
| 
 | ||||
| 					edit.mInputWrapper.setOriginText(text); | ||||
| 					edit.addTextChangedListener(edit.mInputWrapper); | ||||
| 					final InputMethodManager imm = (InputMethodManager)mKeyboardView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); | ||||
| 					final InputMethodManager imm = (InputMethodManager)mRenderView.getView().getContext().getSystemService(Context.INPUT_METHOD_SERVICE); | ||||
| 					imm.showSoftInput(edit, 0); | ||||
| 				} | ||||
| 			} break; | ||||
|  | @ -140,7 +138,7 @@ public class GodotEditText extends EditText { | |||
| 				GodotEditText edit = (GodotEditText)msg.obj; | ||||
| 
 | ||||
| 				edit.removeTextChangedListener(mInputWrapper); | ||||
| 				final InputMethodManager imm = (InputMethodManager)mKeyboardView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); | ||||
| 				final InputMethodManager imm = (InputMethodManager)mRenderView.getView().getContext().getSystemService(Context.INPUT_METHOD_SERVICE); | ||||
| 				imm.hideSoftInputFromWindow(edit.getWindowToken(), 0); | ||||
| 				edit.mRenderView.getView().requestFocus(); | ||||
| 			} break; | ||||
|  | @ -164,10 +162,6 @@ public class GodotEditText extends EditText { | |||
| 		view.getView().requestFocus(); | ||||
| 	} | ||||
| 
 | ||||
| 	public void setKeyboardView(final View keyboardView) { | ||||
| 		mKeyboardView = keyboardView; | ||||
| 	} | ||||
| 
 | ||||
| 	// =========================================================== | ||||
| 	// Methods for/from SuperClass/Interfaces | ||||
| 	// =========================================================== | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Rémi Verschelde
						Rémi Verschelde