@Override public void mousePressed(MouseEvent e) { Component c = e.getComponent(); if (c instanceof IdeMenuBar) { Dimension size = c.getSize(); Insets insets = ((IdeMenuBar)c).getInsets(); Point p = e.getPoint(); if (p.y < insets.top || p.y >= size.height - insets.bottom) { Component item = ((IdeMenuBar)c).findComponentAt(p.x, size.height / 2); if (item instanceof JMenuItem) { // re-target border clicks as a menu item ones item.dispatchEvent(MouseEventAdapter.convert(e, item, 1, 1)); e.consume(); return; } } } super.mouseClicked(e); }
private static JLabel createArrow(final ActionLink link) { JLabel arrow = new JLabel(AllIcons.General.Combo3); arrow.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); arrow.setVerticalAlignment(SwingConstants.BOTTOM); new ClickListener() { @Override public boolean onClick(@NotNull MouseEvent e, int clickCount) { final MouseEvent newEvent = MouseEventAdapter.convert(e, link, e.getX(), e.getY()); link.doClick(newEvent); return true; } }.installOn(arrow); return arrow; }
private static void dispatchEvent(JComponent component, MouseEvent event) { if (component != null && event != null) { Point point = event.getLocationOnScreen(); SwingUtilities.convertPointFromScreen(point, component); component.dispatchEvent(MouseEventAdapter.convert(event, component, point.x, point.y)); } }
private static AWTEvent changeSourceIfNeeded(AWTEvent awtEvent) { if (SystemInfo.isMac && Registry.is("ide.inertial.mouse.fix") && awtEvent instanceof MouseWheelEvent) { MouseWheelEvent mwe = (MouseWheelEvent) awtEvent; if (mwe.getWhen() - lastMouseWheel > MOUSE_WHEEL_RESTART_THRESHOLD) { wheelDestinationComponent = SwingUtilities.getDeepestComponentAt(mwe.getComponent(), mwe.getX(), mwe.getY()); } lastMouseWheel = System.currentTimeMillis(); int modifiers = mwe.getModifiers() | mwe.getModifiersEx(); return MouseEventAdapter.convert(mwe, wheelDestinationComponent, mwe.getID(), lastMouseWheel, modifiers, mwe.getX(), mwe.getY()); } return awtEvent; }
public static JLabel createArrow(final ActionLink link) { JLabel arrow = new JLabel(AllIcons.General.Combo3); arrow.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); arrow.setVerticalAlignment(SwingConstants.BOTTOM); new ClickListener() { @Override public boolean onClick(@Nonnull MouseEvent e, int clickCount) { final MouseEvent newEvent = MouseEventAdapter.convert(e, link, e.getX(), e.getY()); link.doClick(newEvent); return true; } }.installOn(arrow); return arrow; }
private static MouseEvent convertEvent(final MouseEvent e, final Component target) { final Point point = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(), target); return MouseEventAdapter.convert(e, target, point.x, point.y); }