void mouseDragged(MouseEvent e) {
			if ((e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) == 0) {
				return;
			}
			int x = e.getX();
			int y = e.getY();
			if (((Math.abs(x - mouseDownX) > 3) || (Math.abs(y - mouseDownY) > 3))) {
				didDrag = true;
				if (selectionHandler.isInProgress()) {
					if (y < 0 || y > getHeight()) {
						timerScrollAmount = y < 0 ? y : y - getHeight();
						timerPoint = new FieldLocation(cursorPosition);
						scrollTimer.start();
					}
					else {
						scrollTimer.stop();
						cursorHandler.setCursorPos(x, y, null); // null means don't notify listeners
						selectionHandler.updateSelectionSequence(cursorPosition);
						repaint();
					}
				}
			}
		}
Notifies all listeners that the selection changed.
Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/FieldPanel.java