diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/winwidget.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/winwidget.c b/src/winwidget.c index ab5478d..b82b375 100644 --- a/src/winwidget.c +++ b/src/winwidget.c @@ -758,6 +758,10 @@ void winwidget_move(winwidget winwid, int x, int y) void winwidget_resize(winwidget winwid, int w, int h) { + Window ignored_window; + XWindowAttributes attributes; + int tc_x, tc_y; + if (opt.geom_flags) { winwid->had_resize = 1; return; @@ -769,7 +773,18 @@ void winwidget_resize(winwidget winwid, int w, int h) winwid->w = (w > scr->width) ? scr->width : w; winwid->h = (h > scr->height) ? scr->height : h; } - XResizeWindow(disp, winwid->win, winwid->w, winwid->h); + if (winwid->fullscreen) { + XGetWindowAttributes(disp, winwid->win, &attributes); + XTranslateCoordinates(disp, winwid->win, attributes.root, + -attributes.border_width - + attributes.x, + -attributes.border_width - attributes.y, &tc_x, &tc_y, &ignored_window); + winwid->x = tc_x; + winwid->y = tc_y; + XMoveResizeWindow(disp, winwid->win, tc_x, tc_y, winwid->w, winwid->h); + } else + XResizeWindow(disp, winwid->win, winwid->w, winwid->h); + winwid->had_resize = 1; XFlush(disp); |