*/
package jexer;
-import java.awt.image.BufferedImage;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.io.IOException;
return;
}
- if (mouse.isMouseWheelUp()) {
- verticalDecrement();
- return;
- }
- if (mouse.isMouseWheelDown()) {
- verticalIncrement();
- return;
+ // If the emulator is tracking mouse buttons, it needs to see wheel
+ // events.
+ if (emulator.getMouseProtocol() == ECMA48.MouseProtocol.OFF) {
+ if (mouse.isMouseWheelUp()) {
+ verticalDecrement();
+ return;
+ }
+ if (mouse.isMouseWheelDown()) {
+ verticalIncrement();
+ return;
+ }
}
if (mouseOnEmulator(mouse)) {
synchronized (emulator) {
// Add shortcut text
newStatusBar(i18n.getString("statusBarRunning"));
+
+ // Pass the correct text cell width/height to the emulator
+ emulator.setTextWidth(getScreen().getTextWidth());
+ emulator.setTextHeight(getScreen().getTextHeight());
}
/**
private void putDoubleWidthCharXY(final DisplayLine line, final int x,
final int y, final Cell cell) {
- int textWidth = 16;
- int textHeight = 20;
+ int textWidth = getScreen().getTextWidth();
+ int textHeight = getScreen().getTextHeight();
boolean cursorBlinkVisible = true;
if (getScreen() instanceof SwingTerminal) {
SwingTerminal terminal = (SwingTerminal) getScreen();
-
- textWidth = terminal.getTextWidth();
- textHeight = terminal.getTextHeight();
cursorBlinkVisible = terminal.getCursorBlinkVisible();
} else if (getScreen() instanceof ECMA48Terminal) {
ECMA48Terminal terminal = (ECMA48Terminal) getScreen();
- textWidth = terminal.getTextWidth();
- textHeight = terminal.getTextHeight();
+ if (!terminal.hasSixel()) {
+ // The backend does not have sixel support, draw this as text
+ // and bail out.
+ putCharXY(x, y, cell);
+ putCharXY(x + 1, y, ' ', cell);
+ return;
+ }
cursorBlinkVisible = blinkState;
} else {
// We don't know how to dray glyphs to this screen, draw them as