From 6af56d5411a0ced369d6f8125092fd1a051b497e Mon Sep 17 00:00:00 2001 From: Elaina Martineau Date: Thu, 14 Mar 2019 17:31:58 -0600 Subject: Get actual geometry from Xlib after resize --- src/winwidget.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/winwidget.c b/src/winwidget.c index bb4fdae..12fb8df 100644 --- a/src/winwidget.c +++ b/src/winwidget.c @@ -820,6 +820,8 @@ void winwidget_resize(winwidget winwid, int w, int h, int force_resize) winwid->had_resize = 1; XFlush(disp); + winwidget_get_geometry(winwid, NULL); + if (force_resize && (opt.geom_flags & (WidthValue | HeightValue)) && (winwid->type != WIN_TYPE_THUMBNAIL)) { opt.geom_w = winwid->w; @@ -1059,8 +1061,11 @@ void winwidget_get_geometry(winwidget winwid, int *rect) { unsigned int bw, bp; Window child; + + int inner_rect[4]; + if (!rect) - return; + rect = inner_rect; XGetGeometry(disp, winwid->win, &root, &(rect[0]), &(rect[1]), (unsigned int *)&(rect[2]), (unsigned int *)&(rect[3]), &bw, &bp); -- cgit v1.2.3 From 11eeb961f15219da506a050ffc432e052689dcd6 Mon Sep 17 00:00:00 2001 From: Elaina Martineau Date: Thu, 14 Mar 2019 18:40:20 -0600 Subject: Get geometry after mapping --- src/winwidget.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/winwidget.c b/src/winwidget.c index 12fb8df..f3ecc84 100644 --- a/src/winwidget.c +++ b/src/winwidget.c @@ -721,6 +721,8 @@ void winwidget_show(winwidget winwid) /* wait for the window to map */ D(("Waiting for window to map\n")); XMaskEvent(disp, StructureNotifyMask, &ev); + winwidget_get_geometry(winwid, NULL); + /* Unfortunately, StructureNotifyMask does not only mask * the events of type MapNotify (which we want to mask here) * but also such of type ConfigureNotify (and others, see -- cgit v1.2.3