OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 if (m_scrollTimer.isActive()) | 366 if (m_scrollTimer.isActive()) |
367 return; | 367 return; |
368 | 368 |
369 // If it's a scrolling region, add the scrolling class. | 369 // If it's a scrolling region, add the scrolling class. |
370 if (isScrollingRegion()) | 370 if (isScrollingRegion()) |
371 m_cueContainer->classList().add(textTrackCueContainerScrollingClass(), A
SSERT_NO_EXCEPTION); | 371 m_cueContainer->classList().add(textTrackCueContainerScrollingClass(), A
SSERT_NO_EXCEPTION); |
372 | 372 |
373 float regionBottom = m_regionDisplayTree->getBoundingClientRect()->bottom(); | 373 float regionBottom = m_regionDisplayTree->getBoundingClientRect()->bottom(); |
374 | 374 |
375 // Find first cue that is not entirely displayed and scroll it upwards. | 375 // Find first cue that is not entirely displayed and scroll it upwards. |
376 for (Element* child = ElementTraversal::firstWithin(*m_cueContainer); child
&& !m_scrollTimer.isActive(); child = ElementTraversal::nextSibling(*child)) { | 376 for (Element* child = ElementTraversal::firstChild(*m_cueContainer); child &
& !m_scrollTimer.isActive(); child = ElementTraversal::nextSibling(*child)) { |
377 float childTop = toHTMLDivElement(child)->getBoundingClientRect()->top()
; | 377 float childTop = toHTMLDivElement(child)->getBoundingClientRect()->top()
; |
378 float childBottom = toHTMLDivElement(child)->getBoundingClientRect()->bo
ttom(); | 378 float childBottom = toHTMLDivElement(child)->getBoundingClientRect()->bo
ttom(); |
379 | 379 |
380 if (regionBottom >= childBottom) | 380 if (regionBottom >= childBottom) |
381 continue; | 381 continue; |
382 | 382 |
383 float height = childBottom - childTop; | 383 float height = childBottom - childTop; |
384 | 384 |
385 m_currentTop -= std::min(height, childBottom - regionBottom); | 385 m_currentTop -= std::min(height, childBottom - regionBottom); |
386 m_cueContainer->setInlineStyleProperty(CSSPropertyTop, m_currentTop, CSS
PrimitiveValue::CSS_PX); | 386 m_cueContainer->setInlineStyleProperty(CSSPropertyTop, m_currentTop, CSS
PrimitiveValue::CSS_PX); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 } | 470 } |
471 | 471 |
472 void VTTRegion::trace(Visitor* visitor) | 472 void VTTRegion::trace(Visitor* visitor) |
473 { | 473 { |
474 visitor->trace(m_cueContainer); | 474 visitor->trace(m_cueContainer); |
475 visitor->trace(m_regionDisplayTree); | 475 visitor->trace(m_regionDisplayTree); |
476 visitor->trace(m_track); | 476 visitor->trace(m_track); |
477 } | 477 } |
478 | 478 |
479 } // namespace blink | 479 } // namespace blink |
OLD | NEW |