From fd5b02a03737db23f7484f8c601f27989b6adde0 Mon Sep 17 00:00:00 2001 From: ghidragon <106987263+ghidragon@users.noreply.github.com> Date: Thu, 11 Jun 2026 11:56:16 -0400 Subject: [PATCH] GP-0 fixed fieldpanel accessibility tests --- .../fieldpanel/AccessibleFieldPanelDelegate.java | 7 ++++++- .../fieldpanel/AccessibleFieldPanelDelegateTest.java | 10 +++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegate.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegate.java index 0efada5b07..375e30e37f 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegate.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegate.java @@ -105,7 +105,7 @@ public class AccessibleFieldPanelDelegate { */ public void setCaret(FieldLocation newCursorLoc, EventTrigger trigger) { - if (!panel.hasFocus()) { + if (!isFocused()) { return; } @@ -151,6 +151,11 @@ public class AccessibleFieldPanelDelegate { this.currentSelection = currentSelection; updateCurrentFieldSelectedState(trigger); } + + // broken out so it can be overridden in a test + protected boolean isFocused() { + return panel.hasFocus(); + } private void updateCurrentFieldSelectedState(EventTrigger trigger) { if (cursorField == null) { diff --git a/Ghidra/Framework/Docking/src/test/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegateTest.java b/Ghidra/Framework/Docking/src/test/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegateTest.java index 3619b3eef3..418806fd44 100644 --- a/Ghidra/Framework/Docking/src/test/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegateTest.java +++ b/Ghidra/Framework/Docking/src/test/java/docking/widgets/fieldpanel/AccessibleFieldPanelDelegateTest.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -49,7 +49,11 @@ public class AccessibleFieldPanelDelegateTest { @Before public void setup() { layouts = List.of(buildAnchoredLayout(0, 0, 3), buildAnchoredLayout(1, FIELD_HEIGHT, 13)); - delegate = new AccessibleFieldPanelDelegate(layouts, testContext, panel); + delegate = new AccessibleFieldPanelDelegate(layouts, testContext, panel) { + protected boolean isFocused() { + return true; + }; + }; delegate.setFieldDescriptionProvider(new TestFieldDescriptionProvider()); delegate.setCaret(new FieldLocation(BigInteger.ZERO, 0, 0, 0), EventTrigger.API_CALL);