private boolean compareOptionsWithKeyStrokeMap(Options oldOptions,
			Map<String, KeyStroke> currentKsMap) {
		List<String> oldNames = oldOptions.getOptionNames();
		for (String oldName : oldNames) {

			boolean match = currentKsMap.containsKey(oldName);
			ActionTrigger oldTrigger = oldOptions.getActionTrigger(oldName, null);
			KeyStroke oldKs = null;
			if (oldTrigger != null) {
				oldKs = oldTrigger.getKeyStroke();
			}

			KeyStroke currentKs = currentKsMap.get(oldName);

			// if the value is null, then it would not have been placed into the options map 
			// in the key bindings panel, so we only care about non-null values
			if (oldKs != null) {
				match &= (oldKs.equals(currentKs));
			}
			else {
				match = true;
			}

			// short-circuit if there are any data that don't match
			if (!match) {

				boolean containsOption = currentKsMap.containsKey(oldName);

				String message = """
						Old key stroke does not match new key stroke.
							Option: %s
							Old: %s
							New: %s
							Option name in new options?: %s
						""".formatted(oldName, oldKs, currentKs, containsOption);
				Msg.debug(this, message);

				return false;
			}
		}

		return true;
	}
Tests the {@link KeyBindingUtils} class.


@since  Tracker Id 329
Ghidra/Features/Base/src/test.slow/java/ghidra/framework/plugintool/dialog/KeyBindingUtilsTest.java