X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.c;h=f3425ba3a840d386128980e61af597e75bbf5788;hb=6a9d502f2020a73202b919ee3e9d85999ededd0f;hp=37e39e2eebd0bd5925472e56d23da6c4f47e6f52;hpb=37aaf4c1e44c205ccbe9ddb7f7633afdcf57fa0f;p=chaz%2Fopenbox diff --git a/openbox/frame.c b/openbox/frame.c index 37e39e2e..f3425ba3 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -251,7 +251,6 @@ void frame_show(ObFrame *self) if (!self->visible) { self->visible = TRUE; XMapWindow(ob_display, self->client->window); - XMapWindow(ob_display, self->plate); XMapWindow(ob_display, self->window); } } @@ -262,10 +261,6 @@ void frame_hide(ObFrame *self) self->visible = FALSE; if (!frame_iconify_animating(self)) XUnmapWindow(ob_display, self->window); - /* unmap the plate along with the client. some people (libwnck) look - to see if it is unmapped when the client is iconified, for whatever - reason. so let's play along... */ - XUnmapWindow(ob_display, self->plate); /* we unmap the client itself so that we can get MapRequest events, and because the ICCCM tells us to! */ XUnmapWindow(ob_display, self->client->window); @@ -358,6 +353,11 @@ void frame_adjust_area(ObFrame *self, gboolean moved, } else self->width = self->client->area.width + self->cbwidth_x * 2; + /* some elements are sized based of the width, so don't let them have + negative values */ + self->width = MAX(self->width, + (ob_rr_theme->grip_width + self->bwidth) * 2) + 1; + STRUT_SET(self->size, self->cbwidth_x + (!self->max_horz ? self->bwidth : 0), self->cbwidth_y + self->bwidth, @@ -748,6 +748,7 @@ void frame_adjust_area(ObFrame *self, gboolean moved, if (resized && (self->decorations & OB_FRAME_DECOR_TITLEBAR)) XResizeWindow(ob_display, self->label, self->label_width, ob_rr_theme->label_height); + } static void frame_adjust_cursors(ObFrame *self)