Change to the Recent Apps button behavior on Android 4.X - now it will delete OpenGL context, and freeze the app.
This commit is contained in:
@@ -289,12 +289,19 @@ public class MainActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
public void onWindowFocusChanged (boolean hasFocus) {
|
public void onWindowFocusChanged (boolean hasFocus) {
|
||||||
super.onWindowFocusChanged(hasFocus);
|
super.onWindowFocusChanged(hasFocus);
|
||||||
|
System.out.println("libSDL: onWindowFocusChanged: " + hasFocus + " - sending onPause/onResume");
|
||||||
|
if (hasFocus == false)
|
||||||
|
onPause();
|
||||||
|
else
|
||||||
|
onResume();
|
||||||
|
/*
|
||||||
if (hasFocus == false) {
|
if (hasFocus == false) {
|
||||||
synchronized(textInput) {
|
synchronized(textInput) {
|
||||||
// Send 'SDLK_PAUSE' (to enter pause mode) to native code:
|
// Send 'SDLK_PAUSE' (to enter pause mode) to native code:
|
||||||
DemoRenderer.nativeTextInput( 19, 19 );
|
DemoRenderer.nativeTextInput( 19, 19 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPaused()
|
public boolean isPaused()
|
||||||
@@ -303,7 +310,7 @@ public class MainActivity extends Activity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy()
|
protected void onDestroy()
|
||||||
{
|
{
|
||||||
if( downloader != null )
|
if( downloader != null )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -572,7 +572,7 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
|||||||
}
|
}
|
||||||
public void DrawLogo(GL10 gl)
|
public void DrawLogo(GL10 gl)
|
||||||
{
|
{
|
||||||
System.out.println("libSDL: DrawLogo");
|
// TODO: this not quite works, as it seems
|
||||||
BitmapDrawable bmp = null;
|
BitmapDrawable bmp = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -645,6 +645,7 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
|||||||
private boolean mGlContextLost = false;
|
private boolean mGlContextLost = false;
|
||||||
public boolean mGlSurfaceCreated = false;
|
public boolean mGlSurfaceCreated = false;
|
||||||
public boolean mPaused = false;
|
public boolean mPaused = false;
|
||||||
|
//public boolean mPutToBackground = false;
|
||||||
private boolean mFirstTimeStart = true;
|
private boolean mFirstTimeStart = true;
|
||||||
public int mWidth = 0;
|
public int mWidth = 0;
|
||||||
public int mHeight = 0;
|
public int mHeight = 0;
|
||||||
@@ -699,10 +700,12 @@ class DemoGLSurfaceView extends GLSurfaceView_SDL {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
|
if(mRenderer.mPaused)
|
||||||
|
return;
|
||||||
|
mRenderer.mPaused = true;
|
||||||
if( mRenderer.accelerometer != null ) // For some reason it crashes here often - are we getting this event before initialization?
|
if( mRenderer.accelerometer != null ) // For some reason it crashes here often - are we getting this event before initialization?
|
||||||
mRenderer.accelerometer.stop();
|
mRenderer.accelerometer.stop();
|
||||||
super.onPause();
|
super.onPause();
|
||||||
mRenderer.mPaused = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public boolean isPaused() {
|
public boolean isPaused() {
|
||||||
@@ -711,8 +714,10 @@ class DemoGLSurfaceView extends GLSurfaceView_SDL {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
if(!mRenderer.mPaused)
|
||||||
|
return;
|
||||||
mRenderer.mPaused = false;
|
mRenderer.mPaused = false;
|
||||||
|
super.onResume();
|
||||||
System.out.println("libSDL: DemoGLSurfaceView.onResume(): mRenderer.mGlSurfaceCreated " + mRenderer.mGlSurfaceCreated + " mRenderer.mPaused " + mRenderer.mPaused);
|
System.out.println("libSDL: DemoGLSurfaceView.onResume(): mRenderer.mGlSurfaceCreated " + mRenderer.mGlSurfaceCreated + " mRenderer.mPaused " + mRenderer.mPaused);
|
||||||
if( mRenderer.mGlSurfaceCreated && ! mRenderer.mPaused || Globals.NonBlockingSwapBuffers )
|
if( mRenderer.mGlSurfaceCreated && ! mRenderer.mPaused || Globals.NonBlockingSwapBuffers )
|
||||||
mRenderer.nativeGlContextRecreated();
|
mRenderer.nativeGlContextRecreated();
|
||||||
|
|||||||
Reference in New Issue
Block a user