| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 document()->updateLayoutIgnorePendingStylesheets(); | 85 document()->updateLayoutIgnorePendingStylesheets(); |
| 86 | 86 |
| 87 RenderBox* box = renderBox(); | 87 RenderBox* box = renderBox(); |
| 88 if (!box || !needsCenteredPositioning(box->style())) | 88 if (!box || !needsCenteredPositioning(box->style())) |
| 89 return; | 89 return; |
| 90 | 90 |
| 91 // Set up dialog's position to be safe-centered in the viewport. | 91 // Set up dialog's position to be safe-centered in the viewport. |
| 92 // FIXME: Figure out what to do in vertical writing mode. | 92 // FIXME: Figure out what to do in vertical writing mode. |
| 93 FrameView* frameView = document()->view(); | 93 FrameView* frameView = document()->view(); |
| 94 int scrollTop = frameView->scrollOffset().height(); | 94 int scrollTop = frameView->scrollOffset().height(); |
| 95 FloatPoint absolutePoint(0, scrollTop); | |
| 96 int visibleHeight = frameView->visibleContentRect(ScrollableArea::IncludeScr
ollbars).height(); | 95 int visibleHeight = frameView->visibleContentRect(ScrollableArea::IncludeScr
ollbars).height(); |
| 96 m_top = scrollTop; |
| 97 if (box->height() < visibleHeight) | 97 if (box->height() < visibleHeight) |
| 98 absolutePoint.move(0, (visibleHeight - box->height()) / 2); | 98 m_top += (visibleHeight - box->height()) / 2; |
| 99 FloatPoint localPoint = box->containingBlock()->absoluteToLocal(absolutePoin
t); | |
| 100 | |
| 101 m_top = localPoint.y(); | |
| 102 m_topIsValid = true; | 99 m_topIsValid = true; |
| 103 | 100 |
| 104 // FIXME: It's inefficient to reattach here. We could do better by mutating
style directly and forcing another layout. | 101 // FIXME: It's inefficient to reattach here. We could do better by mutating
style directly and forcing another layout. |
| 105 reattach(); | 102 reattach(); |
| 106 } | 103 } |
| 107 | 104 |
| 108 void HTMLDialogElement::show() | 105 void HTMLDialogElement::show() |
| 109 { | 106 { |
| 110 if (fastHasAttribute(openAttr)) | 107 if (fastHasAttribute(openAttr)) |
| 111 return; | 108 return; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 127 bool HTMLDialogElement::isPresentationAttribute(const QualifiedName& name) const | 124 bool HTMLDialogElement::isPresentationAttribute(const QualifiedName& name) const |
| 128 { | 125 { |
| 129 // FIXME: Workaround for <https://bugs.webkit.org/show_bug.cgi?id=91058>: mo
difying an attribute for which there is an attribute selector | 126 // FIXME: Workaround for <https://bugs.webkit.org/show_bug.cgi?id=91058>: mo
difying an attribute for which there is an attribute selector |
| 130 // in html.css sometimes does not trigger a style recalc. | 127 // in html.css sometimes does not trigger a style recalc. |
| 131 if (name == openAttr) | 128 if (name == openAttr) |
| 132 return true; | 129 return true; |
| 133 | 130 |
| 134 return HTMLElement::isPresentationAttribute(name); | 131 return HTMLElement::isPresentationAttribute(name); |
| 135 } | 132 } |
| 136 | 133 |
| 134 bool HTMLDialogElement::isReparentedByRenderView(const RenderStyle* style) const |
| 135 { |
| 136 if (style && style->position() == AbsolutePosition) |
| 137 return true; |
| 138 return Element::isReparentedByRenderView(style); |
| 139 } |
| 140 |
| 137 } // namespace WebCore | 141 } // namespace WebCore |
| OLD | NEW |