1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-27 00:57:50 +00:00
freebsd-ports/x11/aterm/files/patch-eterm_transparency
Doug Barton dbddc2b792 Revamp this port:
1. There are no slave ports, so remove the mechanism for that
2. Update CONFIGURE_ARGS
3. Add OPTIONS support
4. Remove knobs for some things that were not actually used by configure
5. Add knobs for other things
6. Default transparency support, mouse support, and bsd-style del/bksp
   support to on, as previously; but default background image support to
   off. With modern window managers it's problematic, and needlessly bloats
   the binary.
7. Switch to PLIST_FILES for the one file installed, the chmod doesn't seem
   to have any effect one way or the other.
8. Add a bunch of patches from the debian repo which slightly improve
   support for modern WMs.

Bump PORTREVISION

Approved by:	maintainer timeout
2010-08-12 20:15:59 +00:00

97 lines
2.5 KiB
Plaintext

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. */