java/awt/grab/MenuDragEvents/MenuDragEvents.java

Print this page

        

*** 1,6 **** --- 1,28 ---- /* + * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + /* test @bug 6390326 @summary REGRESSION: Broken mouse behaviour of menus partially outside the main window. @author oleg.sukhodolsky: area=awt-drab @run applet AutomaticAppletTest.html
*** 34,45 **** import javax.swing.WindowConstants; import javax.swing.event.MenuDragMouseEvent; import javax.swing.event.MenuDragMouseListener; - import sun.awt.SunToolkit; - public class MenuDragEvents extends Applet { //Declare things used in the test, like buttons and labels here boolean mouseDragged = false; boolean mouseEntered = false; --- 56,65 ----
*** 116,149 **** frame.setVisible(true); Robot r = null; try { r = new Robot(); } catch (AWTException ae) { throw new RuntimeException(ae); } ! SunToolkit tk = (SunToolkit) Toolkit.getDefaultToolkit(); ! tk.realSync(); Point loc = m.getLocationOnScreen(); loc.x += m.getWidth() / 2; loc.y += m.getHeight() / 2; r.mouseMove(loc.x, loc.y); r.mousePress(InputEvent.BUTTON1_MASK); ! tk.realSync(); Point loc2 = i.getLocationOnScreen(); loc2.x += i.getWidth() / 2; loc2.y += i.getHeight() / 2; // move from menu on menubar to menu item dragMouse(r, loc, loc2); r.mouseRelease(InputEvent.BUTTON1_MASK); ! tk.realSync(); if (!mouseEntered || !mouseDragged || !mouseReleased || !actionReceived) { throw new RuntimeException("we expected to receive both mouseEntered and MouseDragged (" + mouseEntered + ", " + mouseDragged + ", " + mouseReleased + ", " + actionReceived + ")"); --- 136,171 ---- frame.setVisible(true); Robot r = null; try { r = new Robot(); + r.setAutoDelay(50); } catch (AWTException ae) { throw new RuntimeException(ae); } ! r.waitForIdle(); Point loc = m.getLocationOnScreen(); loc.x += m.getWidth() / 2; loc.y += m.getHeight() / 2; r.mouseMove(loc.x, loc.y); r.mousePress(InputEvent.BUTTON1_MASK); ! r.waitForIdle(); ! r.delay(1000); Point loc2 = i.getLocationOnScreen(); loc2.x += i.getWidth() / 2; loc2.y += i.getHeight() / 2; // move from menu on menubar to menu item dragMouse(r, loc, loc2); r.mouseRelease(InputEvent.BUTTON1_MASK); ! r.waitForIdle(); ! r.delay(1000); if (!mouseEntered || !mouseDragged || !mouseReleased || !actionReceived) { throw new RuntimeException("we expected to receive both mouseEntered and MouseDragged (" + mouseEntered + ", " + mouseDragged + ", " + mouseReleased + ", " + actionReceived + ")");