X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fframe-draw.c;h=925a8583dd9afc47b4ec3fb471d62cbfe6f14570;hb=720e6978185b09f2b2f60a6b96018238085a7238;hp=0b3411a85b1e4e44407f89efe0a74faf909e667b;hpb=ae4260bb64817c11f9a7140324cd3e3ba113e297;p=ion3.git diff --git a/ioncore/frame-draw.c b/ioncore/frame-draw.c index 0b3411a..925a858 100644 --- a/ioncore/frame-draw.c +++ b/ioncore/frame-draw.c @@ -214,7 +214,7 @@ void frame_clear_shape(WFrame *frame) #define CF_TAB_MAX_TEXT_X_OFF 10 -static void frame_shaped_recalc_bar_size(WFrame *frame) +static void frame_shaped_recalc_bar_size(WFrame *frame, bool complete) { int bar_w=0, textw=0, tmaxw=frame->tab_min_w, tmp=0; WLListIterTmp itmp; @@ -268,7 +268,7 @@ static void frame_shaped_recalc_bar_size(WFrame *frame) bar_w=frame->bar_max_width_q*REGION_GEOM(frame).w; } - if(frame->bar_w!=bar_w){ + if(complete || frame->bar_w!=bar_w){ frame->bar_w=bar_w; frame_set_shape(frame); } @@ -290,7 +290,7 @@ static int init_title(WFrame *frame, int i) } -void frame_recalc_bar(WFrame *frame) +void frame_recalc_bar(WFrame *frame, bool complete) { int textw, i; WLListIterTmp tmp; @@ -301,7 +301,7 @@ void frame_recalc_bar(WFrame *frame) return; if(frame->barmode==FRAME_BAR_SHAPED) - frame_shaped_recalc_bar_size(frame); + frame_shaped_recalc_bar_size(frame, complete); i=0; @@ -371,19 +371,21 @@ void frame_draw(const WFrame *frame, bool complete) void frame_brushes_updated(WFrame *frame) { - WFrameBarMode barmode=FRAME_BAR_INSIDE; + WFrameBarMode barmode; ExtlTab tab; char *s; if(frame->brush==NULL) return; - if(frame->mode==FRAME_MODE_FLOATING) + if(frame->mode==FRAME_MODE_FLOATING){ barmode=FRAME_BAR_SHAPED; - else if(frame->mode==FRAME_MODE_TRANSIENT) - barmode=FRAME_BAR_NONE; - else if(frame->mode==FRAME_MODE_TILED_ALT) + }else if(frame->mode==FRAME_MODE_TILED || frame->mode==FRAME_MODE_UNKNOWN || + frame->mode==FRAME_MODE_TRANSIENT_ALT){ + barmode=FRAME_BAR_INSIDE; + }else{ barmode=FRAME_BAR_NONE; + } if(grbrush_get_extra(frame->brush, "bar", 's', &s)){ if(strcmp(s, "inside")==0) @@ -445,16 +447,20 @@ void frame_updategr(WFrame *frame) region_updategr_default((WRegion*)frame); mplex_fit_managed(&frame->mplex); - frame_recalc_bar(frame); + frame_recalc_bar(frame, TRUE); frame_set_background(frame, TRUE); } -StringIntMap frame_tab_styles[]={ +static StringIntMap frame_tab_styles[]={ + {"tab-frame-unknown", FRAME_MODE_UNKNOWN}, + {"tab-frame-unknown-alt", FRAME_MODE_UNKNOWN_ALT}, {"tab-frame-tiled", FRAME_MODE_TILED}, {"tab-frame-tiled-alt", FRAME_MODE_TILED_ALT}, {"tab-frame-floating", FRAME_MODE_FLOATING}, + {"tab-frame-floating-alt", FRAME_MODE_FLOATING_ALT}, {"tab-frame-transient", FRAME_MODE_TRANSIENT}, + {"tab-frame-transient-alt", FRAME_MODE_TRANSIENT_ALT}, END_STRINGINTMAP };