diff --git a/ChangeLog b/ChangeLog index 231e6d6..818a3c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4280,3 +4280,11 @@ Thu Jun 28 19:01:05 2001 Michael Jennings (mej) Finished updating the man page for 0.9.1. ---------------------------------------------------------------------- +Tue Jul 3 18:01:24 2001 Michael Jennings (mej) + +All the docs and themes should now be up-to-date. Unless a +showstopping bug turns up in the near future, this is pretty much it +for 0.9.1. Now we just need some testing to make sure there's +nothing horridly wrong.... So you all can test while we finish up +the web site and the backgrounds. :-) +---------------------------------------------------------------------- diff --git a/Eterm.spec.in b/Eterm.spec.in index 1d0c1d3..c9fd6a9 100644 --- a/Eterm.spec.in +++ b/Eterm.spec.in @@ -34,7 +34,7 @@ have the Imlib library installed. # macros I use for compatibility with older versions of the macro %configure --bindir=%{_bindir} --libdir=%{_libdir} --mandir=%{_mandir} \ --datadir=%{_datadir} --sysconfdir=%{_sysconfdir} \ - --with-backspace=bs --with-delete=execute + --with-backspace=bs --with-delete=execute --enable-multi-charset make %install diff --git a/acconfig.h b/acconfig.h index 4fe60c9..4352e05 100644 --- a/acconfig.h +++ b/acconfig.h @@ -302,6 +302,7 @@ #undef IMLIB_TRANS #undef KS_DELETE #undef NO_DELETE_KEY +#undef X_LOCALE #undef NO_XLOCALE #undef UTMP_SUPPORT #undef MULTI_CHARSET diff --git a/configure.in b/configure.in index 2049a79..b923eee 100644 --- a/configure.in +++ b/configure.in @@ -312,7 +312,7 @@ echo " the --x-libraries parameter to configure."; AC_CHECK_LIB(Xext, XShapeQueryExtension, AC_DEFINE(HAVE_X_SHAPE_EXT)) # check if we need X_LOCALE definition -AC_CHECK_LIB(X11, _Xsetlocale, , AC_DEFINE(NO_XLOCALE)) +AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE), AC_DEFINE(NO_XLOCALE)) # For multibyte selection handling if test "$MULTICHAR_ENCODING" != "none"; then diff --git a/doc/Eterm.1.in b/doc/Eterm.1.in index 3e469b3..e741bcc 100644 --- a/doc/Eterm.1.in +++ b/doc/Eterm.1.in @@ -265,11 +265,8 @@ are the horizontal/vertical alignment percentages, and .I ops is a colon-delimited list of operations: .BR tiled " (to tile the image), " -.BR scaled " (for horizontal and vertical scaling), " -.BR hscaled " (for horizontal scaling), " -.BR vscaled " (for vertical scaling), and " .BR propscaled " (for proportional scaling)." -Note that some of these operations can be combined for various effects. +Note that these operations can be combined for various effects. .TP .BI \-I " pic" ", \-\-icon " pic Sets the icon pixmap file to @@ -1129,11 +1126,8 @@ are the horizontal/vertical alignment percentages, and .I ops is a colon-delimited list of operations: .BR tiled " (to tile the image), " -.BR scaled " (for horizontal and vertical scaling), " -.BR hscaled " (for horizontal scaling), " -.BR vscaled " (for vertical scaling), and " .BR propscaled " (for proportional scaling)." -Note that some of these operations can be combined for various effects. +Note that these operations can be combined for various effects. .RE .RE diff --git a/doc/Eterm_reference.html b/doc/Eterm_reference.html index 385d2d8..05299a9 100644 --- a/doc/Eterm_reference.html +++ b/doc/Eterm_reference.html @@ -82,10 +82,9 @@ Portions of this document were taken from the XTerm documentation.

