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

Side by Side Diff: Source/core/html/HTMLSelectElement.cpp

Issue 204433002: Selecting OptGroup label does not deselect selected item (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updated platform mac expectation file Created 6 years, 8 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 | « LayoutTests/platform/mac/fast/forms/select/optgroup-clicking-expected.txt ('k') | no next file » | 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) 2010 Nokia Corporation and/or its subsidiary(-ies). 2 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
4 * (C) 1999 Antti Koivisto (koivisto@kde.org) 4 * (C) 1999 Antti Koivisto (koivisto@kde.org)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved.
7 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 7 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
8 * Copyright (C) 2010 Google Inc. All rights reserved. 8 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
10 * 10 *
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 if (menuList->popupIsVisible()) 1276 if (menuList->popupIsVisible())
1277 menuList->hidePopup(); 1277 menuList->hidePopup();
1278 } 1278 }
1279 } 1279 }
1280 } 1280 }
1281 1281
1282 void HTMLSelectElement::updateSelectedState(int listIndex, bool multi, bool shif t) 1282 void HTMLSelectElement::updateSelectedState(int listIndex, bool multi, bool shif t)
1283 { 1283 {
1284 ASSERT(listIndex >= 0); 1284 ASSERT(listIndex >= 0);
1285 1285
1286 HTMLElement* clickedElement = listItems()[listIndex];
1287 ASSERT(clickedElement);
1288 if (isHTMLOptGroupElement(clickedElement))
1289 return;
1290
1286 // Save the selection so it can be compared to the new selection when 1291 // Save the selection so it can be compared to the new selection when
1287 // dispatching change events during mouseup, or after autoscroll finishes. 1292 // dispatching change events during mouseup, or after autoscroll finishes.
1288 saveLastSelection(); 1293 saveLastSelection();
1289 1294
1290 m_activeSelectionState = true; 1295 m_activeSelectionState = true;
1291 1296
1292 bool shiftSelect = m_multiple && shift; 1297 bool shiftSelect = m_multiple && shift;
1293 bool multiSelect = m_multiple && multi && !shift; 1298 bool multiSelect = m_multiple && multi && !shift;
1294 1299
1295 HTMLElement* clickedElement = listItems()[listIndex];
1296 ASSERT(clickedElement);
1297 if (isHTMLOptionElement(*clickedElement)) { 1300 if (isHTMLOptionElement(*clickedElement)) {
1298 // Keep track of whether an active selection (like during drag 1301 // Keep track of whether an active selection (like during drag
1299 // selection), should select or deselect. 1302 // selection), should select or deselect.
1300 if (toHTMLOptionElement(*clickedElement).selected() && multiSelect) 1303 if (toHTMLOptionElement(*clickedElement).selected() && multiSelect)
1301 m_activeSelectionState = false; 1304 m_activeSelectionState = false;
1302 if (!m_activeSelectionState) 1305 if (!m_activeSelectionState)
1303 toHTMLOptionElement(*clickedElement).setSelectedState(false); 1306 toHTMLOptionElement(*clickedElement).setSelectedState(false);
1304 } 1307 }
1305 1308
1306 // If we're not in any special multiple selection mode, then deselect all 1309 // If we're not in any special multiple selection mode, then deselect all
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1646 { 1649 {
1647 return true; 1650 return true;
1648 } 1651 }
1649 1652
1650 bool HTMLSelectElement::supportsAutofocus() const 1653 bool HTMLSelectElement::supportsAutofocus() const
1651 { 1654 {
1652 return true; 1655 return true;
1653 } 1656 }
1654 1657
1655 } // namespace 1658 } // namespace
OLDNEW
« no previous file with comments | « LayoutTests/platform/mac/fast/forms/select/optgroup-clicking-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698