diff --git a/FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java b/FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java index 984543e8..4e5bf70f 100644 --- a/FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java +++ b/FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java @@ -6,6 +6,7 @@ import android.os.Bundle; import android.util.Log; import android.view.Surface; import android.view.TextureView; +import android.view.View; import android.widget.EditText; import android.widget.ImageView; @@ -33,8 +34,8 @@ public class JVMActivity extends FCLActivity implements TextureView.SurfaceTextu private static FCLBridge fclBridge; //only for test version - private MioMouseKeyboard mioMouseKeyboard; - private ImageView mouse; + public MioMouseKeyboard mioMouseKeyboard; + public ImageView mouse; private EditText input; public static void setFClBridge(FCLBridge fclBridge, ControllerType controllerType) { @@ -53,7 +54,7 @@ public class JVMActivity extends FCLActivity implements TextureView.SurfaceTextu } controller = controllerType == ControllerType.GAME ? new GameController() : new JavaGuiController(); - + controller.setup(this); textureView = findViewById(R.id.texture_view); textureView.setSurfaceTextureListener(this); mouse=findViewById(R.id.mouse); @@ -88,6 +89,15 @@ public class JVMActivity extends FCLActivity implements TextureView.SurfaceTextu public void onBackPressed() { if(getResources().getConfiguration().keyboard!= Configuration.KEYBOARD_NOKEYS) { mioMouseKeyboard.catchPointer(); + MioMouseKeyboard.baseX=0; + MioMouseKeyboard.baseY=0; +// if (FCLBridge.cursorMode==FCLBridge.CursorEnabled) { +// mouse.setVisibility(View.INVISIBLE); +// mioMouseKeyboard.releasePointer(); +// } else { +// mouse.setVisibility(View.VISIBLE); +// mioMouseKeyboard.catchPointer(); +// } } } } diff --git a/FCL/src/main/java/com/tungsten/fcl/control/GameController.java b/FCL/src/main/java/com/tungsten/fcl/control/GameController.java index acfe0ff2..08de6611 100644 --- a/FCL/src/main/java/com/tungsten/fcl/control/GameController.java +++ b/FCL/src/main/java/com/tungsten/fcl/control/GameController.java @@ -2,16 +2,19 @@ package com.tungsten.fcl.control; import android.content.Intent; import android.view.View; +import android.widget.ImageView; import com.tungsten.fcl.activity.JVMActivity; import com.tungsten.fcl.activity.JVMCrashActivity; import com.tungsten.fclauncher.FCLPath; +import com.tungsten.fclauncher.bridge.FCLBridge; import com.tungsten.fclauncher.bridge.FCLBridgeCallback; import com.tungsten.fclcore.util.Logging; import java.util.logging.Level; public class GameController implements Controller { + private JVMActivity activity; @Override public View getLayout() { @@ -20,19 +23,30 @@ public class GameController implements Controller { @Override public void setup(JVMActivity activity) { - + this.activity=activity; } @Override public FCLBridgeCallback getCallbackBridge() { - return new FCLProcessListener(); + return new FCLProcessListener(activity); } static class FCLProcessListener implements FCLBridgeCallback { + private JVMActivity activity; + FCLProcessListener(JVMActivity activity){ + this.activity=activity; + } @Override public void onCursorModeChange(int mode) { // TODO: Handle mouse event + activity.mouse.post(()->{ + if (mode== FCLBridge.CursorEnabled) { + activity.mouse.setVisibility(View.VISIBLE); + } else { + activity.mouse.setVisibility(View.INVISIBLE); + } + }); } @Override diff --git a/FCL/src/main/java/com/tungsten/fcl/onlytest/MioMouseKeyboard.java b/FCL/src/main/java/com/tungsten/fcl/onlytest/MioMouseKeyboard.java index db64948b..4d7e8e10 100644 --- a/FCL/src/main/java/com/tungsten/fcl/onlytest/MioMouseKeyboard.java +++ b/FCL/src/main/java/com/tungsten/fcl/onlytest/MioMouseKeyboard.java @@ -29,7 +29,7 @@ public class MioMouseKeyboard { private FCLBridge fclBridge; - private int baseX,baseY; + public static int baseX,baseY; public MioMouseKeyboard(JVMActivity context, View mouse, View focusView){ this.context=context; this.mouseCursor=mouse; diff --git a/FCLauncher/src/main/java/com/tungsten/fclauncher/bridge/FCLBridge.java b/FCLauncher/src/main/java/com/tungsten/fclauncher/bridge/FCLBridge.java index 897edd9c..c6e0432b 100644 --- a/FCLauncher/src/main/java/com/tungsten/fclauncher/bridge/FCLBridge.java +++ b/FCLauncher/src/main/java/com/tungsten/fclauncher/bridge/FCLBridge.java @@ -59,6 +59,8 @@ public class FCLBridge implements Serializable { private boolean isLogPipeReady=false; private WeakReference logReceiver; + public static int cursorMode=CursorEnabled; + public FCLBridge(FCLBridgeCallback callback) { this.callback = callback; } @@ -138,6 +140,7 @@ public class FCLBridge implements Serializable { // FCLBridge callbacks public void setCursorMode(int mode) { + cursorMode=mode; if (callback != null) { callback.onCursorModeChange(mode); }