private void redispatchMouseEvent(MouseEvent e, boolean repaint) {
			Point glassPanePoint = e.getPoint();
			Container container = contentPane;
			Point containerPoint = SwingUtilities.convertPoint(drawPanel,
					glassPanePoint, contentPane);
			if (containerPoint.y < 0) { // we're not in the content pane
				// if (containerPoint.y + menuBar.getHeight() >= 0) {
				// //The mouse event is over the menu bar.
				// //Could handle specially.
				// } else {
				// //The mouse event is over non-system window
				// //decorations, such as the ones provided by
				// //the Java look and feel.
				// //Could handle specially.
				// }
			} else {
				// The mouse event is probably over the content pane.
				// Find out exactly which component it's over.
				Component component = SwingUtilities.getDeepestComponentAt(
						container, containerPoint.x, containerPoint.y);

				// System.out.println(getClassName(component));

				if ((component != null)
						&& (component.equals(liveButton)
								|| getClassName(component).equals(
										"AquaComboBoxButton") || getClassName(
									component).equals("JTextField"))) {

					// Forward events over the check box.
					Point componentPoint = SwingUtilities.convertPoint(drawPanel,
							glassPanePoint, component);
					component
							.dispatchEvent(new MouseEvent(component, e.getID(), e
									.getWhen(), e.getModifiers(), componentPoint.x,
									componentPoint.y, e.getClickCount(), e
											.isPopupTrigger()));
				}
			}

			// Update the glass pane if requested.
			if (repaint) {
				setPoint(glassPanePoint);
				drawPanel.repaint();
			}
		}