Browse Source

Fixed bug 3065 - Screen is flickering during closing on-screen keyboard on Android

Deve

When I'm trying to close on-screen keyboard using SDL_StopTextInput() function by touching the screen (SDL_FINGERUP or SDL_FINGERDOWN event), the screen is flickering. It is white for a while.

Note that it usually works without problems when I use phone's "back" button. I noticed flickering occasionally too, but not that often.

Philipp Wiesemann

The attached patch maybe fixes the flicker but not the actual fault causing it.
Sam Lantinga 8 years ago
parent
commit
4e6f219941
1 changed files with 4 additions and 1 deletions
  1. 4 1
      android-project/src/org/libsdl/app/SDLActivity.java

+ 4 - 1
android-project/src/org/libsdl/app/SDLActivity.java

@@ -369,7 +369,10 @@ public class SDLActivity extends Activity {
                 break;
             case COMMAND_TEXTEDIT_HIDE:
                 if (mTextEdit != null) {
-                    mTextEdit.setVisibility(View.GONE);
+                    // Note: On some devices setting view to GONE creates a flicker in landscape.
+                    // Setting the View's sizes to 0 is similar to GONE but without the flicker.
+                    // The sizes will be set to useful values when the keyboard is shown again.
+                    mTextEdit.setLayoutParams(new AbsoluteLayout.LayoutParams(0, 0, 0, 0));
 
                     InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
                     imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0);