ENQ - Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm replies with the - string defined by ESCZ_ANSWER in src/feature.h, which is - ESC[?1;2c by default. This response indicates a VT100 - emulator with Advanced Video Option. + Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm ignores + ENQ if NO_ENQ_ANS is defined, which it is by default in + src/feature.h. ESC @@ -100,12 +99,12 @@ Portions of this document were taken from the XTerm documentation.

Line Feed or New Line (Ctrl-J) - SI - Shift In (Ctrl-O), invokes the G0 (default) character set + SO + Shift Out (Ctrl-N), invokes the G1 (alternate) character set - SO - Shift Out (Ctrl-O), invokes the G1 (alternate) character set + SI + Shift In (Ctrl-O), invokes the G0 (default) character set SPC @@ -162,6 +161,10 @@ Portions of this document were taken from the XTerm documentation.

ESC > Numeric Keypad (RMKX) + + ESC @ + Discards the subsequent character + ESC D Index (IND) @@ -170,6 +173,13 @@ Portions of this document were taken from the XTerm documentation.

ESC E Next Line (NEL) + + ESC G + Graphics (an rxvt extension). Eterm replies to ESC G + Q (query graphics) with ESC G 0 (no + graphics available) and ignores all other graphics + sequences. + ESC H Tab Set (HTS) @@ -259,7 +269,7 @@ Portions of this document were taken from the XTerm documentation.

Tabulator functions @@ -324,7 +334,7 @@ Portions of this document were taken from the XTerm documentation.

@@ -360,6 +370,10 @@ Portions of this document were taken from the XTerm documentation.

  • n == 7: Request display name (ignored by default for security reasons)
  • n == 8: Request version number in window title +
  • n == 9: Display pixmap/transparency status in + window title (See + below.) + @@ -368,10 +382,12 @@ Portions of this document were taken from the XTerm documentation.

    Set Scrolling Region (CSR), where t is the top row and b is the bottom row, defaults to the full screen + ESC [ ? n [ ; n ... ] { h | l | s | r | t } DEC Private Modes (shown as set/reset) @@ -401,6 +417,8 @@ Portions of this document were taken from the XTerm documentation.

  • n == 1000: (X11 Xterm mouse reporting) Do/Don't send mouse coords on button press and release (see below) +
  • n == 1010: Scroll to bottom on tty output +
  • n == 1012: Scroll to bottom on tty input @@ -442,7 +460,13 @@ Portions of this document were taken from the XTerm documentation.

  • n == 0: Change icon name and window title to string
  • n == 1: Change icon name to string
  • n == 2: Change window title to string +
  • n == 3: Set text property string (format: var=value) +
  • n == 5: Steal input focus and raise window (See + below.) +
  • n == 6: Eterm-specific escape sequences (See + below.)
  • n == 20: Image commands (see below) +
  • n == 30: Dump contents of scrollback to file string
  • n == 39: Set the default foreground color to string
  • n == 49: Set the default background color to string
  • n == 50: Set font to string. rxvt/Eterm extensions: @@ -464,6 +488,17 @@ Portions of this document were taken from the XTerm documentation.

    + + ESC ] P n rr gg bb + Changes terminal color n ('0' through 'f') to the color + represented by the RGB values rr, gg, and + bb. (Compatible with Linux console.) + + + ESC ] R + Restores the original palette. (Compatible with Linux + console.) + ESC c Full Reset (RIS) @@ -556,29 +591,29 @@ Portions of this document were taken from the XTerm documentation.

    Image Escape Sequences

    -The string supplied to the image escape sequence (above) consists of a -filename (which can be empty) followed by a semicolon, then one or more -geometry strings. The following table shows the valid geometry strings and -their affects on the background image:

    +The string supplied to the image escape sequence (above) +consists of a filename (which can be empty) followed by a semicolon, +then one or more geometry strings. Each geometry string contains zero +or one scale/position adjustment and may optionally be followed by a +colon and one or more colon-delimited pixmap operations. The +following table shows the valid geometry strings and their affects on +the background image:

    - - - - - + @@ -632,6 +667,25 @@ their affects on the background image:

    + + + + + + + + + + + + + + +
    String Function
    ?Query scale and position (generally disabled)
    Adjusting scaling and position
    WxH+X+YSet scaling to W% by H%, and position to X% by - Y%. W and H are percentages of the original image - size. The position is a percentage, where +50+50 centers the - image in the window.Set scaling to W% by H%, and position to X% + by Y%. W and H are percentages of the + terminal window size. X and Y are also + percentages; e.g., +50+50 centers the image in the + window.
    WxH+X 0xH Multiply vertical scaling factor by H%
    0x0No scaling (show image at normal size).
    Pixmap Operations
    tileTile image. Scaling/position modifiers above will affect the + tile size and origin.
    propscaleWhen scaling, scale proportionally. That is, maintain the + proper aspect ratio for the image. Any portion of the + background not covered by the image is filled with the current + background color.

    @@ -644,8 +698,8 @@ Examples:

    "Canyon.jpg", scaling to 200% by 200%, and center it.
  • "\e]20;;100\007" -- Set scaling back to 100%
  • "\e]20;blackstone.png;0x0\007" -- Set background image to - "blackstone.png" and tile it -
  • "\e]20;;0x0\007" -- Tile current image instead of scaling + "blackstone.png", centered and at original size +
  • "\e]20;;:tile\007" -- Tile current image instead of scaling

    Mouse Reporting

    @@ -1094,14 +1148,25 @@ are: 1, on, yes, or (of course) ESC ] 6 ; 1 ; [ class ; ] color ; attribute ; value BEL - Adjusts a color modifier. class determines which image class will - have its color modifier altered, bg (background, the default), - sb (scrollbar trough), sa (scrollbar anchor), up - (up arrow), or down (down arrow). Next comes the color - which determines how pixels are modified. This is either - image, red, green, or blue. - attribute is one of brightness, contrast, or - gamma, and value is the actual integer value (>= 0). + Adjusts a color modifier. class determines which image + class will have its color modifier altered: bg + (background, the default), up (up arrow), down + (down arrow), sb (scrollbar trough), sa (scrollbar + anchor), st (scrollbar thumb), menu (popup menu + background), menuitem (popup menu items), submenu + (menu items which represent submenus), button (buttons on + the buttonbar), or bbar (buttonbar). Next comes the + color which determines how pixels are modified. This is + either image, red, green, or blue. + attribute is one of brightness, contrast, + or gamma, and value is the actual integer value + (>= 0). As stated in the man page, 256 (0x100) is 100%. + + + ESC ] 6 ; 2 ; { shade | tint } [ class ; ] value BEL + Shade/tint the specified class (see above). For shading, + value is the shade percentage. For tinting, it is the + tint color or mask. ESC ] 6 ; 3 ; BEL @@ -1132,6 +1197,10 @@ are: 1, on, yes, or (of course) focus and disappears when it does not). + + ESC ] 6 ; 14 [ ; boolean ] BEL + Set/toggle display of buttonbars. + ESC ] 6 ; 20 [ ; boolean ] BEL Set/toggle visual bell. @@ -1159,7 +1228,11 @@ are: 1, on, yes, or (of course) ESC ] 6 ; 26 [ ; boolean ] BEL - Set/toggle reporting as keysyms See the man page for details. + Set/toggle reporting as keysyms. See the man page for details. + + + ESC ] 6 ; 27 [ ; boolean ] BEL + Set/toggle the refusal of keyboard input and focus. ESC ] 6 ; 50 ; desktop BEL @@ -1169,69 +1242,36 @@ are: 1, on, yes, or (of course) - ESC ] 6 ; 70 BEL - Exit Eterm (most useful from a menu). - - - ESC ] 6 ; 71 [ ; path ] BEL - Saves the current configuration to the current theme directory, or to - path if specified. If a file of the same name already exists, it - is renamed to path.YYYYMMDD.HHMMSS (where - YYYYMMDD.HHMMSS is the current system time). + ESC ] 6 ; 72 [ ; string ] BEL + Search for and highlight any occurances of string in the + scrollback buffer. ESC ] 6 ; 80 ; level BEL Set the debugging level to level. - - ESC ] 7 ; { echo | tty_write } : params BEL - Eterm IPC: Sends the string params to the client application. - - - ESC ] 7 ; parse : params BEL - Eterm IPC: Causes Eterm to parse params itself. - - - ESC ] 7 ; enl_send : params BEL - Eterm IPC: Sends an IPC command to Enlightenment. Does not wait for a - reply. - - - ESC ] 7 ; enl_query : params BEL - Eterm IPC: Sends an IPC command to Enlightenment and waits for a reply. - - - ESC ] 7 ; winop : op [ windowid ] BEL - Eterm IPC: Performs a window operation on the window given by - windowid. Valid window operations are raise, - lower, map, unmap, kill, and - iconify. The operation should be separated from the - window ID by a space. The default window is the Eterm window itself. - - - ESC ] 7 ; exit BEL - Eterm IPC: Exits Eterm. -

    Transparency

    -The standard for implementing transparency was a mutual effort between myself, -Carsten Haitzler <raster@redhat.com>, Gerald Britton <gbritton@mit.edu>, and -Nat Friedman <nat@nat.org>, based off of an original idea by Nat. First I'll -define the standard, then I'll discuss its justification.

    +The standard for implementing transparency was a mutual effort between +myself, Carsten Haitzler <raster@rasterman.com>, Gerald Britton +<gbritton@mit.edu>, and Nat Friedman <nat@nat.org>, based +off of an original idea by Nat. First I'll define the standard, then +I'll discuss its justification.

    -There are two separate procedures for setting the transparency property (the -_XROOTPMAP_ID atom in X). The first is for persistent X clients such as window -managers. These clients should proceed through their normal mechanism for -setting the desktop image. Once the finalized pixmap has been created, the -_XROOTPMAP_ID property should be set on the desktop window (the same window -which will receive the pixmap...note that this is not necessarily the root -window), and its value should be set to the Pixmap ID. The following sample -code (taken from Enlightenment) demonstrates this:

    diff --git a/src/command.h b/src/command.h
    index dab9c31..aa418af 100644
    --- a/src/command.h
    +++ b/src/command.h
    @@ -26,12 +26,9 @@
     # include 
     # include 
     
    -# ifdef NO_XLOCALE
    +# if defined(NO_XLOCALE) || !defined(HAVE_X11_LOCALE_H)
     #  include 
     # else
    -#  ifndef X_LOCALE
    -#   define X_LOCALE
    -#  endif
     #  include 
     # endif
     
    @@ -202,7 +199,7 @@ if (test) PrivateModes |= (bit); else PrivateModes &= ~(bit);} while (0)
     # endif
     #endif
     
    -#define KBUFSZ		12	/* size of keyboard mapping buffer */
    +#define KBUFSZ		64	/* size of keyboard mapping buffer */
     #define STRING_MAX	512	/* max string size for process_xterm_seq() */
     #define ESC_ARGS	32	/* max # of args for esc sequences */
     
    diff --git a/src/pixmap.c b/src/pixmap.c
    index b895a1e..c28e3e9 100644
    --- a/src/pixmap.c
    +++ b/src/pixmap.c
    @@ -124,7 +124,6 @@ image_mode_any(unsigned char mode)
     unsigned short
     parse_pixmap_ops(char *str)
     {
    -
       unsigned short op = OP_NONE;
       char *token;
     
    @@ -155,7 +154,7 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
       {'\0'};
       unsigned int w = 0, h = 0;
       int x = 0, y = 0;
    -  unsigned short op = OP_NONE;
    +  unsigned short op;
       int flags;
       unsigned short changed = 0;
       char *p, *opstr;
    @@ -172,7 +171,9 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
       }
       if ((opstr = strchr(geom, ':')) != NULL) {
         *opstr++ = '\0';
    -    op |= parse_pixmap_ops(opstr);
    +    op = parse_pixmap_ops(opstr);
    +  } else {
    +    op = pmap->op;
       }
       if ((p = strchr(geom, ';')) == NULL)
         p = strchr(geom, '\0');
    @@ -189,13 +190,19 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
         flags |= WidthValue;	/* default is tile */
         w = 0;
       }
    -  if (flags & WidthValue) {
    -    if (!(flags & XValue)) {
    -      x = 50;
    -    }
    -    if (!(flags & HeightValue))
    -      h = w;
    +  if (!(flags & XValue)) {
    +    x = 50;
    +  }
    +  if (!(flags & HeightValue)) {
    +    h = w;
    +  }
    +  if (!(flags & YValue)) {
    +    if (flags & XNegative)
    +      flags |= YNegative;
    +    y = x;
    +  }
     
    +  if (flags & (WidthValue | HeightValue)) {
         if (w && !h) {
           w = pmap->w * ((float) w / 100);
           h = pmap->h;
    @@ -203,35 +210,16 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
           w = pmap->w;
           h = pmap->h * ((float) h / 100);
         }
    -    /* If they want scaling, but didn't give a percentage, assume 100% */
    -    if (op & OP_PROPSCALE) {
    -      if (!w)
    -	w = 100;
    -      if (!h)
    -	h = 100;
    -    } else {
    -      if ((op & OP_HSCALE) && !w) {
    -	w = 100;
    -      }
    -      if ((op & OP_VSCALE) && !h) {
    -	h = 100;
    -      }
    -    }
    +  }
    +  if (pmap->w != (int) w) {
    +    pmap->w = (int) w;
    +    changed++;
    +  }
    +  if (pmap->h != (int) h) {
    +    pmap->h = (int) h;
    +    changed++;
    +  }
     
    -    if (pmap->w != (int) w) {
    -      pmap->w = (int) w;
    -      changed++;
    -    }
    -    if (pmap->h != (int) h) {
    -      pmap->h = (int) h;
    -      changed++;
    -    }
    -  }
    -  if (!(flags & YValue)) {
    -    if (flags & XNegative)
    -      flags |= YNegative;
    -    y = x;
    -  }
       if (!(flags & WidthValue) && geom[0] != '=') {
         x += pmap->x;
         y += pmap->y;
    @@ -241,9 +229,9 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
         if (flags & YNegative)
           y += 100;
       }
    +  BOUND(x, 0, 100);
    +  BOUND(y, 0, 100);
     
    -  x = (x <= 0 ? 0 : (x >= 100 ? 100 : x));
    -  y = (y <= 0 ? 0 : (y >= 100 ? 100 : y));;
       if (pmap->x != x) {
         pmap->x = x;
         changed++;
    @@ -1032,7 +1020,7 @@ render_simage(simage_t *simg, Window win, unsigned short width, unsigned short h
           ysize = imlib_image_get_height();
           D_PIXMAP(("w == %d, h == %d, x == %d, y == %d, xsize == %d, ysize == %d\n", w, h, x, y, xsize, ysize));
     
    -      if ((simg->pmap->op & OP_PROPSCALE)) {
    +      if ((simg->pmap->op & OP_PROPSCALE) && w && h) {
     	double x_ratio, y_ratio;
     
     	x_ratio = ((double) width) / ((double) xsize);
    diff --git a/src/term.c b/src/term.c
    index c5c3529..5a49260 100644
    --- a/src/term.c
    +++ b/src/term.c
    @@ -987,18 +987,9 @@ process_csi_seq(void)
         return;  /* An NPC.  Punt. */
     
       switch (ch) {
    -#ifdef PRINTPIPE
    -    case 'i':
    -      switch (arg[0]) {
    -	case 0:
    -	  scr_printscreen(0);  /* Print screen "\e[0i" */
    -	  break;
    -	case 5:
    -	  process_print_pipe();  /* Start printing to print pipe "\e[5i" */
    -	  break;
    -      }
    +    case '@':
    +      scr_insdel_chars((arg[0] ? arg[0] : 1), INSERT);
           break;
    -#endif
         case 'A':
         case 'e':  /* Cursor up n lines "\e[A" */
           scr_gotorc((arg[0] ? -arg[0] : -1), 0, RELATIVE);
    @@ -1023,9 +1014,6 @@ process_csi_seq(void)
         case '`':  /* Cursor to column n "\e[G" */
           scr_gotorc(0, (arg[0] ? arg[0] - 1 : +1), R_RELATIVE);
           break;
    -    case 'd':  /* Cursor to row n "\e[d" */
    -      scr_gotorc((arg[0] ? arg[0] - 1 : +1), 0, C_RELATIVE);
    -      break;
         case 'H':
         case 'f':  /* Cursor to row r, column c "\e[;H" */
           switch (nargs) {
    @@ -1043,29 +1031,39 @@ process_csi_seq(void)
         case 'I':  /* Tab right n tab stops "\e[I" */
           scr_tab(arg[0] ? +arg[0] : +1);
           break;
    -    case 'Z':  /* Tab left n tab stops "\e[Z" */
    -      scr_tab(arg[0] ? -arg[0] : -1);
    -      break;
         case 'J':  /* Clear part or all of screen, depending on n "\e[J" */
           scr_erase_screen(arg[0]);
           break;
         case 'K':  /* Clear part or all of line, depending on n "\e[K" */
           scr_erase_line(arg[0]);
           break;
    -    case '@':
    -      scr_insdel_chars((arg[0] ? arg[0] : 1), INSERT);
    -      break;
         case 'L':
           scr_insdel_lines((arg[0] ? arg[0] : 1), INSERT);
           break;
         case 'M':
           scr_insdel_lines((arg[0] ? arg[0] : 1), DELETE);
           break;
    +    case 'P':
    +      scr_insdel_chars((arg[0] ? arg[0] : 1), DELETE);
    +      break;
    +    case 'W':
    +      switch (arg[0]) {
    +	case 0:
    +	  scr_set_tab(1);
    +	  break;		/* = ESC H */
    +	case 2:
    +	  scr_set_tab(0);
    +	  break;		/* = ESC [ 0 g */
    +	case 5:
    +	  scr_set_tab(-1);
    +	  break;		/* = ESC [ 3 g */
    +      }
    +      break;
         case 'X':
           scr_insdel_chars((arg[0] ? arg[0] : 1), ERASE);
           break;
    -    case 'P':
    -      scr_insdel_chars((arg[0] ? arg[0] : 1), DELETE);
    +    case 'Z':  /* Tab left n tab stops "\e[Z" */
    +      scr_tab(arg[0] ? -arg[0] : -1);
           break;
     
         case 'c':
    @@ -1073,6 +1071,31 @@ process_csi_seq(void)
           tt_printf(VT100_ANS);
     #endif
           break;
    +    case 'd':  /* Cursor to row n "\e[d" */
    +      scr_gotorc((arg[0] ? arg[0] - 1 : +1), 0, C_RELATIVE);
    +      break;
    +    case 'g':
    +      switch (arg[0]) {
    +	case 0:
    +	  scr_set_tab(0);
    +	  break;		/* delete tab */
    +	case 3:
    +	  scr_set_tab(-1);
    +	  break;		/* clear all tabs */
    +      }
    +      break;
    +#ifdef PRINTPIPE
    +    case 'i':
    +      switch (arg[0]) {
    +	case 0:
    +	  scr_printscreen(0);  /* Print screen "\e[0i" */
    +	  break;
    +	case 5:
    +	  process_print_pipe();  /* Start printing to print pipe "\e[5i" */
    +	  break;
    +      }
    +      break;
    +#endif
         case 'm':
           process_sgr_mode(nargs, arg);
           break;
    @@ -1170,29 +1193,6 @@ process_csi_seq(void)
             scr_cursor(RESTORE);
           }
           break;
    -    case 'g':
    -      switch (arg[0]) {
    -	case 0:
    -	  scr_set_tab(0);
    -	  break;		/* delete tab */
    -	case 3:
    -	  scr_set_tab(-1);
    -	  break;		/* clear all tabs */
    -      }
    -      break;
    -    case 'W':
    -      switch (arg[0]) {
    -	case 0:
    -	  scr_set_tab(1);
    -	  break;		/* = ESC H */
    -	case 2:
    -	  scr_set_tab(0);
    -	  break;		/* = ESC [ 0 g */
    -	case 5:
    -	  scr_set_tab(-1);
    -	  break;		/* = ESC [ 3 g */
    -      }
    -      break;
       }
     }
     
    @@ -1293,7 +1293,9 @@ process_window_mode(unsigned int nargs, int args[])
       int x, y;
       Screen *scr;
       Window dummy_child;
    -  char buff[128], *name;
    +  int dummy_x, dummy_y;
    +  unsigned int dummy_border, dummy_depth;
    +  char buff[1024], *name;
     
       if (!nargs)
         return;
    @@ -1302,16 +1304,9 @@ process_window_mode(unsigned int nargs, int args[])
         return;
     
       for (i = 0; i < nargs; i++) {
    -    if (args[i] == 14) {
    -      int dummy_x, dummy_y;
    -      unsigned int dummy_border, dummy_depth;
    -
    -      /* Store current width and height in x and y */
    -      XGetGeometry(Xdisplay, TermWin.parent, &dummy_child, &dummy_x, &dummy_y, (unsigned int *) (&x), (unsigned int *) (&y), &dummy_border, &dummy_depth);
    -    }
         switch (args[i]) {
           case 1:
    -	XRaiseWindow(Xdisplay, TermWin.parent);
    +	XMapRaised(Xdisplay, TermWin.parent);
     	break;
           case 2:
     	XIconifyWindow(Xdisplay, TermWin.parent, Xscreen);
    @@ -1330,8 +1325,8 @@ process_window_mode(unsigned int nargs, int args[])
     	  return;		/* Make sure there are 2 args left */
     	y = args[++i];
     	x = args[++i];
    -        UPPER_BOUND(y, scr->height);
    -        UPPER_BOUND(x, scr->width);
    +        BOUND(y, szHint.min_height, scr->height);
    +        BOUND(x, szHint.min_width, scr->width);
     	XResizeWindow(Xdisplay, TermWin.parent, x, y);
     #ifdef USE_XIM
     	xim_set_status_position();
    @@ -1354,8 +1349,8 @@ process_window_mode(unsigned int nargs, int args[])
     	  return;		/* Make sure there are 2 args left */
     	y = args[++i];
     	x = args[++i];
    -        UPPER_BOUND(y, scr->height / TermWin.fheight);
    -        UPPER_BOUND(x, scr->width / TermWin.fwidth);
    +        BOUND(y, 1, scr->height / TermWin.fheight);
    +        BOUND(x, 1, scr->width / TermWin.fwidth);
     	XResizeWindow(Xdisplay, TermWin.parent,
     		      Width2Pixel(x) + 2 * TermWin.internalBorder + (scrollbar_is_visible()? scrollbar_trough_width() : 0),
     		      Height2Pixel(y) + 2 * TermWin.internalBorder);
    @@ -1368,6 +1363,8 @@ process_window_mode(unsigned int nargs, int args[])
     	tt_write((unsigned char *) buff, strlen(buff));
     	break;
           case 14:
    +        /* Store current width and height in x and y */
    +        XGetGeometry(Xdisplay, TermWin.parent, &dummy_child, &dummy_x, &dummy_y, (unsigned int *) (&x), (unsigned int *) (&y), &dummy_border, &dummy_depth);
     	snprintf(buff, sizeof(buff), "\033[4;%d;%dt", y, x);
     	tt_write((unsigned char *) buff, strlen(buff));
     	break;
    @@ -1475,17 +1472,16 @@ process_terminal_mode(int mode, int priv, unsigned int nargs, int arg[])
     	      PrivateModes &= ~(PrivMode_MouseX11);
     	    break;
     
    -#ifdef scrollbar_esc
    -	  case scrollbar_esc:
    -	    PrivCases(PrivMode_scrollbar);
    -	    map_scrollbar(state);
    -	    break;
    -#endif
     	  case 25:		/* visible/invisible cursor */
     	    PrivCases(PrivMode_VisibleCursor);
     	    scr_cursor_visible(state);
     	    break;
     
    +	  case 30:
    +	    PrivCases(PrivMode_scrollbar);
    +	    map_scrollbar(state);
    +	    break;
    +
     	  case 35:
     	    PrivCases(PrivMode_ShiftKeys);
     	    break;
    @@ -1737,9 +1733,10 @@ append_to_icon_name(const char *str)
     
     /*
      * XTerm escape sequences: ESC ] Ps;Pt BEL
    - *       0 = change iconName/title
    - *       1 = change iconName
    + *       0 = change icon name and window title
    + *       1 = change icon name
      *       2 = change title
    + *       3 = set text property on window
      *      46 = change logfile (not implemented)
      *      50 = change font
      *
    @@ -1796,35 +1793,7 @@ xterm_seq(int op, const char *str)
     
         case XTerm_EtermSeq:
     
    -      /* Eterm proprietary escape sequences
    -
    -         Syntax:  ESC ] 6 ;  ;  BEL
    -
    -         where  is:  0    Set/toggle transparency
    -         1     Set color modifiers
    -         3     Force update of pseudo-transparent background
    -         10    Set scrollbar type/width
    -         11    Set/toggle right-side scrollbar
    -         12    Set/toggle floating scrollbar
    -         13    Set/toggle popup scrollbar
    -         20    Set/toggle visual bell
    -         21    Set/toggle map alert
    -         22    Set/toggle xterm selection behavior
    -         23    Set/toggle triple-click line selection
    -         24    Set/toggle viewport mode
    -         25    Set/toggle selection of trailing spaces
    -         30    Do not use
    -         40    Do not use
    -         50    Move window to another desktop
    -         70    Exit Eterm
    -         71    Save current configuration to a file
    -         72    Search scrollback for a string
    -         and  is an optional argument, depending
    -         on the particular sequence being used.  It
    -         (along with its preceeding semicolon) may or
    -         may not be needed.
    -       */
    -
    +      /* Eterm proprietary escape sequences.  See technical reference for details. */
           D_CMD(("Got XTerm_EtermSeq sequence\n"));
           nstr = (char *) strsep(&tnstr, ";");
           eterm_seq_op = (unsigned char) strtol(nstr, (char **) NULL, 10);
    @@ -1832,9 +1801,8 @@ xterm_seq(int op, const char *str)
           /* Yes, there is order to the numbers for this stuff.  And here it is:
              0-9      Image Class/Mode Configuration
              10-19    Scrollbar/Buttonbar/Menu Configuration
    -         20-29    Miscellaneous Toggles
    -         30-39    Foreground/Text Color Configuration
    -         40-49    Background Color Configuration
    +         20-39    Miscellaneous Toggles
    +         40-49    Foreground/Background Color Configuration
              50-69    Window/Window Manager Configuration/Interaction
              70+      Internal Eterm Operations
            */
    @@ -2230,7 +2198,7 @@ xterm_seq(int op, const char *str)
               XSetWMHints(Xdisplay, TermWin.parent, wm_hints);
               XFree(wm_hints);
     	  break;
    -	case 30:
    +	case 40:
     	  nstr = (char *) strsep(&tnstr, ";");
     	  if (nstr) {
     	    if (XParseColor(Xdisplay, cmap, nstr, &xcol) && XAllocColor(Xdisplay, cmap, &xcol)) {
    @@ -2239,7 +2207,7 @@ xterm_seq(int op, const char *str)
     	    }
     	  }
     	  break;
    -	case 40:
    +	case 41:
     	  nstr = (char *) strsep(&tnstr, ";");
     	  if (nstr) {
     	    if (XParseColor(Xdisplay, cmap, nstr, &xcol) && XAllocColor(Xdisplay, cmap, &xcol)) {
    diff --git a/themes/Eterm/theme.cfg.in b/themes/Eterm/theme.cfg.in
    index efd0d5a..f15521e 100644
    --- a/themes/Eterm/theme.cfg.in
    +++ b/themes/Eterm/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -213,11 +213,11 @@ begin imageclasses
           state normal
           color black #999999
           file bar_horizontal_1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 3
           state selected
           file bar_horizontal_2.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 3
         end image
         begin image
    @@ -226,17 +226,17 @@ begin imageclasses
           state normal
           color black #999999
           file menu1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 3 15 3 3
           padding 3 15 3 3
           state selected
           file menu2.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 3 15 3 3
           padding 3 15 3 3
           state clicked
           file menu3.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 3 15 3 3
           padding 3 15 3 3
         end image
    @@ -246,7 +246,7 @@ begin imageclasses
           state normal
           color black #999999
           file bar_horizontal_1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
           state disabled
           color white #333333
    @@ -259,15 +259,15 @@ begin imageclasses
           state normal
           color black #cccccc
           file bar_horizontal_1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
           state selected
           file bar_horizontal_2.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
           state clicked
           file bar_horizontal_3.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
         end image
     end
    diff --git a/themes/auto/theme.cfg.in b/themes/auto/theme.cfg.in
    index b4499bf..1da3695 100644
    --- a/themes/auto/theme.cfg.in
    +++ b/themes/auto/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/cEterm/theme.cfg.in b/themes/cEterm/theme.cfg.in
    index 3bddc38..daf6f6f 100644
    --- a/themes/cEterm/theme.cfg.in
    +++ b/themes/cEterm/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -143,7 +143,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -152,11 +152,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -165,11 +165,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -178,15 +178,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -195,15 +195,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/chooser/theme.cfg.in b/themes/chooser/theme.cfg.in
    index c5fa930..4707dfd 100644
    --- a/themes/chooser/theme.cfg.in
    +++ b/themes/chooser/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/emacs/theme.cfg.in b/themes/emacs/theme.cfg.in
    index 55599fa..ec9a532 100644
    --- a/themes/emacs/theme.cfg.in
    +++ b/themes/emacs/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/irc/theme.cfg.in b/themes/irc/theme.cfg.in
    index 3e9e5d0..96859f9 100644
    --- a/themes/irc/theme.cfg.in
    +++ b/themes/irc/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -146,7 +146,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -155,11 +155,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -168,11 +168,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -181,15 +181,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -198,15 +198,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/mutt/theme.cfg.in b/themes/mutt/theme.cfg.in
    index e790289..c2f094b 100644
    --- a/themes/mutt/theme.cfg.in
    +++ b/themes/mutt/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -143,7 +143,7 @@ end multichar
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
       end image
         begin image
    @@ -152,11 +152,11 @@ end multichar
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
       end image
         begin image
    @@ -165,11 +165,11 @@ end multichar
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
       end image
         begin image
    @@ -178,15 +178,15 @@ end multichar
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
       end image
         begin image
    @@ -195,15 +195,15 @@ end multichar
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
       end image
         begin image
    diff --git a/themes/trans/theme.cfg.in b/themes/trans/theme.cfg.in
    index a03da51..094c0d1 100644
    --- a/themes/trans/theme.cfg.in
    +++ b/themes/trans/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/utils/Esetroot.c b/utils/Esetroot.c
    index cd311ad..a8b603c 100644
    --- a/utils/Esetroot.c
    +++ b/utils/Esetroot.c
    @@ -17,6 +17,7 @@ static const char cvs_ident[] = "$Id$";
     #ifdef HAVE_UNISTD_H
     # include 
     #endif
    +#include 
     
     #ifdef PIXMAP_SUPPORT
     #include