mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 09:45:41 +00:00
bug 767843 - stop using nsIDOMHTMLOptionElement in a11y r=surkov
This commit is contained in:
parent
f6daaee91c
commit
9e1b56e566
@ -16,15 +16,10 @@
|
||||
#include "States.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsHTMLOptionElement.h"
|
||||
#include "nsIComboboxControlFrame.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsIDOMHTMLOptGroupElement.h"
|
||||
#include "nsIDOMHTMLSelectElement.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIListControlFrame.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIMutableArray.h"
|
||||
|
||||
using namespace mozilla::a11y;
|
||||
|
||||
@ -238,30 +233,24 @@ HTMLSelectOptionAccessible::NativeState()
|
||||
return state;
|
||||
|
||||
// Are we selected?
|
||||
bool isSelected = false;
|
||||
nsCOMPtr<nsIDOMHTMLOptionElement> option(do_QueryInterface(mContent));
|
||||
if (option) {
|
||||
option->GetSelected(&isSelected);
|
||||
if (isSelected)
|
||||
state |= states::SELECTED;
|
||||
}
|
||||
nsHTMLOptionElement* option = nsHTMLOptionElement::FromContent(mContent);
|
||||
bool selected = option && option->Selected();
|
||||
if (selected)
|
||||
state |= states::SELECTED;
|
||||
|
||||
if (selectState & states::OFFSCREEN) {
|
||||
state |= states::OFFSCREEN;
|
||||
}
|
||||
else if (selectState & states::COLLAPSED) {
|
||||
} else if (selectState & states::COLLAPSED) {
|
||||
// <select> is COLLAPSED: add OFFSCREEN, if not the currently
|
||||
// visible option
|
||||
if (!isSelected) {
|
||||
if (!selected) {
|
||||
state |= states::OFFSCREEN;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// Clear offscreen and invisible for currently showing option
|
||||
state &= ~(states::OFFSCREEN | states::INVISIBLE);
|
||||
state |= selectState & states::OPAQUE1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// XXX list frames are weird, don't rely on Accessible's general
|
||||
// visibility implementation unless they get reimplemented in layout
|
||||
state &= ~states::OFFSCREEN;
|
||||
@ -348,8 +337,8 @@ HTMLSelectOptionAccessible::SetSelected(bool aSelect)
|
||||
if (IsDefunct())
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLOptionElement> optionElm(do_QueryInterface(mContent));
|
||||
return optionElm->SetSelected(aSelect);
|
||||
nsHTMLOptionElement* option = nsHTMLOptionElement::FromContent(mContent);
|
||||
return option ? option->SetSelected(aSelect) : NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -7,9 +7,6 @@
|
||||
#define mozilla_a11y_HTMLSelectAccessible_h__
|
||||
|
||||
#include "HTMLFormControlAccessible.h"
|
||||
#include "nsIDOMHTMLOptionsCollection.h"
|
||||
#include "nsIDOMHTMLOptionElement.h"
|
||||
#include "nsIDOMNode.h"
|
||||
|
||||
class nsIMutableArray;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user