git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor, sixel performance
[nikiroo-utils.git]
/
src
/
jexer
/
TTerminalWindow.java
diff --git
a/src/jexer/TTerminalWindow.java
b/src/jexer/TTerminalWindow.java
index b36e86b62dfca47b0d6f95864f19c3b6b1d1cf15..d703b676007be0d256bc889bd1fa885addfc539c 100644
(file)
--- a/
src/jexer/TTerminalWindow.java
+++ b/
src/jexer/TTerminalWindow.java
@@
-28,10
+28,10
@@
*/
package jexer;
*/
package jexer;
-import java.awt.image.BufferedImage;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
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;
import java.io.InputStream;
import java.io.IOException;
@@
-550,13
+550,17
@@
public class TTerminalWindow extends TScrollableWindow
return;
}
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) {
}
if (mouseOnEmulator(mouse)) {
synchronized (emulator) {
@@
-761,6
+765,10
@@
public class TTerminalWindow extends TScrollableWindow
// Add shortcut text
newStatusBar(i18n.getString("statusBarRunning"));
// 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());
}
/**
}
/**
@@
-941,21
+949,23
@@
public class TTerminalWindow extends TScrollableWindow
private void putDoubleWidthCharXY(final DisplayLine line, final int x,
final int y, final Cell cell) {
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();
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();
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
cursorBlinkVisible = blinkState;
} else {
// We don't know how to dray glyphs to this screen, draw them as