Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Side by Side Diff: Source/core/platform/ScrollView.cpp

Issue 59333002: Make select drop down popup RTL aware (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | Source/core/platform/chromium/FramelessScrollView.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008 Apple 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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 // Set up the range, but only do this if we're not in a nested call (to avoi d 425 // Set up the range, but only do this if we're not in a nested call (to avoi d
426 // doing it multiple times). 426 // doing it multiple times).
427 if (m_updateScrollbarsPass) 427 if (m_updateScrollbarsPass)
428 return; 428 return;
429 429
430 m_inUpdateScrollbars = true; 430 m_inUpdateScrollbars = true;
431 431
432 if (m_horizontalScrollbar) { 432 if (m_horizontalScrollbar) {
433 int clientWidth = visibleWidth(); 433 int clientWidth = visibleWidth();
434 IntRect oldRect(m_horizontalScrollbar->frameRect()); 434 IntRect oldRect(m_horizontalScrollbar->frameRect());
435 IntRect hBarRect(0, 435 IntRect hBarRect((shouldPlaceVerticalScrollbarOnLeft() && m_verticalScro llbar) ? m_verticalScrollbar->width() : 0,
436 height() - m_horizontalScrollbar->height(), 436 height() - m_horizontalScrollbar->height(),
437 width() - (m_verticalScrollbar ? m_verticalScrollbar->wi dth() : 0), 437 width() - (m_verticalScrollbar ? m_verticalScrollbar->wi dth() : 0),
438 m_horizontalScrollbar->height()); 438 m_horizontalScrollbar->height());
439 m_horizontalScrollbar->setFrameRect(hBarRect); 439 m_horizontalScrollbar->setFrameRect(hBarRect);
440 if (!m_scrollbarsSuppressed && oldRect != m_horizontalScrollbar->frameRe ct()) 440 if (!m_scrollbarsSuppressed && oldRect != m_horizontalScrollbar->frameRe ct())
441 m_horizontalScrollbar->invalidate(); 441 m_horizontalScrollbar->invalidate();
442 442
443 if (m_scrollbarsSuppressed) 443 if (m_scrollbarsSuppressed)
444 m_horizontalScrollbar->setSuppressInvalidation(true); 444 m_horizontalScrollbar->setSuppressInvalidation(true);
445 m_horizontalScrollbar->setEnabled(contentsWidth() > clientWidth); 445 m_horizontalScrollbar->setEnabled(contentsWidth() > clientWidth);
446 m_horizontalScrollbar->setProportion(clientWidth, contentsWidth()); 446 m_horizontalScrollbar->setProportion(clientWidth, contentsWidth());
447 if (m_scrollbarsSuppressed) 447 if (m_scrollbarsSuppressed)
448 m_horizontalScrollbar->setSuppressInvalidation(false); 448 m_horizontalScrollbar->setSuppressInvalidation(false);
449 } 449 }
450 450
451 if (m_verticalScrollbar) { 451 if (m_verticalScrollbar) {
452 int clientHeight = visibleHeight(); 452 int clientHeight = visibleHeight();
453 IntRect oldRect(m_verticalScrollbar->frameRect()); 453 IntRect oldRect(m_verticalScrollbar->frameRect());
454 IntRect vBarRect(width() - m_verticalScrollbar->width(), 454 IntRect vBarRect(shouldPlaceVerticalScrollbarOnLeft() ? 0 : (width() - m _verticalScrollbar->width()),
eseidel 2013/11/13 18:00:53 ScrollView is also a parent of FrameView. I'm cur
455 0, 455 0,
456 m_verticalScrollbar->width(), 456 m_verticalScrollbar->width(),
457 height() - (m_horizontalScrollbar ? m_horizontalScrollb ar->height() : 0)); 457 height() - (m_horizontalScrollbar ? m_horizontalScrollb ar->height() : 0));
458 m_verticalScrollbar->setFrameRect(vBarRect); 458 m_verticalScrollbar->setFrameRect(vBarRect);
459 if (!m_scrollbarsSuppressed && oldRect != m_verticalScrollbar->frameRect ()) 459 if (!m_scrollbarsSuppressed && oldRect != m_verticalScrollbar->frameRect ())
460 m_verticalScrollbar->invalidate(); 460 m_verticalScrollbar->invalidate();
461 461
462 if (m_scrollbarsSuppressed) 462 if (m_scrollbarsSuppressed)
463 m_verticalScrollbar->setSuppressInvalidation(true); 463 m_verticalScrollbar->setSuppressInvalidation(true);
464 m_verticalScrollbar->setEnabled(contentsHeight() > clientHeight); 464 m_verticalScrollbar->setEnabled(contentsHeight() > clientHeight);
(...skipping 26 matching lines...) Expand all
491 if (m_verticalScrollbar) 491 if (m_verticalScrollbar)
492 m_verticalScrollbar->offsetDidChange(); 492 m_verticalScrollbar->offsetDidChange();
493 493
494 m_inUpdateScrollbars = false; 494 m_inUpdateScrollbars = false;
495 } 495 }
496 496
497 const int panIconSizeLength = 16; 497 const int panIconSizeLength = 16;
498 498
499 IntRect ScrollView::rectToCopyOnScroll() const 499 IntRect ScrollView::rectToCopyOnScroll() const
500 { 500 {
501 IntRect scrollViewRect = convertToRootView(IntRect(0, 0, visibleWidth(), vis ibleHeight())); 501 IntRect scrollViewRect = convertToRootView(IntRect((shouldPlaceVerticalScrol lbarOnLeft() && verticalScrollbar()) ? verticalScrollbar()->width() : 0, 0, visi bleWidth(), visibleHeight()));
502 if (hasOverlayScrollbars()) { 502 if (hasOverlayScrollbars()) {
503 int verticalScrollbarWidth = (verticalScrollbar() && !hasLayerForVertica lScrollbar()) ? verticalScrollbar()->width() : 0; 503 int verticalScrollbarWidth = (verticalScrollbar() && !hasLayerForVertica lScrollbar()) ? verticalScrollbar()->width() : 0;
504 int horizontalScrollbarHeight = (horizontalScrollbar() && !hasLayerForHo rizontalScrollbar()) ? horizontalScrollbar()->height() : 0; 504 int horizontalScrollbarHeight = (horizontalScrollbar() && !hasLayerForHo rizontalScrollbar()) ? horizontalScrollbar()->height() : 0;
505 505
506 scrollViewRect.setWidth(scrollViewRect.width() - verticalScrollbarWidth) ; 506 scrollViewRect.setWidth(scrollViewRect.width() - verticalScrollbarWidth) ;
507 scrollViewRect.setHeight(scrollViewRect.height() - horizontalScrollbarHe ight); 507 scrollViewRect.setHeight(scrollViewRect.height() - horizontalScrollbarHe ight);
508 } 508 }
509 return scrollViewRect; 509 return scrollViewRect;
510 } 510 }
511 511
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 } 785 }
786 786
787 IntRect ScrollView::scrollCornerRect() const 787 IntRect ScrollView::scrollCornerRect() const
788 { 788 {
789 IntRect cornerRect; 789 IntRect cornerRect;
790 790
791 if (hasOverlayScrollbars()) 791 if (hasOverlayScrollbars())
792 return cornerRect; 792 return cornerRect;
793 793
794 if (m_horizontalScrollbar && width() - m_horizontalScrollbar->width() > 0) { 794 if (m_horizontalScrollbar && width() - m_horizontalScrollbar->width() > 0) {
795 cornerRect.unite(IntRect(m_horizontalScrollbar->width(), 795 cornerRect.unite(IntRect(shouldPlaceVerticalScrollbarOnLeft() ? 0 : m_ho rizontalScrollbar->width(),
796 height() - m_horizontalScrollbar->height(), 796 height() - m_horizontalScrollbar->height(),
797 width() - m_horizontalScrollbar->width(), 797 width() - m_horizontalScrollbar->width(),
798 m_horizontalScrollbar->height())); 798 m_horizontalScrollbar->height()));
799 } 799 }
800 800
801 if (m_verticalScrollbar && height() - m_verticalScrollbar->height() > 0) { 801 if (m_verticalScrollbar && height() - m_verticalScrollbar->height() > 0) {
802 cornerRect.unite(IntRect(width() - m_verticalScrollbar->width(), 802 cornerRect.unite(IntRect(shouldPlaceVerticalScrollbarOnLeft() ? 0 : (wid th() - m_verticalScrollbar->width()),
803 m_verticalScrollbar->height(), 803 m_verticalScrollbar->height(),
804 m_verticalScrollbar->width(), 804 m_verticalScrollbar->width(),
805 height() - m_verticalScrollbar->height())); 805 height() - m_verticalScrollbar->height()));
806 } 806 }
807 807
808 return cornerRect; 808 return cornerRect;
809 } 809 }
810 810
811 bool ScrollView::isScrollCornerVisible() const 811 bool ScrollView::isScrollCornerVisible() const
812 { 812 {
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 int ScrollView::pageStep(ScrollbarOrientation orientation) const 1137 int ScrollView::pageStep(ScrollbarOrientation orientation) const
1138 { 1138 {
1139 int length = (orientation == HorizontalScrollbar) ? visibleWidth() : visible Height(); 1139 int length = (orientation == HorizontalScrollbar) ? visibleWidth() : visible Height();
1140 int minPageStep = static_cast<float>(length) * minFractionToStepWhenPaging() ; 1140 int minPageStep = static_cast<float>(length) * minFractionToStepWhenPaging() ;
1141 int pageStep = std::max(minPageStep, length - maxOverlapBetweenPages()); 1141 int pageStep = std::max(minPageStep, length - maxOverlapBetweenPages());
1142 1142
1143 return std::max(pageStep, 1); 1143 return std::max(pageStep, 1);
1144 } 1144 }
1145 1145
1146 } // namespace WebCore 1146 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/core/platform/chromium/FramelessScrollView.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698