ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/main.C
(Generate patch)

Comparing rxvt-unicode/src/main.C (file contents):
Revision 1.206 by root, Wed Jan 25 21:03:04 2006 UTC vs.
Revision 1.214 by root, Tue Jan 31 19:53:30 2006 UTC

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
374static void 374static void
375print_x_error (Display *dpy, XErrorEvent *event) 375print_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);
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;
842 return true; 843 return true;
843} 844}
844 845
845void rxvt_term::set_string_property (Atom prop, const char *str, int len) 846void rxvt_term::set_string_property (Atom prop, const char *str, int len)
846{ 847{
847 XChangeProperty (display->display, parent[0], 848 XChangeProperty (xdisp, parent[0],
848 prop, XA_STRING, 8, PropModeReplace, 849 prop, XA_STRING, 8, PropModeReplace,
849 (const unsigned char *)str, len >= 0 ? len : strlen (str)); 850 (const unsigned char *)str, len >= 0 ? len : strlen (str));
850} 851}
851 852
852void rxvt_term::set_utf8_property (Atom prop, const char *str, int len) 853void rxvt_term::set_utf8_property (Atom prop, const char *str, int len)
853{ 854{
854 wchar_t *ws = rxvt_mbstowcs (str, len); 855 wchar_t *ws = rxvt_mbstowcs (str, len);
855 char *s = rxvt_wcstoutf8 (ws); 856 char *s = rxvt_wcstoutf8 (ws);
856 857
857 XChangeProperty (display->display, parent[0], 858 XChangeProperty (xdisp, parent[0],
858 prop, xa[XA_UTF8_STRING], 8, PropModeReplace, 859 prop, xa[XA_UTF8_STRING], 8, PropModeReplace,
859 (const unsigned char *)s, strlen (s)); 860 (const unsigned char *)s, strlen (s));
860 861
861 free (s); 862 free (s);
862 free (ws); 863 free (ws);
887void 888void
888rxvt_term::set_window_color (int idx, const char *color) 889rxvt_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 (display->display, 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 (display->display, display->cmap, (pix_colors + idx), 1,
934 DisplayPlanes (display->display, 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; */
943done: 931done:
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 ();
967 : pix_colors_focused[Color_fg]; 959 : pix_colors_focused[Color_fg];
968 xcol[1].pixel = ISSET_PIXCOLOR (Color_pointer_bg) 960 xcol[1].pixel = ISSET_PIXCOLOR (Color_pointer_bg)
969 ? pix_colors_focused[Color_pointer_bg] 961 ? pix_colors_focused[Color_pointer_bg]
970 : pix_colors_focused[Color_bg]; 962 : pix_colors_focused[Color_bg];
971 963
972 XQueryColors (display->display, cmap, xcol, 2); 964 XQueryColors (xdisp, cmap, xcol, 2);
973 XRecolorCursor (display->display, TermWin_cursor, xcol + 0, xcol + 1); 965 XRecolorCursor (xdisp, TermWin_cursor, xcol + 0, xcol + 1);
974} 966}
975 967
976/*----------------------------------------------------------------------*/ 968/*----------------------------------------------------------------------*/
977/* 969/*
978 * find if fg/bg matches any of the normal (low-intensity) colors 970 * find if fg/bg matches any of the normal (low-intensity) colors
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
1011int 1003bool
1012rxvt_term::rXParseAllocColor (rxvt_color *screen_in_out, const char *colour) 1004rxvt_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 * -------------------------------------------------------------------- */
1125{ 1115{
1126 XWindowAttributes wattr; 1116 XWindowAttributes wattr;
1127 1117
1128 if (newwidth == 0 || newheight == 0) 1118 if (newwidth == 0 || newheight == 0)
1129 { 1119 {
1130 XGetWindowAttributes (display->display, display->root, &wattr); 1120 XGetWindowAttributes (xdisp, display->root, &wattr);
1131 1121
1132 if (newwidth == 0) 1122 if (newwidth == 0)
1133 newwidth = wattr.width - szHint.base_width; 1123 newwidth = wattr.width - szHint.base_width;
1134 if (newheight == 0) 1124 if (newheight == 0)
1135 newheight = wattr.height - szHint.base_height; 1125 newheight = wattr.height - szHint.base_height;
1197 strncat (server, & (p[4]), IMBUFSIZ - 9); /* skip "@im=" */ 1187 strncat (server, & (p[4]), IMBUFSIZ - 9); /* skip "@im=" */
1198 1188
1199 if ((p = strchr (server + 1, '@')) != NULL) /* first one only */ 1189 if ((p = strchr (server + 1, '@')) != NULL) /* first one only */
1200 *p = '\0'; 1190 *p = '\0';
1201 1191
1202 atom = XInternAtom (display->display, server, False); 1192 atom = XInternAtom (xdisp, server, False);
1203 win = XGetSelectionOwner (display->display, atom); 1193 win = XGetSelectionOwner (xdisp, atom);
1204 1194
1205 if (win != None) 1195 if (win != None)
1206 return True; 1196 return True;
1207 } 1197 }
1208 1198
1432 "*", 1422 "*",
1433 fheight, 1423 fheight,
1434 fheight + 1, fheight - 1, 1424 fheight + 1, fheight - 1,
1435 fheight - 2, fheight + 2); 1425 fheight - 2, fheight + 2);
1436 1426
1437 fs = XCreateFontSet (display->display, rs[Rs_imFont] ? rs[Rs_imFont] : pat, 1427 fs = XCreateFontSet (xdisp, rs[Rs_imFont] ? rs[Rs_imFont] : pat,
1438 &missing_charset_list, &missing_charset_count, &def_string); 1428 &missing_charset_list, &missing_charset_count, &def_string);
1439 1429
1440 if (missing_charset_list) 1430 if (missing_charset_list)
1441 XFreeStringList (missing_charset_list); 1431 XFreeStringList (missing_charset_list);
1442 1432
1518 status_attr ? XNStatusAttributes : NULL, 1508 status_attr ? XNStatusAttributes : NULL,
1519 status_attr, NULL); 1509 status_attr, NULL);
1520 1510
1521 if (preedit_attr) XFree (preedit_attr); 1511 if (preedit_attr) XFree (preedit_attr);
1522 if (status_attr) XFree (status_attr); 1512 if (status_attr) XFree (status_attr);
1523 if (fs) XFreeFontSet (display->display, fs); 1513 if (fs) XFreeFontSet (xdisp, fs);
1524 1514
1525 if (Input_Context == NULL) 1515 if (Input_Context == NULL)
1526 { 1516 {
1527 rxvt_warn ("failed to create input context, continuing without XIM.\n"); 1517 rxvt_warn ("failed to create input context, continuing without XIM.\n");
1528 im_destroy (); 1518 im_destroy ();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines