|
|
|
Lines 604-620
nsViewManager::UpdateWidgetArea(nsView *
|
Link Here
|
|---|
|
| 604 |
if (aWidget->GetTransparencyMode() != eTransparencyTransparent) { |
604 |
if (aWidget->GetTransparencyMode() != eTransparencyTransparent) { |
| 605 |
for (nsIWidget* childWidget = aWidget->GetFirstChild(); |
605 |
for (nsIWidget* childWidget = aWidget->GetFirstChild(); |
| 606 |
childWidget; |
606 |
childWidget; |
| 607 |
childWidget = childWidget->GetNextSibling()) { |
607 |
childWidget = childWidget->GetNextSibling()) { |
| 608 |
nsView* view = nsView::GetViewFor(childWidget); |
608 |
nsView* view = nsView::GetViewFor(childWidget); |
| 609 |
NS_ASSERTION(view != aWidgetView, "will recur infinitely"); |
609 |
NS_ASSERTION(view != aWidgetView, "will recur infinitely"); |
| 610 |
PRBool visible; |
610 |
PRBool visible; |
| 611 |
childWidget->IsVisible(visible); |
611 |
childWidget->IsVisible(visible); |
| 612 |
if (view && visible && !IsWidgetDrawnByPlugin(childWidget, view)) { |
612 |
nsWindowType type; |
|
|
613 |
childWidget->GetWindowType(type); |
| 614 |
if (view && visible && !IsWidgetDrawnByPlugin(childWidget, view) && |
| 615 |
type != eWindowType_popup) { |
| 613 |
// Don't mess with views that are in completely different view |
616 |
// Don't mess with views that are in completely different view |
| 614 |
// manager trees |
617 |
// manager trees |
| 615 |
nsViewManager* viewManager = view->GetViewManager(); |
618 |
nsViewManager* viewManager = view->GetViewManager(); |
| 616 |
if (viewManager->RootViewManager() == RootViewManager()) { |
619 |
if (viewManager->RootViewManager() == RootViewManager()) { |
| 617 |
// get the damage region into view's coordinate system and appunits |
620 |
// get the damage region into view's coordinate system and appunits |
| 618 |
nsRegion damage = |
621 |
nsRegion damage = |
| 619 |
ConvertRegionBetweenViews(intersection, aWidgetView, view); |
622 |
ConvertRegionBetweenViews(intersection, aWidgetView, view); |
| 620 |
|
623 |
|