summaryrefslogtreecommitdiff
path: root/x11/aterm/files/patch-eterm_transparency
diff options
context:
space:
mode:
Diffstat (limited to 'x11/aterm/files/patch-eterm_transparency')
-rw-r--r--x11/aterm/files/patch-eterm_transparency96
1 files changed, 96 insertions, 0 deletions
diff --git a/x11/aterm/files/patch-eterm_transparency b/x11/aterm/files/patch-eterm_transparency
new file mode 100644
index 000000000000..0c4e6b0f0558
--- /dev/null
+++ b/x11/aterm/files/patch-eterm_transparency
@@ -0,0 +1,96 @@
+diff -urNad aterm-1.0.1~/src/main.c src/main.c
+--- aterm-1.0.1~/src/main.c 2007-08-04 00:05:30.000000000 +0200
++++ src/main.c 2007-08-04 00:09:53.000000000 +0200
+@@ -1334,6 +1334,12 @@
+ break;
+ #endif
+
++ case XTerm_EtermSeq:
++ op = atoi(str);
++ if (!(str = strchr(str, ';')))
++ break;
++ eterm_seq(op, str + 1);
++ break;
+ case XTerm_Menu:
+ /*
+ * menubar_dispatch() violates the constness of the string,
+@@ -1360,6 +1366,43 @@
+ break;
+ }
+ }
++
++/*
++ * Eterm escape sequences: ESC ] 6;Ps;Pt BEL
++ * 2 = set shade/tint mask
++ * (There are more codes--check Eterm's reference doc.)
++ */
++/* PROTO */
++ void
++eterm_seq(int op, const char *str)
++{
++ assert(str != NULL);
++ switch (op) {
++#if defined(BACKGROUND_IMAGE) || defined(TRANSPARENT)
++ case 2:
++ /* { shade | tint } [ class ; ] value */
++ if (strncmp(str, "tint", 4) == 0) {
++ char *class;
++ char *value;
++
++ if (!(class = strchr((char *) str, ';')))
++ break;
++ *class++ = '\0';
++ if (!(value = strchr(class, ';'))) {
++ /* Default class is bg. */
++ value = class;
++ class = "bg";
++ } else
++ *value++ = '\0';
++
++ if (strcmp(class, "bg") == 0) {
++ set_window_color(Color_tint, value);
++ }
++ }
++ break;
++#endif
++ }
++}
+ /*}}} */
+
+
+diff -urNad aterm-1.0.1~/src/rxvt.h src/rxvt.h
+--- aterm-1.0.1~/src/rxvt.h 2007-08-04 00:05:30.000000000 +0200
++++ src/rxvt.h 2007-08-04 00:10:31.000000000 +0200
+@@ -807,6 +807,7 @@
+ /*
+ * rxvt extensions of XTerm escape sequences: ESC ] Ps;Pt BEL
+ */
++#define XTerm_EtermSeq 6 /* Eterm proprietary escape sequences */
+ #define XTerm_Menu 10 /* set menu item */
+ #define XTerm_Pixmap 20 /* new bg pixmap */
+ #define XTerm_restoreFG 39 /* change default fg color */
+diff -urNad aterm-1.0.1~/src/screen.c src/screen.c
+--- aterm-1.0.1~/src/screen.c 2007-08-04 00:05:30.000000000 +0200
++++ src/screen.c 2007-08-04 00:15:22.000000000 +0200
+@@ -2665,7 +2665,20 @@
+ !(Options & Opt_transparent))
+ {
+ XSetWindowBackground(Xdisplay, TermWin.vt, PixColors[Color_bg]);
+- }
++ } else if (idx == Color_tint) {
++ XColor tint;
++
++ tint.pixel = PixColors[Color_tint];
++ XQueryColor(Xdisplay, Xcmap, &tint);
++ if (TermWin.background.Shading.tintColor.red == tint.red &&
++ TermWin.background.Shading.tintColor.green == tint.green &&
++ TermWin.background.Shading.tintColor.blue == tint.blue) {
++ return;
++ }
++ TermWin.background.Shading.tintColor = tint;
++ RenderPixmap(0);
++ }
++
+
+ /* handle Color_BD, scrollbar background, etc. */
+