window configuration events

Steven J Abner pheonix.sja at att.net
Thu Jul 25 18:32:10 UTC 2024


On Thu, Jul 25 2024 at 05:33:36 PM +0000, Uli Schlachter 
<psychon at znc.in> wrote:
> Untested pseudo-C:

Preliminary, not fully tested, we have a winner:

  if ((configure->x | configure->y) != 0) {
    xcb_screen_t *screen;
    screen = xcb_setup_roots_iterator(xcb_get_setup(connection)).data;
    xcb_translate_coordinates_reply_t *cfg;
    cfg = xcb_translate_coordinates_reply(connection,
                        xcb_translate_coordinates(connection,
                        iface->window, screen->root, 0, 0), NULL);
    master_iface->mete_box.x = cfg->dst_x;
    master_iface->mete_box.y = cfg->dst_y;
    free(cfg);
  }

Other test, worked on good manager, other said "I'm ignoring you". But 
results in double configure_notify on good manager:

  if ((configure->x | configure->y) != 0) {
    xcb_configure_window(connection,
    master_iface->window, 0, NULL);
  } else {
    master_iface->mete_box.x = configure->x;
    master_iface->mete_box.y = configure->y;
  }

Hopefully this will help those using XCB to defeat window manager 
incongruities.
Thank you both! and God bless.
Steve





More information about the Xcb mailing list