X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=st.c;h=beae9bc93a40f038072fe78a66dca4d40cf41bcc;hb=a32c5f5726f514b49bd396f27aab0e78c40126d3;hp=a6b4ada36db153b34a27e4b27b0b30e090d74004;hpb=3544e354b2dcdfcced1a2f4aeedb4d479abd543c;p=st.git diff --git a/st.c b/st.c index a6b4ada..beae9bc 100644 --- a/st.c +++ b/st.c @@ -829,6 +829,8 @@ mousereport(XEvent *e) { /* MODE_MOUSEX10: no button release reporting */ if(IS_SET(MODE_MOUSEX10)) return; + if (button == 64 || button == 65) + return; } } @@ -949,7 +951,7 @@ getsel(void) { * st. * FIXME: Fix the computer world. */ - if(y < sel.ne.y && x > 0 && !((gp-1)->mode & ATTR_WRAP)) + if(y < sel.ne.y && !(x > 0 && (gp-1)->mode & ATTR_WRAP)) *ptr++ = '\n'; /* @@ -2742,7 +2744,7 @@ xloadcols(void) { if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &dc.col[i])) die("Could not allocate color %d\n", i); } - + /* load colours [232-255] ; grayscale */ for(; i < 256; i++) { color.red = color.green = color.blue = 0x0808 + 0x0a0a * (i-(6*6*6+16)); @@ -2755,32 +2757,28 @@ xloadcols(void) { int xsetcolorname(int x, const char *name) { XRenderColor color = { .alpha = 0xffff }; - Colour colour; + if(!BETWEEN(x, 0, LEN(colorname))) return -1; if(!name) { - if(BETWEEN(x, 16, 16 + 215)) { - int r = (x - 16) / 36, g = ((x - 16) % 36) / 6, b = (x - 16) % 6; - color.red = sixd_to_16bit(r); - color.green = sixd_to_16bit(g); - color.blue = sixd_to_16bit(b); - if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &colour)) - return 0; /* something went wrong */ - dc.col[x] = colour; + if(BETWEEN(x, 16, 6*6*6+16)) { /* 256 colour */ + color.red = sixd_to_16bit( ((x-16)/36)%6 ); + color.green = sixd_to_16bit( ((x-16)/6) %6 ); + color.blue = sixd_to_16bit( ((x-16)/1) %6 ); + if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &dc.col[x])) + die("Could not allocate color %d\n", x); return 1; - } else if(BETWEEN(x, 16 + 216, 255)) { - color.red = color.green = color.blue = 0x0808 + 0x0a0a * (x - (16 + 216)); - if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &colour)) - return 0; /* something went wrong */ - dc.col[x] = colour; + } else if(BETWEEN(x, 6*6*6+16, 255)) { /* grayscale */ + color.red = color.green = color.blue = 0x0808 + 0x0a0a * (x-(6*6*6+16)); + if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &dc.col[x])) + die("Could not allocate color %d\n", x); return 1; - } else { + } else { /* system colours */ name = colorname[x]; } } - if(!XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, &colour)) - return 0; - dc.col[x] = colour; + if(!XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, &dc.col[x])) + return 0; /* invalid name */ return 1; } @@ -3143,14 +3141,19 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { if(base.mode & ATTR_BOLD) { /* - * change basic system colours [0-7] + * change basic system colours [0-7] * to bright system colours [8-15] */ if(BETWEEN(base.fg, 0, 7)) fg = &dc.col[base.fg + 8]; - - font = &dc.bfont; - frcflags = FRC_BOLD; + + if(base.mode & ATTR_ITALIC) { + font = &dc.ibfont; + frcflags = FRC_ITALICBOLD; + } else { + font = &dc.bfont; + frcflags = FRC_BOLD; + } } if(IS_SET(MODE_REVERSE)) {