--- rxvt-unicode/src/main.C 2004/02/21 20:33:40 1.36 +++ rxvt-unicode/src/main.C 2004/02/22 10:38:11 1.42 @@ -13,6 +13,7 @@ * Copyright (c) 1997,1998 Oezguer Kesim * Copyright (c) 1998-2001 Geoff Wing * - extensive modifications + * Copyright (c) 2003-2004 Marc Lehmann * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -263,11 +264,8 @@ init_xlocale (); scr_reset (); /* initialize screen */ -#ifdef RXVT_GRAPHICS - Gr_reset (); /* reset graphics */ -#endif -#if 1 +#if 0 XSynchronize (display->display, True); #endif @@ -719,13 +717,50 @@ * fontname == FONT_UP - switch to bigger font * fontname == FONT_DN - switch to smaller font */ -void -rxvt_term::change_font (int init, const char *fontname) -{} +bool +rxvt_term::change_font (const char *fontname) +{ + if (fontname == FONT_UP) + { + // TODO + } + else if (fontname == FONT_DN) + { + // TODO + } + else + { + rxvt_fontset *fs = new rxvt_fontset (this); -void + if (fs && fs->populate (fontname)) + { + delete TermWin.fontset; + TermWin.fontset = fs; + TermWin.fwidth = fs->base_font ()->width; + 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; + } + } + + return false; +} + +bool rxvt_term::font_up_down (int n, int direction) -{} +{ + return false; +} /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ @@ -996,11 +1031,6 @@ XMoveResizeWindow (display->display, TermWin.vt, window_vt_x, window_vt_y, TermWin_TotalWidth (), TermWin_TotalHeight ()); -#ifdef RXVT_GRAPHICS - if (old_height) - Gr_Resize (old_width - szHint.base_width, - old_height - szHint.base_height); -#endif scr_clear (); #ifdef XPM_BACKGROUND resize_pixmap (); @@ -1316,7 +1346,7 @@ #if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE) if (rs[Rs_imLocale]) - rxvt_set_locale (rs[Rs_imLocale]); + SET_LOCALE (rs[Rs_imLocale]); #endif p = rs[Rs_inputMethod]; @@ -1357,7 +1387,7 @@ done: #if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE) if (rs[Rs_imLocale]) - rxvt_set_locale (locale); + SET_LOCALE (locale); #endif }