Skip to content

Commit 447aa32

Browse files
committed
Bug 1862802 part 1: Provide an argument to PlatformCaretMoveEvent specifying whether the event was caused by user input. r=eeejay
This is needed in order to support find in page on Android using remote caret events instead of virtual cursor change events. Depends on D192641 Differential Revision: https://phabricator.services.mozilla.com/D192642
1 parent fe1644b commit 447aa32

12 files changed

+29
-19
lines changed

accessible/android/Platform.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ void a11y::PlatformFocusEvent(Accessible* aTarget,
142142
void a11y::PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
143143
bool aIsSelectionCollapsed,
144144
int32_t aGranularity,
145-
const LayoutDeviceIntRect& aCaretRect) {
145+
const LayoutDeviceIntRect& aCaretRect,
146+
bool aFromUser) {
146147
RefPtr<SessionAccessibility> sessionAcc =
147148
SessionAccessibility::GetInstanceFor(aTarget);
148149

accessible/atk/AccessibleWrap.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1069,7 +1069,8 @@ void a11y::PlatformFocusEvent(Accessible* aTarget,
10691069
void a11y::PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
10701070
bool aIsSelectionCollapsed,
10711071
int32_t aGranularity,
1072-
const LayoutDeviceIntRect& aCaretRect) {
1072+
const LayoutDeviceIntRect& aCaretRect,
1073+
bool aFromUser) {
10731074
AtkObject* wrapper = GetWrapperFor(aTarget);
10741075
g_signal_emit_by_name(wrapper, "text_caret_moved", aOffset);
10751076
}

accessible/base/Platform.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ void PlatformFocusEvent(Accessible* aTarget,
9999
const LayoutDeviceIntRect& aCaretRect);
100100
void PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
101101
bool aIsSelectionCollapsed, int32_t aGranularity,
102-
const LayoutDeviceIntRect& aCaretRect);
102+
const LayoutDeviceIntRect& aCaretRect,
103+
bool aFromUser);
103104
void PlatformTextChangeEvent(Accessible* aTarget, const nsAString& aStr,
104105
int32_t aStart, uint32_t aLen, bool aIsInsert,
105106
bool aFromUser);

accessible/generic/LocalAccessible.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,8 @@ nsresult LocalAccessible::HandleAccEvent(AccEvent* aEvent) {
915915
AccCaretMoveEvent* event = downcast_accEvent(aEvent);
916916
ipcDoc->SendCaretMoveEvent(
917917
id, event->GetCaretOffset(), event->IsSelectionCollapsed(),
918-
event->IsAtEndOfLine(), event->GetGranularity());
918+
event->IsAtEndOfLine(), event->GetGranularity(),
919+
event->IsFromUserInput());
919920
break;
920921
}
921922
case nsIAccessibleEvent::EVENT_TEXT_INSERTED:
@@ -1038,9 +1039,9 @@ nsresult LocalAccessible::HandleAccEvent(AccEvent* aEvent) {
10381039
// AccessibleWrap::UpdateSystemCaretFor currently needs to call
10391040
// HyperTextAccessible::GetCaretRect again to get the widget and there's
10401041
// no point calling it twice.
1041-
PlatformCaretMoveEvent(target, event->GetCaretOffset(),
1042-
event->IsSelectionCollapsed(),
1043-
event->GetGranularity(), rect);
1042+
PlatformCaretMoveEvent(
1043+
target, event->GetCaretOffset(), event->IsSelectionCollapsed(),
1044+
event->GetGranularity(), rect, event->IsFromUserInput());
10441045
break;
10451046
}
10461047
case nsIAccessibleEvent::EVENT_TEXT_INSERTED:

accessible/ipc/DocAccessibleChild.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -381,10 +381,11 @@ bool DocAccessibleChild::SendCaretMoveEvent(const uint64_t& aID,
381381
const int32_t& aOffset,
382382
const bool& aIsSelectionCollapsed,
383383
const bool& aIsAtEndOfLine,
384-
const int32_t& aGranularity) {
385-
return PDocAccessibleChild::SendCaretMoveEvent(aID, GetCaretRectFor(aID),
386-
aOffset, aIsSelectionCollapsed,
387-
aIsAtEndOfLine, aGranularity);
384+
const int32_t& aGranularity,
385+
bool aFromUser) {
386+
return PDocAccessibleChild::SendCaretMoveEvent(
387+
aID, GetCaretRectFor(aID), aOffset, aIsSelectionCollapsed, aIsAtEndOfLine,
388+
aGranularity, aFromUser);
388389
}
389390

390391
#if !defined(XP_WIN)

