rem: tPtr->flags.frozen = False;
add: if (tPtr->flags.frozen && !tPtr->flags.needsRefresh) return;  if(tPtr->flags.monoFont) { int j, c = WMGetBagItemCount(tPtr->gfxItems); TextBlock *tb;   for(j=0; j<c; j++) { if ((tb = (TextBlock *) WMGetFromBag(tPtr->gfxItems, j))) { if (tb->object  && ((W_VIEW(tb->d.widget))->flags.mapped)) WMUnmapWidget(tb->d.widget); } } }   if (tPtr->vpos != vpos) { if (vpos < 0 || tPtr->docHeight < tPtr->visible.h) { tPtr->vpos = 0; } else if(tPtr->docHeight - vpos > tPtr->visible.h - tPtr->visible.y) { tPtr->vpos = vpos; } else { tPtr->vpos = tPtr->docHeight - tPtr->visible.h; } }  if (tPtr->hpos != hpos) { if (hpos < 0 || tPtr->docWidth < tPtr->visible.w) { tPtr->hpos = 0; } else if(tPtr->docWidth - hpos > tPtr->visible.w - tPtr->visible.x) { tPtr->hpos = hpos; } else { tPtr->hpos = tPtr->docWidth - tPtr->visible.w; } }   tPtr->flags.laidOut = False; layOutDocument(tPtr); updateScrollers(tPtr); paintText(tPtr); tPtr->flags.needsRefresh = False;
context: WMThawText(WMText *tPtr) {    if (!tPtr)        return;    tPtr->flags.frozen = False;}