void Desktop::draw(void) { if(!damage()) return; if(damage() & (FL_DAMAGE_ALL | FL_DAMAGE_EXPOSE)) { /* * If any overlay was previously visible during full redraw, it will not be cleared because of fast flip. * This will assure that does not happened. */ fl_overlay_clear(); EDE_DESKTOP_WINDOW::draw(); //E_DEBUG(E_STRLOC ": REDRAW ALL\n"); } if(damage() & EDE_DESKTOP_DAMAGE_OVERLAY) { if(selbox->show) fl_overlay_rect(selbox->x, selbox->y, selbox->w, selbox->h); else fl_overlay_clear(); /* * now scan all icons and see if they needs redraw, and if do * just update their label since it is indicator of selection */ for(int i = 0; i < children(); i++) { if(child(i)->damage() == EDE_DESKTOP_DAMAGE_CHILD_LABEL) { update_child(*child(i)); child(i)->clear_damage(); //E_DEBUG(E_STRLOC ": ICON REDRAW \n"); } } } clear_damage(); }
FL_EXPORT_C(void,flc_overlay_clear)( ){ fl_overlay_clear(); }