… | |
… | |
368 | { |
368 | { |
369 | for (rxvt_term **t = rxvt_term::termlist.begin (); t < rxvt_term::termlist.end (); t++) |
369 | for (rxvt_term **t = rxvt_term::termlist.begin (); t < rxvt_term::termlist.end (); t++) |
370 | (*t)->emergency_cleanup (); |
370 | (*t)->emergency_cleanup (); |
371 | } |
371 | } |
372 | |
372 | |
373 | #if ENABLE_FRILLS |
373 | #if !ENABLE_MINIMAL |
374 | static void |
374 | static void |
375 | print_x_error (Display *dpy, XErrorEvent *event) |
375 | print_x_error (Display *dpy, XErrorEvent *event) |
376 | { |
376 | { |
377 | char buffer[BUFSIZ]; |
377 | char buffer[BUFSIZ]; |
378 | char mesg[BUFSIZ]; |
378 | char mesg[BUFSIZ]; |
… | |
… | |
426 | GET_R->allowedxerror = event->error_code; |
426 | GET_R->allowedxerror = event->error_code; |
427 | else |
427 | else |
428 | { |
428 | { |
429 | // GET_R is most likely not the terminal which caused the error, |
429 | // GET_R is most likely not the terminal which caused the error, |
430 | // so just output the error and continue |
430 | // so just output the error and continue |
431 | #if ENABLE_FRILLS |
431 | #if ENABLE_MINIMAL |
|
|
432 | old_xerror_handler (display, event); |
|
|
433 | #else |
432 | print_x_error (display, event); |
434 | print_x_error (display, event); |
433 | #else |
|
|
434 | old_xerror_handler (display, event); |
|
|
435 | #endif |
435 | #endif |
436 | } |
436 | } |
437 | |
437 | |
438 | return 0; |
438 | return 0; |
439 | } |
439 | } |
… | |
… | |
691 | |
691 | |
692 | if (scrollBar.state) |
692 | if (scrollBar.state) |
693 | { |
693 | { |
694 | sb_w = scrollbar_TotalWidth (); |
694 | sb_w = scrollbar_TotalWidth (); |
695 | szHint.base_width += sb_w; |
695 | szHint.base_width += sb_w; |
|
|
696 | |
696 | if (!OPTION (Opt_scrollBar_right)) |
697 | if (!OPTION (Opt_scrollBar_right)) |
697 | window_vt_x += sb_w; |
698 | window_vt_x += sb_w; |
698 | } |
699 | } |
699 | |
700 | |
700 | szHint.width_inc = fwidth; |
701 | szHint.width_inc = fwidth; |
… | |
… | |
887 | void |
888 | void |
888 | rxvt_term::set_window_color (int idx, const char *color) |
889 | rxvt_term::set_window_color (int idx, const char *color) |
889 | { |
890 | { |
890 | rxvt_color xcol; |
891 | rxvt_color xcol; |
891 | int i; |
892 | int i; |
892 | |
893 | |
893 | if (color == NULL || *color == '\0') |
894 | if (color == NULL || *color == '\0') |
894 | return; |
895 | return; |
|
|
896 | |
|
|
897 | color = strdup (color); |
|
|
898 | allocated.push_back ((void *)color); |
|
|
899 | rs[Rs_color + idx] = color; |
895 | |
900 | |
896 | /* handle color aliases */ |
901 | /* handle color aliases */ |
897 | if (isdigit (*color)) |
902 | if (isdigit (*color)) |
898 | { |
903 | { |
899 | i = atoi (color); |
904 | i = atoi (color); |
900 | |
905 | |
901 | if (i >= 8 && i <= 15) |
906 | if (i >= 8 && i <= 15) |
902 | { /* bright colors */ |
907 | { /* bright colors */ |
903 | i -= 8; |
908 | i -= 8; |
904 | pix_colors_focused[idx] = pix_colors_focused[minBrightCOLOR + i]; |
909 | pix_colors_focused[idx] = pix_colors_focused[minBrightCOLOR + i]; |
905 | SET_PIXCOLOR (idx); |
|
|
906 | goto done; |
910 | goto done; |
907 | } |
911 | } |
908 | |
912 | |
909 | if (i >= 0 && i <= 7) |
913 | if (i >= 0 && i <= 7) |
910 | { /* normal colors */ |
914 | { /* normal colors */ |
911 | pix_colors_focused[idx] = pix_colors_focused[minCOLOR + i]; |
915 | pix_colors_focused[idx] = pix_colors_focused[minCOLOR + i]; |
912 | SET_PIXCOLOR (idx); |
|
|
913 | goto done; |
916 | goto done; |
914 | } |
917 | } |
915 | } |
918 | } |
916 | |
919 | |
917 | if (!rXParseAllocColor (&xcol, color)) |
920 | set_color (xcol, color); |
918 | return; |
|
|
919 | |
|
|
920 | /* XStoreColor (xdisp, display->cmap, XColor*); */ |
|
|
921 | |
921 | |
922 | /* |
922 | /* |
923 | * FIXME: should free colors here, but no idea how to do it so instead, |
923 | * FIXME: should free colors here, but no idea how to do it so instead, |
924 | * so just keep gobbling up the colormap |
924 | * so just keep gobbling up the colormap |
925 | */ |
925 | */ |
926 | # if 0 |
|
|
927 | for (i = Color_Black; i <= Color_White; i++) |
|
|
928 | if (pix_colors[idx] == pix_colors[i]) |
|
|
929 | break; |
|
|
930 | if (i > Color_White) |
|
|
931 | { |
|
|
932 | /* fprintf (stderr, "XFreeColors: pix_colors [%d] = %lu\n", idx, pix_colors [idx]); */ |
|
|
933 | XFreeColors (xdisp, display->cmap, (pix_colors + idx), 1, |
|
|
934 | DisplayPlanes (xdisp, display->screen)); |
|
|
935 | } |
|
|
936 | # endif |
|
|
937 | |
926 | |
938 | pix_colors_focused[idx] = xcol; |
927 | pix_colors_focused[idx] = xcol; |
939 | SET_PIXCOLOR (idx); |
|
|
940 | |
928 | |
941 | /* XSetWindowAttributes attr; */ |
929 | /* XSetWindowAttributes attr; */ |
942 | /* Cursor cursor; */ |
930 | /* Cursor cursor; */ |
943 | done: |
931 | done: |
944 | |
932 | |
945 | #if OFF_FOCUS_FADING |
933 | #if OFF_FOCUS_FADING |
946 | if (rs[Rs_fade]) |
934 | if (rs[Rs_fade]) |
947 | pix_colors_unfocused[idx] = pix_colors_focused[idx].fade (this, atoi (rs[Rs_fade]), pix_colors[Color_fade]); |
935 | { |
|
|
936 | rgba c; |
|
|
937 | pix_colors [Color_fade].get (c); |
|
|
938 | pix_colors_focused [idx].fade (this, atoi (rs[Rs_fade]), pix_colors_unfocused [idx], c); |
|
|
939 | } |
948 | #endif |
940 | #endif |
949 | |
941 | |
950 | /*TODO: handle Color_BD, scrollbar background, etc. */ |
942 | /*TODO: handle Color_BD, scrollbar background, etc. */ |
951 | |
943 | |
952 | recolour_cursor (); |
944 | recolour_cursor (); |
… | |
… | |
1006 | sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr); |
998 | sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr); |
1007 | } |
999 | } |
1008 | |
1000 | |
1009 | /*----------------------------------------------------------------------*/ |
1001 | /*----------------------------------------------------------------------*/ |
1010 | |
1002 | |
1011 | int |
1003 | bool |
1012 | rxvt_term::rXParseAllocColor (rxvt_color *screen_in_out, const char *colour) |
1004 | rxvt_term::set_color (rxvt_color &color, const char *name) |
1013 | { |
1005 | { |
1014 | if (!screen_in_out->set (this, colour)) |
1006 | if (color.set (this, name)) |
1015 | { |
|
|
1016 | rxvt_warn ("can't get colour '%s', continuing without.\n", colour); |
|
|
1017 | return false; |
|
|
1018 | } |
|
|
1019 | |
|
|
1020 | return true; |
1007 | return true; |
|
|
1008 | |
|
|
1009 | rxvt_warn ("can't get colour '%s', continuing without.\n", name); |
|
|
1010 | return false; |
1021 | } |
1011 | } |
1022 | |
1012 | |
1023 | /* -------------------------------------------------------------------- * |
1013 | /* -------------------------------------------------------------------- * |
1024 | * - WINDOW RESIZING - * |
1014 | * - WINDOW RESIZING - * |
1025 | * -------------------------------------------------------------------- */ |
1015 | * -------------------------------------------------------------------- */ |