Toggling of tabs doesn't seem to work in floatws, they just get painted black (or backgroud colour), but the window shape isn't updated, so you can still move a frame by click&holding the pseudo-invisible tab.
After some thinking i still can't think of that behavious as a feature.
First attempt to solve this was to alter floatws/floatframe.c:frame_set_shape (attached).
This helps to calculate the correct window shape, main remaining problem is, that this function isn't called form genframe_toggle_tab.
I don't know if I should change genframe to include a DynFun updateShape or overwrite genframe_toggle_tab (more generic but IMHO overdesigned) in floatframe (smaller impact). frame_set_shape could also be called from some calc_whatever function which is used by the drawing code.
so, which is the preferred solution?
thanks, Andreas
diff -u -r ion-2-20040207/floatws/floatframe.c ion-orig/floatws/floatframe.c
--- ion-2-20040207/floatws/floatframe.c 2004-01-16 19:39:19.000000000 +0100
+++ ion-orig/floatws/floatframe.c 2004-02-13 22:21:50.000000000 +0100
@@ -274,13 +274,16 @@
static void floatframe_set_shape(WFloatFrame *frame)
{
WRectangle gs[2];
+ int cnt=1;
if(frame->genframe.brush!=NULL){
- floatframe_bar_geom(frame, gs+0);
- floatframe_border_geom(frame, gs+1);
+ floatframe_border_geom(frame, gs+0);
+
+ if(!(frame->genframe.flags&WGENFRAME_TAB_HIDE))
+ floatframe_bar_geom(frame, gs+cnt++);
grbrush_set_window_shape(frame->genframe.brush, WGENFRAME_WIN(frame),
- TRUE, 2, gs);
+ TRUE, cnt, gs);
}
}
