No, I don't know how to force gdk to process resize events.

If you cc gtkmm-list in your reply, you give other subscribers a chance to answer your question. But in this case you may have better luck on one of the gtk+ lists, such as gtk-app-devel-list.

Kjell

2014-03-23 02:32, Carl Nygard skrev:
Kjell,

Thanks for the info. Do you know of some magic to force gdk to process resize events? I need some way of syncing the window sizes between the actual window and the GdkWindow.

--carl


On Mon, Mar 10, 2014 at 11:15 AM, Kjell Ahlstedt <kjell.ahlst...@bredband.net <mailto:kjell.ahlst...@bredband.net>> wrote:

    I found some info at https://developer.gnome.org/gdk2/2.24/ and
    subpages. Don't know if it's relevant.

            #define gdk_window_get_size gdk_drawable_get_size


    From the description of gdk_drawable_get_size():

        On the X11 platform, if drawable is a GdkWindow, the returned
        size is the size reported in the most-recently-processed
        configure event, rather than the current size on the X server.


    From the description of gdk_window_get_geometry():

        On the X11 platform, the geometry is obtained from the X
        server, so reflects the latest position of window; this may be
        out-of-sync with the position of window delivered in the
        most-recently-processed GdkEventConfigure.
        gdk_window_get_position() in contrast gets the position from
        the most recent configure event.


    Kjell

    2014-03-10 03:14, Carl Nygard skrev:

          // Spit out window dimensions whenever we get an event.
          for(;;) {
                XEvent e;
                Window root;
                int x, y, xret, yret;
                unsigned int widthret,heightret,borderwidthret,depthret;

                XNextEvent(dpy, &e);
                XGetGeometry(dpy, w,
                             &root, &xret, &yret,
                             &widthret, &heightret, &borderwidthret,
    &depthret);
                printf("Window dims: (%d, %d) pos: (%d, %d)\n",
                       widthret, heightret, xret, yret);
                // Re-initializing gdk_win doesn't even help
                gdk_win = gdk_window_foreign_new((guint32)w);
                gdk_window_get_size(gdk_win, &x, &y);
                printf("GdkWindow dims: (%d, %d)\n", x, y);
          }

          // Wait for 10 seconds
          sleep(10);
    }



_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to