Bug 1649217 - Part 3: Support isSelectionCollapsed in caret moved xpcom iface. r=Jamie

Differential Revision: https://phabricator.services.mozilla.com/D81913
This commit is contained in:
Eitan Isaacson 2020-07-02 17:43:21 +00:00
parent 9abbad9091
commit 970939c823
3 changed files with 9 additions and 3 deletions

View File

@ -240,7 +240,8 @@ already_AddRefed<nsIAccessibleEvent> a11y::MakeXPCEvent(AccEvent* aEvent) {
if (eventGroup & (1 << AccEvent::eCaretMoveEvent)) {
AccCaretMoveEvent* cm = downcast_accEvent(aEvent);
xpEvent = new xpcAccCaretMoveEvent(type, ToXPC(acc), ToXPCDocument(doc),
node, fromUser, cm->GetCaretOffset());
node, fromUser, cm->GetCaretOffset(),
cm->IsSelectionCollapsed());
return xpEvent.forget();
}

View File

@ -15,4 +15,9 @@ interface nsIAccessibleCaretMoveEvent: nsIAccessibleEvent
* Return caret offset.
*/
readonly attribute long caretOffset;
/**
* Return true if there is no selection.
*/
readonly attribute bool isSelectionCollapsed;
};

View File

@ -315,8 +315,8 @@ mozilla::ipc::IPCResult DocAccessibleParent::RecvCaretMoveEvent(
nsINode* node = nullptr;
bool fromUser = true; // XXX fix me
uint32_t type = nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED;
RefPtr<xpcAccCaretMoveEvent> event =
new xpcAccCaretMoveEvent(type, xpcAcc, doc, node, fromUser, aOffset);
RefPtr<xpcAccCaretMoveEvent> event = new xpcAccCaretMoveEvent(
type, xpcAcc, doc, node, fromUser, aOffset, aIsSelectionCollapsed);
nsCoreUtils::DispatchAccEvent(std::move(event));
return IPC_OK();