summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/winwidget.c17
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);