public void when_configure_request (ConfigureRequest event) {
    // client asks to change window configuration
    // @see icccm/sec-4.html#s-4.1.5

    // TODO find space in screen to display window?
    Client client = (Client) Client.intern (display, event.window_id);
    if (client.early_unmapped || client.early_destroyed) return;


    if (client.class_hint != null) {
      String id = client.class_hint.res + ":";
      if (pref.no_geometry_change (id)) return;
    }


    /* Should I send a synthetic ConfigureNotify instead of actually
     * do a configure request on the window? We do not re-parent, and thus,
     * according to icccm, a ConfigureNotify will be fine. But xterm
     * relies on a window manager to honour its ConfigureRequest to
     * configure a window, or it falls back to width = height = 1. A mere
     * ConfigureNotify seems not sufficient. (Other clients does not
     * have this problems?)
     */
    client.configure (event.changes ());
    
    client.set_geometry_cache (event.rectangle ());


    // we choose to give it focus if it is normal and it raises
    if (client.state == NORMAL
      && event.stack_mode () == Window.Changes.ABOVE)

      set_focus (client, false);
  }