@Override
		protected void dispatchEvent(AWTEvent event)
		{
			//  Potentially intercept KeyEvents

			if (event.getID() == KeyEvent.KEY_TYPED
					||  event.getID() == KeyEvent.KEY_PRESSED
					||  event.getID() == KeyEvent.KEY_RELEASED)
			{
				KeyEvent keyEvent = (KeyEvent)event;
				KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(keyEvent);

				//  When using Key Bindings, the source of the KeyEvent will be
				//  the Window. Check each panel belonging to the source Window.

				for (DisabledPanel panel: panels.keySet())
				{
					Window panelWindow = SwingUtilities.windowForComponent(panel);

					//  A binding was found so just return without dispatching it.

					if (panelWindow == keyEvent.getComponent()
							&&  searchForKeyBinding(panel, keyStroke))
						return;
				}
			}

			//  Dispatch normally

			super.dispatchEvent(event);
		}