… | |
… | |
227 | # if !UNICODE3 |
227 | # if !UNICODE3 |
228 | if (ch >= 0x10000) |
228 | if (ch >= 0x10000) |
229 | ch = 0xfffd; |
229 | ch = 0xfffd; |
230 | # endif |
230 | # endif |
231 | scr_overlay_set (11, y, ch, r); |
231 | scr_overlay_set (11, y, ch, r); |
|
|
232 | |
|
|
233 | if (WCWIDTH (ch) >= 2) |
232 | scr_overlay_set (12, y, NOCHAR, r); |
234 | scr_overlay_set (12, y, NOCHAR, r); |
233 | } |
235 | } |
234 | |
236 | |
|
|
237 | // { |
|
|
238 | // char buf[4+4+3+1]; |
|
|
239 | // snprintf (buf, sizeof (buf), "(%.4d|%.4d)", x, y); |
|
|
240 | // scr_overlay_set (0, 0, buf); |
|
|
241 | // } |
235 | scr_overlay_set (0, len , attr); |
242 | scr_overlay_set (0, len , attr); |
236 | scr_overlay_set (0, len + 1, fname); |
243 | scr_overlay_set (0, len + 1, fname); |
237 | |
244 | |
238 | free (fname); |
245 | free (fname); |
239 | |
246 | |
… | |
… | |
2531 | XFreePixmap (xdisp, pixmap); |
2538 | XFreePixmap (xdisp, pixmap); |
2532 | |
2539 | |
2533 | #if TINTING |
2540 | #if TINTING |
2534 | if (ISSET_PIXCOLOR (Color_tint)) |
2541 | if (ISSET_PIXCOLOR (Color_tint)) |
2535 | { |
2542 | { |
2536 | unsigned short rm, gm, bm; |
2543 | rxvt_rgba c; |
2537 | int shade = rs[Rs_shade] ? atoi (rs[Rs_shade]) : 100; |
2544 | int shade = rs[Rs_shade] ? atoi (rs[Rs_shade]) : 100; |
2538 | |
2545 | |
2539 | pix_colors_focused[Color_tint].get (this, rm, gm, bm); |
2546 | pix_colors_focused[Color_tint].get (this, c); |
2540 | |
2547 | |
2541 | ShadeXImage (this, image, shade, rm, gm, bm); |
2548 | ShadeXImage (this, image, shade, c.r, c.g, c.b); |
2542 | } |
2549 | } |
2543 | #endif |
2550 | #endif |
2544 | |
2551 | |
2545 | pixmap = XCreatePixmap (xdisp, vt, szHint.width, szHint.height, image->depth); |
2552 | pixmap = XCreatePixmap (xdisp, vt, szHint.width, szHint.height, image->depth); |
2546 | gc = XCreateGC (xdisp, vt, 0UL, &gcvalue); |
2553 | gc = XCreateGC (xdisp, vt, 0UL, &gcvalue); |
… | |
… | |
3714 | void |
3721 | void |
3715 | rxvt_term::process_color_seq (int report, int color, const char *str, char resp) |
3722 | rxvt_term::process_color_seq (int report, int color, const char *str, char resp) |
3716 | { |
3723 | { |
3717 | if (str[0] == '?' && !str[1]) |
3724 | if (str[0] == '?' && !str[1]) |
3718 | { |
3725 | { |
3719 | unsigned short r, g, b; |
3726 | rxvt_rgba c; |
3720 | pix_colors_focused[color].get (this, r, g, b); |
3727 | pix_colors_focused[color].get (this, c); |
|
|
3728 | |
|
|
3729 | #if XFT |
|
|
3730 | if (c.a != rxvt_rgba::MAX_CC) |
|
|
3731 | tt_printf ("\033]%d;rgba:%04x/%04x/%04x/%04x%c", report, c.a, c.r, c.g, c.b, resp); |
|
|
3732 | else |
|
|
3733 | #endif |
3721 | tt_printf ("\033]%d;rgb:%04x/%04x/%04x%c", report, r, g, b, resp); |
3734 | tt_printf ("\033]%d;rgb:%04x/%04x/%04x%c", report, c.r, c.g, c.b, resp); |
3722 | } |
3735 | } |
3723 | else |
3736 | else |
3724 | set_window_color (color, str); |
3737 | set_window_color (color, str); |
3725 | } |
3738 | } |
3726 | |
3739 | |
… | |
… | |
3801 | break; |
3814 | break; |
3802 | |
3815 | |
3803 | if ((buf = strchr (name, ';')) != NULL) |
3816 | if ((buf = strchr (name, ';')) != NULL) |
3804 | *buf++ = '\0'; |
3817 | *buf++ = '\0'; |
3805 | |
3818 | |
3806 | if (name[0] == '?' && !name[1]) |
3819 | process_color_seq (op, color, name, resp); |
3807 | { |
|
|
3808 | unsigned short r, g, b; |
|
|
3809 | pix_colors_focused[color].get (this, r, g, b); |
|
|
3810 | tt_printf ("\033]%d;%d;rgb:%04x/%04x/%04x%c", op, color, r, g, b, resp); |
|
|
3811 | } |
|
|
3812 | else |
|
|
3813 | set_window_color (color, name); |
|
|
3814 | } |
3820 | } |
3815 | break; |
3821 | break; |
3816 | case XTerm_Color00: |
3822 | case XTerm_Color00: |
3817 | process_color_seq (op, Color_fg, str, resp); |
3823 | process_color_seq (op, Color_fg, str, resp); |
3818 | break; |
3824 | break; |