public CustomProgressBar bootingProgress;
public ScreenShotDialog screenShotDialog;
- protected SocketCommunicator communicator;
+ public SocketCommunicator communicator;
private ShellListener shellListener;
private MenuDetectListener shellMenuDetectListener;
this.displayBounds = bounds;
}
- public synchronized boolean isUpdateDisplayBounds() {
+ public synchronized boolean isNeedToUpdateDisplay() {
return updateDisplayBounds;
}
- public synchronized void setUpdateDisplayBounds(boolean needUpdate) {
+ public synchronized void setNeedToUpdateDisplay(boolean needUpdate) {
this.updateDisplayBounds = needUpdate;
}
import org.tizen.emulator.skin.EmulatorSkin;
import org.tizen.emulator.skin.EmulatorSkinState;
import org.tizen.emulator.skin.comm.ICommunicator.RotationInfo;
+import org.tizen.emulator.skin.comm.ICommunicator.SendCommand;
+import org.tizen.emulator.skin.comm.sock.data.DisplayStateData;
import org.tizen.emulator.skin.config.EmulatorConfig;
import org.tizen.emulator.skin.config.EmulatorConfig.ArgsConstants;
import org.tizen.emulator.skin.config.EmulatorConfig.SkinPropertiesConstants;
/* custom window shape */
trimPatchedShell(shell, currentState.getCurrentImage());
+ currentState.setNeedToUpdateDisplay(true);
shell.redraw();
}
shellPaintListener = new PaintListener() {
@Override
public void paintControl(final PaintEvent e) {
+ if (currentState.isNeedToUpdateDisplay() == true) {
+ currentState.setNeedToUpdateDisplay(false);
+
+ /* Let's do one more update for sdl display surface
+ while skipping of framebuffer drawing */
+ DisplayStateData lcdStateData = new DisplayStateData(
+ currentState.getCurrentScale(), currentState.getCurrentRotationId());
+ skin.communicator.sendToQEMU(SendCommand.CHANGE_LCD_STATE, lcdStateData);
+ }
+
/* general shell does not support native transparency,
* so draw image with GC. */
if (currentState.getCurrentImage() != null) {
import org.tizen.emulator.skin.comm.ICommunicator.KeyEventType;
import org.tizen.emulator.skin.comm.ICommunicator.SendCommand;
import org.tizen.emulator.skin.comm.sock.SocketCommunicator;
+import org.tizen.emulator.skin.comm.sock.data.DisplayStateData;
import org.tizen.emulator.skin.comm.sock.data.KeyEventData;
import org.tizen.emulator.skin.config.EmulatorConfig;
import org.tizen.emulator.skin.config.EmulatorConfig.ArgsConstants;
logger.info("lcd bounds : " + lcdBounds);
currentState.setDisplayBounds(lcdBounds);
- currentState.setUpdateDisplayBounds(true);
- //lcdCanvas.setBounds(lcdBounds);
/* arrange the skin image */
Image tempImage = null;
/* custom window shape */
SkinUtil.trimShell(shell, currentState.getCurrentImage());
+ currentState.setNeedToUpdateDisplay(true);
shell.redraw();
}
shellPaintListener = new PaintListener() {
@Override
public void paintControl(final PaintEvent e) {
- if (currentState.isUpdateDisplayBounds() == true) {
- currentState.setUpdateDisplayBounds(false);
+ if (currentState.isNeedToUpdateDisplay() == true) {
+ currentState.setNeedToUpdateDisplay(false);
lcdCanvas.setBounds(currentState.getDisplayBounds());
+
+ /* Let's do one more update for sdl display surface
+ while skipping of framebuffer drawing */
+ DisplayStateData lcdStateData = new DisplayStateData(
+ currentState.getCurrentScale(), currentState.getCurrentRotationId());
+ skin.communicator.sendToQEMU(SendCommand.CHANGE_LCD_STATE, lcdStateData);
}
/* general shell does not support native transparency,