Closed Bug 20268 Opened 25 years ago Closed 25 years ago

[TREE} Distinguish between deleted frame and display:none

Categories

(Core :: XUL, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: selmer, Assigned: hyatt)

References

Details

The tree widget destroys frames when the content scrolls offscreen.  However,
AttributeChanged is indirectly causing these frames to be recreated during its
update cycle even if the content is offscreen.  This routine needs to be fixed
like the other routines in this area to become tree-aware.  Here are David's
comments:

  We need a way to distinguish the case (in the tree widget) where the tree
  has destroyed a frame because it's off screen from the case where a content
  node's display is really none.

  In the tree case, when attribute changes happen on offscreen content nodes,
  getPrimaryFrameFor will give back null, since the tree widget nuked the frame
  when it went off screen.

  The problem with this is that in the nsCSSFrameConstructor::AttributeChanged
  method, the method RecreateFramesForContent is called in this case... we
  obviously don't want to recreate frames... they're offscreen, so we don't
  really want to do anything...

  selmer, AttributeChanged is probably going to have to have an
  #ifdef INCLUDE_XUL with a tree widget trap to prevent the method from being
  called for this case.  The trap would look a lot like the ones already in
  place in ContentInserted and ContentAppended.

I had hoped to do this myself, but I'll be away for the next week and this
really should get into M12.
Status: NEW → ASSIGNED
Summary: [TREE} Distinguish between deleted frame and display:none → [TREE} Distinguish between deleted frame and display:none
Target Milestone: M13
shift+click is dependent on this.
spam: changing qa contact from ckritzer -> paulmac for xul bugs
Blocks: 12288
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
alecf and I got it.  He should be checking in shortly.
Status: RESOLVED → VERIFIED
verified with shift click test case
BULK MOVE: Changing component from XUL to XP Toolkit/Widgets: XUL.  XUL 
component will be deleted.
Component: XUL → XP Toolkit/Widgets: XUL
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: paulmac → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.