[..]
>
> Is this maybe a parent-redrawing-child thing?
>
> By which I mean, if the label is part of "Outer" it does not get redrawn
> because it is outside the area that Outer thinks it has to deal with
> damage for.
>
> But if/when Outer gets damaged, it tells its children to redraw fully
> (?does it?) - and so if the label is part of Inner, then it gets redrawn
> because Inner gets told to redraw.
>
> Maybe something like that?

I pretty sure it's something like that.  For instance, this
change makes it work, but leaves me with a poor mental
picture of what's going on.

class Outer : public Fl_Group {
public:
    Outer(int x, int y, int w, int h, char const* label = 0)
        : Fl_Group(x, y, w, h)
        //  don't make inner_ a member of Outer
        //, inner_(new Inner(x, y, w, h, label))
    {
        end();
        // Instead, make inner & outer siblings
        inner_ = new Inner(x, y, w, h, label);
    }
private:
    Inner* inner_;
};

Could it be that the location of the label outside the group
boundary has little to do with it after all?
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to