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

Side by Side Diff: Source/WebCore/platform/chromium/PopupListBox.cpp

Issue 11099038: Merge 130513 - [chromium] Only inflate the height of rows in a popup menu when a touch device is de… (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1271/
Patch Set: Created 8 years, 2 months 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/WebCore/platform/chromium/PopupMenuChromium.h » ('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) 2011, Google Inc. All rights reserved. 2 * Copyright (c) 2011, 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 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 clearSelection(); 607 clearSelection();
608 } 608 }
609 609
610 void PopupListBox::setOriginalIndex(int index) 610 void PopupListBox::setOriginalIndex(int index)
611 { 611 {
612 m_originalIndex = m_selectedIndex = index; 612 m_originalIndex = m_selectedIndex = index;
613 } 613 }
614 614
615 int PopupListBox::getRowHeight(int index) 615 int PopupListBox::getRowHeight(int index)
616 { 616 {
617 int minimumHeight = PopupMenuChromium::minimumRowHeight();
618 if (m_settings.deviceSupportsTouch)
619 minimumHeight = max(minimumHeight, PopupMenuChromium::optionRowHeightFor Touch());
620
617 if (index < 0 || m_popupClient->itemStyle(index).isDisplayNone()) 621 if (index < 0 || m_popupClient->itemStyle(index).isDisplayNone())
618 return PopupMenuChromium::minimumRowHeight(); 622 return minimumHeight;
619 623
620 // Separator row height is the same size as itself. 624 // Separator row height is the same size as itself.
621 if (m_popupClient->itemIsSeparator(index)) 625 if (m_popupClient->itemIsSeparator(index))
622 return max(separatorHeight, (PopupMenuChromium::minimumRowHeight())); 626 return max(separatorHeight, minimumHeight);
623 627
624 String icon = m_popupClient->itemIcon(index); 628 String icon = m_popupClient->itemIcon(index);
625 RefPtr<Image> image(Image::loadPlatformResource(icon.utf8().data())); 629 RefPtr<Image> image(Image::loadPlatformResource(icon.utf8().data()));
626 630
627 int fontHeight = getRowFont(index).fontMetrics().height(); 631 int fontHeight = getRowFont(index).fontMetrics().height();
628 int iconHeight = (image && !image->isNull()) ? image->rect().height() : 0; 632 int iconHeight = (image && !image->isNull()) ? image->rect().height() : 0;
629 633
630 int linePaddingHeight = m_popupClient->menuStyle().menuType() == PopupMenuSt yle::AutofillPopup ? kLinePaddingHeight : 0; 634 int linePaddingHeight = m_popupClient->menuStyle().menuType() == PopupMenuSt yle::AutofillPopup ? kLinePaddingHeight : 0;
631 int calculatedRowHeight = max(fontHeight, iconHeight) + linePaddingHeight * 2; 635 int calculatedRowHeight = max(fontHeight, iconHeight) + linePaddingHeight * 2;
632 return max(calculatedRowHeight, PopupMenuChromium::minimumRowHeight()); 636 return max(calculatedRowHeight, minimumHeight);
633 } 637 }
634 638
635 IntRect PopupListBox::getRowBounds(int index) 639 IntRect PopupListBox::getRowBounds(int index)
636 { 640 {
637 if (index < 0) 641 if (index < 0)
638 return IntRect(0, 0, visibleWidth(), getRowHeight(index)); 642 return IntRect(0, 0, visibleWidth(), getRowHeight(index));
639 643
640 return IntRect(0, m_items[index]->yOffset, visibleWidth(), getRowHeight(inde x)); 644 return IntRect(0, m_items[index]->yOffset, visibleWidth(), getRowHeight(inde x));
641 } 645 }
642 646
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 { 908 {
905 return numItems() && IntRect(0, 0, width(), height()).contains(point); 909 return numItems() && IntRect(0, 0, width(), height()).contains(point);
906 } 910 }
907 911
908 int PopupListBox::popupContentHeight() const 912 int PopupListBox::popupContentHeight() const
909 { 913 {
910 return height(); 914 return height();
911 } 915 }
912 916
913 } // namespace WebCore 917 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/WebCore/platform/chromium/PopupMenuChromium.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698