mirror of
https://gitlab.com/AutumnMeowMeow/jexer
synced 2024-09-19 11:50:19 -06:00
limit sixel palette to terminal max
This commit is contained in:
parent
115020afe6
commit
c684cd6903
2 changed files with 55 additions and 5 deletions
|
@ -350,7 +350,7 @@ public class TScreenOptionsWindow extends TWindow {
|
|||
String [] sixelSizes = { "2", "256", "512", "1024", "2048" };
|
||||
List<String> sizes = new ArrayList<String>();
|
||||
sizes.addAll(Arrays.asList(sixelSizes));
|
||||
sixelPaletteSize = addComboBox(col, 17, 10, sizes, 0, 6,
|
||||
sixelPaletteSize = addComboBox(col, 17, 10, sizes, 0, 4,
|
||||
new TAction() {
|
||||
public void DO() {
|
||||
try {
|
||||
|
|
|
@ -2761,7 +2761,9 @@ public class ECMA48Terminal extends LogicalScreen
|
|||
boolean alt = false;
|
||||
boolean shift = false;
|
||||
|
||||
// System.err.printf("state: %s ch %c\r\n", state, ch);
|
||||
if (debugToStderr && false) {
|
||||
System.err.printf("state: %s ch %c\r\n", state, ch);
|
||||
}
|
||||
|
||||
switch (state) {
|
||||
case GROUND:
|
||||
|
@ -3038,6 +3040,54 @@ public class ECMA48Terminal extends LogicalScreen
|
|||
events.add(new TKeypressEvent(backend, kbEnd, alt, ctrl, shift));
|
||||
resetParser();
|
||||
return;
|
||||
case 'S':
|
||||
// Report graphics property.
|
||||
if (decPrivateModeFlag == false) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ((params.size() > 2)
|
||||
&& (!params.get(1).equals("0"))
|
||||
) {
|
||||
if (debugToStderr) {
|
||||
System.err.printf("Graphics query error: " +
|
||||
params);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (params.size() > 2) {
|
||||
if (debugToStderr) {
|
||||
System.err.printf("Graphics result: " +
|
||||
"status %s Ps %s Pv %s\n", params.get(0),
|
||||
params.get(1), params.get(2));
|
||||
}
|
||||
if (params.get(0).equals("1")) {
|
||||
int registers = sixelPaletteSize;
|
||||
try {
|
||||
registers = Integer.parseInt(params.get(2));
|
||||
if (debugToStderr) {
|
||||
System.err.println("Terminal reports " +
|
||||
registers + " sixel colors, current " +
|
||||
"size = " + sixelPaletteSize);
|
||||
}
|
||||
if ((registers >= 2)
|
||||
&& (registers < sixelPaletteSize)
|
||||
) {
|
||||
setSixelPaletteSize(Integer.highestOneBit(registers));
|
||||
if (debugToStderr) {
|
||||
System.err.println("New palette size: "
|
||||
+ sixelPaletteSize);
|
||||
}
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
if (debugToStderr) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'c':
|
||||
// Device Attributes
|
||||
if (decPrivateModeFlag == false) {
|
||||
|
@ -3064,7 +3114,7 @@ public class ECMA48Terminal extends LogicalScreen
|
|||
}
|
||||
reportsJexerImages = true;
|
||||
}
|
||||
if (true) {
|
||||
if (iterm2Images) {
|
||||
/*
|
||||
* This check left in place so that I have a hook
|
||||
* for later. At the moment there is no way to
|
||||
|
@ -3190,9 +3240,9 @@ public class ECMA48Terminal extends LogicalScreen
|
|||
*/
|
||||
private String xtermSetSixelSettings() {
|
||||
if (sixelSharedPalette == true) {
|
||||
return "\033[?80h\033[?1070l";
|
||||
return "\033[?80h\033[?1070l\033[?1;1;0S";
|
||||
} else {
|
||||
return "\033[?80h\033[?1070h";
|
||||
return "\033[?80h\033[?1070h\033[?1;1;0S";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue