… | |
… | |
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 | } |
… | |
… | |
514 | #if ENABLE_XEMBED |
514 | #if ENABLE_XEMBED |
515 | if (rs[Rs_embed]) |
515 | if (rs[Rs_embed]) |
516 | { |
516 | { |
517 | long info[2] = { 0, XEMBED_MAPPED }; |
517 | long info[2] = { 0, XEMBED_MAPPED }; |
518 | |
518 | |
519 | XChangeProperty (display->display, parent[0], xa[XA_XEMBED_INFO], xa[XA_XEMBED_INFO], |
519 | XChangeProperty (xdisp, parent[0], xa[XA_XEMBED_INFO], xa[XA_XEMBED_INFO], |
520 | 32, PropModeReplace, (unsigned char *)&info, 2); |
520 | 32, PropModeReplace, (unsigned char *)&info, 2); |
521 | } |
521 | } |
522 | #endif |
522 | #endif |
523 | |
523 | |
524 | XMapWindow (xdisp, vt); |
524 | XMapWindow (xdisp, vt); |
… | |
… | |
842 | return true; |
842 | return true; |
843 | } |
843 | } |
844 | |
844 | |
845 | void rxvt_term::set_string_property (Atom prop, const char *str, int len) |
845 | void rxvt_term::set_string_property (Atom prop, const char *str, int len) |
846 | { |
846 | { |
847 | XChangeProperty (display->display, parent[0], |
847 | XChangeProperty (xdisp, parent[0], |
848 | prop, XA_STRING, 8, PropModeReplace, |
848 | prop, XA_STRING, 8, PropModeReplace, |
849 | (const unsigned char *)str, len >= 0 ? len : strlen (str)); |
849 | (const unsigned char *)str, len >= 0 ? len : strlen (str)); |
850 | } |
850 | } |
851 | |
851 | |
852 | void rxvt_term::set_utf8_property (Atom prop, const char *str, int len) |
852 | void rxvt_term::set_utf8_property (Atom prop, const char *str, int len) |
853 | { |
853 | { |
854 | wchar_t *ws = rxvt_mbstowcs (str, len); |
854 | wchar_t *ws = rxvt_mbstowcs (str, len); |
855 | char *s = rxvt_wcstoutf8 (ws); |
855 | char *s = rxvt_wcstoutf8 (ws); |
856 | |
856 | |
857 | XChangeProperty (display->display, parent[0], |
857 | XChangeProperty (xdisp, parent[0], |
858 | prop, xa[XA_UTF8_STRING], 8, PropModeReplace, |
858 | prop, xa[XA_UTF8_STRING], 8, PropModeReplace, |
859 | (const unsigned char *)s, strlen (s)); |
859 | (const unsigned char *)s, strlen (s)); |
860 | |
860 | |
861 | free (s); |
861 | free (s); |
862 | free (ws); |
862 | free (ws); |
… | |
… | |
912 | SET_PIXCOLOR (idx); |
912 | SET_PIXCOLOR (idx); |
913 | goto done; |
913 | goto done; |
914 | } |
914 | } |
915 | } |
915 | } |
916 | |
916 | |
917 | if (!rXParseAllocColor (&xcol, color)) |
917 | if (!set_color (xcol, color)) |
918 | return; |
918 | return; |
919 | |
919 | |
920 | /* XStoreColor (display->display, display->cmap, XColor*); */ |
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 | */ |
… | |
… | |
928 | if (pix_colors[idx] == pix_colors[i]) |
928 | if (pix_colors[idx] == pix_colors[i]) |
929 | break; |
929 | break; |
930 | if (i > Color_White) |
930 | if (i > Color_White) |
931 | { |
931 | { |
932 | /* fprintf (stderr, "XFreeColors: pix_colors [%d] = %lu\n", idx, pix_colors [idx]); */ |
932 | /* fprintf (stderr, "XFreeColors: pix_colors [%d] = %lu\n", idx, pix_colors [idx]); */ |
933 | XFreeColors (display->display, display->cmap, (pix_colors + idx), 1, |
933 | XFreeColors (xdisp, display->cmap, (pix_colors + idx), 1, |
934 | DisplayPlanes (display->display, display->screen)); |
934 | DisplayPlanes (xdisp, display->screen)); |
935 | } |
935 | } |
936 | # endif |
936 | # endif |
937 | |
937 | |
938 | pix_colors_focused[idx] = xcol; |
938 | pix_colors_focused[idx] = xcol; |
939 | SET_PIXCOLOR (idx); |
939 | SET_PIXCOLOR (idx); |
… | |
… | |
967 | : pix_colors_focused[Color_fg]; |
967 | : pix_colors_focused[Color_fg]; |
968 | xcol[1].pixel = ISSET_PIXCOLOR (Color_pointer_bg) |
968 | xcol[1].pixel = ISSET_PIXCOLOR (Color_pointer_bg) |
969 | ? pix_colors_focused[Color_pointer_bg] |
969 | ? pix_colors_focused[Color_pointer_bg] |
970 | : pix_colors_focused[Color_bg]; |
970 | : pix_colors_focused[Color_bg]; |
971 | |
971 | |
972 | XQueryColors (display->display, cmap, xcol, 2); |
972 | XQueryColors (xdisp, cmap, xcol, 2); |
973 | XRecolorCursor (display->display, TermWin_cursor, xcol + 0, xcol + 1); |
973 | XRecolorCursor (xdisp, TermWin_cursor, xcol + 0, xcol + 1); |
974 | } |
974 | } |
975 | |
975 | |
976 | /*----------------------------------------------------------------------*/ |
976 | /*----------------------------------------------------------------------*/ |
977 | /* |
977 | /* |
978 | * find if fg/bg matches any of the normal (low-intensity) colors |
978 | * find if fg/bg matches any of the normal (low-intensity) colors |
… | |
… | |
1006 | sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr); |
1006 | sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr); |
1007 | } |
1007 | } |
1008 | |
1008 | |
1009 | /*----------------------------------------------------------------------*/ |
1009 | /*----------------------------------------------------------------------*/ |
1010 | |
1010 | |
1011 | int |
1011 | bool |
1012 | rxvt_term::rXParseAllocColor (rxvt_color *screen_in_out, const char *colour) |
1012 | rxvt_term::set_color (rxvt_color &color, const char *name) |
1013 | { |
1013 | { |
1014 | if (!screen_in_out->set (this, colour)) |
1014 | 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; |
1015 | return true; |
|
|
1016 | |
|
|
1017 | rxvt_warn ("can't get colour '%s', continuing without.\n", name); |
|
|
1018 | return false; |
1021 | } |
1019 | } |
1022 | |
1020 | |
1023 | /* -------------------------------------------------------------------- * |
1021 | /* -------------------------------------------------------------------- * |
1024 | * - WINDOW RESIZING - * |
1022 | * - WINDOW RESIZING - * |
1025 | * -------------------------------------------------------------------- */ |
1023 | * -------------------------------------------------------------------- */ |
… | |
… | |
1125 | { |
1123 | { |
1126 | XWindowAttributes wattr; |
1124 | XWindowAttributes wattr; |
1127 | |
1125 | |
1128 | if (newwidth == 0 || newheight == 0) |
1126 | if (newwidth == 0 || newheight == 0) |
1129 | { |
1127 | { |
1130 | XGetWindowAttributes (display->display, display->root, &wattr); |
1128 | XGetWindowAttributes (xdisp, display->root, &wattr); |
1131 | |
1129 | |
1132 | if (newwidth == 0) |
1130 | if (newwidth == 0) |
1133 | newwidth = wattr.width - szHint.base_width; |
1131 | newwidth = wattr.width - szHint.base_width; |
1134 | if (newheight == 0) |
1132 | if (newheight == 0) |
1135 | newheight = wattr.height - szHint.base_height; |
1133 | newheight = wattr.height - szHint.base_height; |
… | |
… | |
1197 | strncat (server, & (p[4]), IMBUFSIZ - 9); /* skip "@im=" */ |
1195 | strncat (server, & (p[4]), IMBUFSIZ - 9); /* skip "@im=" */ |
1198 | |
1196 | |
1199 | if ((p = strchr (server + 1, '@')) != NULL) /* first one only */ |
1197 | if ((p = strchr (server + 1, '@')) != NULL) /* first one only */ |
1200 | *p = '\0'; |
1198 | *p = '\0'; |
1201 | |
1199 | |
1202 | atom = XInternAtom (display->display, server, False); |
1200 | atom = XInternAtom (xdisp, server, False); |
1203 | win = XGetSelectionOwner (display->display, atom); |
1201 | win = XGetSelectionOwner (xdisp, atom); |
1204 | |
1202 | |
1205 | if (win != None) |
1203 | if (win != None) |
1206 | return True; |
1204 | return True; |
1207 | } |
1205 | } |
1208 | |
1206 | |
… | |
… | |
1432 | "*", |
1430 | "*", |
1433 | fheight, |
1431 | fheight, |
1434 | fheight + 1, fheight - 1, |
1432 | fheight + 1, fheight - 1, |
1435 | fheight - 2, fheight + 2); |
1433 | fheight - 2, fheight + 2); |
1436 | |
1434 | |
1437 | fs = XCreateFontSet (display->display, rs[Rs_imFont] ? rs[Rs_imFont] : pat, |
1435 | fs = XCreateFontSet (xdisp, rs[Rs_imFont] ? rs[Rs_imFont] : pat, |
1438 | &missing_charset_list, &missing_charset_count, &def_string); |
1436 | &missing_charset_list, &missing_charset_count, &def_string); |
1439 | |
1437 | |
1440 | if (missing_charset_list) |
1438 | if (missing_charset_list) |
1441 | XFreeStringList (missing_charset_list); |
1439 | XFreeStringList (missing_charset_list); |
1442 | |
1440 | |
… | |
… | |
1518 | status_attr ? XNStatusAttributes : NULL, |
1516 | status_attr ? XNStatusAttributes : NULL, |
1519 | status_attr, NULL); |
1517 | status_attr, NULL); |
1520 | |
1518 | |
1521 | if (preedit_attr) XFree (preedit_attr); |
1519 | if (preedit_attr) XFree (preedit_attr); |
1522 | if (status_attr) XFree (status_attr); |
1520 | if (status_attr) XFree (status_attr); |
1523 | if (fs) XFreeFontSet (display->display, fs); |
1521 | if (fs) XFreeFontSet (xdisp, fs); |
1524 | |
1522 | |
1525 | if (Input_Context == NULL) |
1523 | if (Input_Context == NULL) |
1526 | { |
1524 | { |
1527 | rxvt_warn ("failed to create input context, continuing without XIM.\n"); |
1525 | rxvt_warn ("failed to create input context, continuing without XIM.\n"); |
1528 | im_destroy (); |
1526 | im_destroy (); |