accessible/ipc/DocAccessibleChild.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class DocAccessibleChild : public PDocAccessibleChild {
132132
bool SendCaretMoveEvent(const uint64_t& aID, const int32_t& aOffset,
133133
const bool& aIsSelectionCollapsed,
134134
const bool& aIsAtEndOfLine,
135-
const int32_t& aGranularity);
135+
const int32_t& aGranularity, bool aFromUser);
136136
bool SendFocusEvent(const uint64_t& aID);
137137

138138
#if !defined(XP_WIN)

accessible/ipc/DocAccessibleParent.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,8 @@ mozilla::ipc::IPCResult DocAccessibleParent::RecvStateChangeEvent(
439439
mozilla::ipc::IPCResult DocAccessibleParent::RecvCaretMoveEvent(
440440
const uint64_t& aID, const LayoutDeviceIntRect& aCaretRect,
441441
const int32_t& aOffset, const bool& aIsSelectionCollapsed,
442-
const bool& aIsAtEndOfLine, const int32_t& aGranularity) {
442+
const bool& aIsAtEndOfLine, const int32_t& aGranularity,
443+
const bool& aFromUser) {
443444
ACQUIRE_ANDROID_LOCK
444445
if (mShutdown) {
445446
return IPC_OK();
@@ -463,7 +464,7 @@ mozilla::ipc::IPCResult DocAccessibleParent::RecvCaretMoveEvent(
463464
}
464465

465466
PlatformCaretMoveEvent(proxy, aOffset, aIsSelectionCollapsed, aGranularity,
466-
aCaretRect);
467+
aCaretRect, aFromUser);
467468

468469
if (!nsCoreUtils::AccEventObserversExist()) {
469470
return IPC_OK();

accessible/ipc/DocAccessibleParent.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ class DocAccessibleParent : public RemoteAccessible,
110110
mozilla::ipc::IPCResult RecvCaretMoveEvent(
111111
const uint64_t& aID, const LayoutDeviceIntRect& aCaretRect,
112112
const int32_t& aOffset, const bool& aIsSelectionCollapsed,
113-
const bool& aIsAtEndOfLine, const int32_t& aGranularity) final;
113+
const bool& aIsAtEndOfLine, const int32_t& aGranularity,
114+
const bool& aFromUser) final;
114115

115116
virtual mozilla::ipc::IPCResult RecvTextChangeEvent(
116117
const uint64_t& aID, const nsAString& aStr, const int32_t& aStart,

accessible/ipc/PDocAccessible.ipdl

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ parent:
6464
LayoutDeviceIntRect aCaretRect,
6565
int32_t aOffset,
6666
bool aIsSelectionCollapsed, bool aIsAtEndOfLine,
67-
int32_t aGranularity);
67+
int32_t aGranularity, bool aFromUser);
6868
async TextChangeEvent(uint64_t aID, nsString aStr, int32_t aStart, uint32_t aLen,
6969
bool aIsInsert, bool aFromUser);
7070
async SelectionEvent(uint64_t aID, uint64_t aWidgetID, uint32_t aType);

accessible/mac/Platform.mm

+2-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ void PlatformFocusEvent(Accessible* aTarget,
121121

122122
void PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
123123
bool aIsSelectionCollapsed, int32_t aGranularity,
124-
const LayoutDeviceIntRect& aCaretRect) {
124+
const LayoutDeviceIntRect& aCaretRect,
125+
bool aFromUser) {
125126
mozAccessible* wrapper = GetNativeFromGeckoAccessible(aTarget);
126127
MOXTextMarkerDelegate* delegate = [MOXTextMarkerDelegate
127128
getOrCreateForDoc:nsAccUtils::DocumentFor(aTarget)];

accessible/other/Platform.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ void a11y::PlatformFocusEvent(Accessible* aTarget,
2727
void a11y::PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
2828
bool aIsSelectionCollapsed,
2929
int32_t aGranularity,
30-
const LayoutDeviceIntRect& aCaretRect) {}
30+
const LayoutDeviceIntRect& aCaretRect,
31+
bool aFromUser) {}
3132

3233
void a11y::PlatformTextChangeEvent(Accessible*, const nsAString&, int32_t,
3334
uint32_t, bool, bool) {}

accessible/windows/msaa/Platform.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ void a11y::PlatformFocusEvent(Accessible* aTarget,
9595
void a11y::PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
9696
bool aIsSelectionCollapsed,
9797
int32_t aGranularity,
98-
const LayoutDeviceIntRect& aCaretRect) {
98+
const LayoutDeviceIntRect& aCaretRect,
99+
bool aFromUser) {
99100
AccessibleWrap::UpdateSystemCaretFor(aTarget, aCaretRect);
100101
MsaaAccessible::FireWinEvent(aTarget,
101102
nsIAccessibleEvent::EVENT_TEXT_CARET_MOVED);

0 commit comments

Comments
 (0)