Closed Bug 2421 Opened 26 years ago Closed 26 years ago

Content of frames in framesets not redrawn on minimize/restore

Categories

(Core :: Layout: Images, Video, and HTML Frames, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED WONTFIX

People

(Reporter: jst, Assigned: beard)

References

()

Details

(Whiteboard: Windows is weird, doesn't refresh child windows on unminimize)

Open --- frameset.html <html> <frameset cols="*,*"> <frame name="f1" src="hello.html" scrolling="auto"> <frame name="f2" src="hello.html" scrolling="auto"> </frameset> </html> --- --- hello.html <html> <body> <p>Hello</p> </body> </html> --- and minimize and restore the window (viewer.exe). The frameset is drawn (the bar in the middle of the doc) but the content in the frames aren't drawn until the window is sent a redraw (cover/uncover the window).
*** Bug 2602 has been marked as a duplicate of this bug. ***
Adding a URL to use as a test.
*** Bug 1626 has been marked as a duplicate of this bug. ***
updating...... reproducible on WinNT and Win98 99032 never/not a problem on MacMonkey 99032 or Linux 99033
QA Contact: 4130
Setting all current Open/Normal to M4.
Assignee: karnaze → kmcclusk
Kevin and I looked at this and discovered that nsWebShell::Repaint does not appear to do anything useful. When this is fixed, the widget library needs to be changed so that a viewport resize does not propogate to the windows of the sub documents. When a sub document's window gets the resize, a reflow is initiated on the sub documents root frame. This will need to stop, since the viewport resize should initiate a reflow that will propogate to the sub documents. But of course this won't happend until nsWebShell::Repaint is fixed. Kevin, please talk to Nisheeth and/or Michael about this. Part of this problem is Nisheeth's, since he is taking over nsWebShell.
Status: NEW → ASSIGNED
Target Milestone: M4 → M5
Target Milestone: M5 → M7
Target Milestone: M7 → M8
Assignee: kmcclusk → beard
Status: ASSIGNED → NEW
This requires a new functionality in the view manager. I tried rewriting the nsWebshell::Repaint as follows: if (mContentViewer) { nsIDocumentViewer* docv = nsnull; mContentViewer->QueryInterface(kIDocumentViewerIID, (void**) &docv); if (nsnull != docv) { nsIPresContext* cx = nsnull; docv->GetPresContext(cx); if (nsnull != cx) { nsIPresShell *shell = nsnull; cx->GetShell(&shell); if (nsnull != shell) { nsIViewManager *vm = nsnull; shell->GetViewManager(&vm); if (nsnull != vm) { nsIView *rootview = nsnull; vm->GetRootView(rootview); if (nsnull != rootview) { vm->UpdateView(rootview, nsnull, NS_VMREFRESH_IMMEDIATE); } NS_RELEASE(vm); } NS_RELEASE(shell); } NS_RELEASE(cx); } NS_RELEASE(docv); } } The call to vm->UpdateView(rootview, nsnull, NS_VMREFRESH_IMMEDIATE); is not adequate. We need a new method on the view manager which walks down the view manager tree and invalidates any view which as a widget. The invalidation of the widget will cause it to be repainted. The nsViewManager:UpdateView doesn't seem to get to iframe views. A better example is test9.html. Bring it up in the viewer, scroll the top frame down a little so you can see example1 and example2 iframes. Minimize the window, than restore it. You will notice that none of the frames are refreshed. If you add the code above the frames in the frameset are repainted, but the iframes are not repainted. Patrick, I'm re-assigning to you, This looks like a view manager issue. I think we need a public method similar to the UpdateDirtyViews private method. UpdateDirtyViews may work as is, simply make it a public method and call it instead of the UpdateView above.
Status: NEW → ASSIGNED
I don't see any problems on today's build. Has this been looked at recently?
I have been unable to reproduce it on WinNT after trying the last two days. I got the sense though that kmcclusk did so recently when those comments were made on 6/16. I could be missing something.
Apprunner (on WinNT) doesn't have this problem any more but I still see the problem in viewer...
moving to m9. beard's on vacation
Whiteboard: Windows is weird, doesn't refresh child windows on unminimize
Target Milestone: M9 → M11
Since this only happens in viewer, it's definitely getting pushed back. I'm tempted to mark this as WONTFIX.
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → WONTFIX
Status: RESOLVED → VERIFIED
OK, marking VERIFIED
Product: Core → Core Graveyard
Component: Layout: HTML Frames → Layout: Images
Product: Core Graveyard → Core
You need to log in before you can comment on or make changes to this bug.