--- rxvt-unicode/src/main.C 2004/02/22 08:28:36 1.41 +++ rxvt-unicode/src/main.C 2004/02/24 22:28:42 1.46 @@ -82,7 +82,7 @@ scrollbar_ev (this, &rxvt_term::x_cb), #endif #ifdef MENUBAR - menubar_ev (this, &rxvt_term::x_cb), fixme + menubar_ev (this, &rxvt_term::x_cb), #endif #ifdef CURSOR_BLINK cursor_blink_ev (this, &rxvt_term::cursor_blink_cb), @@ -119,8 +119,17 @@ delete TermWin.fontset; if (display) - if (TermWin.parent[0]) - XDestroyWindow (display->display, TermWin.parent[0]); + { +#if defined(MENUBAR) && (MENUBAR_MAX > 1) + delete menuBar.drawable; + //if (menuBar.win) + // XDestroyWindow (display->display, menuBar.win); +#endif + delete TermWin.drawable; + // destroy all windows + if (TermWin.parent[0]) + XDestroyWindow (display->display, TermWin.parent[0]); + } // TODO: free pixcolours, colours should become part of rxvt_display @@ -251,7 +260,7 @@ set_locale (""); -#if (MENUBAR_MAX) +#if MENUBAR_MAX menubar_read (rs[Rs_menu]); #endif #ifdef HAVE_SCROLLBARS @@ -274,7 +283,7 @@ resize_scrollbar (); /* create and map scrollbar */ #endif #if (MENUBAR_MAX) - if (menubar_visible (r)) + if (menubar_visible ()) XMapWindow (display->display, menuBar.win); #endif #ifdef TRANSPARENT @@ -732,7 +741,7 @@ { rxvt_fontset *fs = new rxvt_fontset (this); - if (fs && fs->populate (fontname)) + if (fs && fs->populate (fontname ? fontname : "fixed")) { delete TermWin.fontset; TermWin.fontset = fs; @@ -740,8 +749,13 @@ TermWin.fheight = fs->base_font ()->height; TermWin.fbase = fs->base_font ()->ascent; - // TODO: screen needs to be told about new fonts - + if (TermWin.parent[0]) + { + resize_all_windows (0, 0, 0); + scr_remap_chars (); + scr_touch (true); + } + return true; } } @@ -764,7 +778,7 @@ #ifndef SMART_WINDOW_TITLE XStoreName (display->display, TermWin.parent[0], str); #else - char *name; + char *name; if (XFetchName (display->display, TermWin.parent[0], &name) == 0) name = NULL; @@ -781,7 +795,7 @@ #ifndef SMART_WINDOW_TITLE XSetIconName (display->display, TermWin.parent[0], str); #else - char *name; + char *name; if (XGetIconName (display->display, TermWin.parent[0], &name)) name = NULL; @@ -796,8 +810,8 @@ void rxvt_term::set_window_color (int idx, const char *color) { - rxvt_color xcol; - int i; + rxvt_color xcol; + int i; if (color == NULL || *color == '\0') return;