--- old/src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java 2015-04-02 18:02:51.000000000 +0300 +++ new/src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java 2015-04-02 18:02:51.000000000 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2015, 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 @@ -175,6 +175,7 @@ return uidefaults; } + @Override public void loadSystemColors(int[] systemColors) { nativeLoadSystemColors(systemColors); MotifColorUtilities.loadSystemColors(systemColors); @@ -267,6 +268,7 @@ } PrivilegedAction a = () -> { Thread shutdownThread = new Thread(ThreadGroupUtils.getRootThreadGroup(), "XToolkt-Shutdown-Thread") { + @Override public void run() { XSystemTrayPeer peer = XSystemTrayPeer.getPeerInstance(); if (peer != null) { @@ -336,18 +338,21 @@ } } + @Override public ButtonPeer createButton(Button target) { ButtonPeer peer = new XButtonPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public FramePeer createLightweightFrame(LightweightFrame target) { FramePeer peer = new XLightweightFramePeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public FramePeer createFrame(Frame target) { FramePeer peer = new XFramePeer(target); targetCreatedPeer(target, peer); @@ -529,6 +534,7 @@ static native void awt_toolkit_init(); + @Override public void run() { awt_toolkit_init(); run(PRIMARY_LOOP); @@ -669,10 +675,12 @@ return screenHeight; } + @Override protected int getScreenWidth() { return getDefaultScreenWidth(); } + @Override protected int getScreenHeight() { return getDefaultScreenHeight(); } @@ -713,6 +721,7 @@ * not set, we try to calculate the insets ourselves using * getScreenInsetsManually method. */ + @Override public Insets getScreenInsets(GraphicsConfiguration gc) { XNETProtocol netProto = XWM.getWM().getNETProtocol(); @@ -900,6 +909,7 @@ SunToolkit.targetDisposedPeer(target, peer); } + @Override public RobotPeer createRobot(Robot target, GraphicsDevice screen) { return new XRobotPeer(screen.getDefaultConfiguration()); } @@ -911,10 +921,12 @@ * automatically. The setter method for this property is * irrelevant on X. */ + @Override public void setDynamicLayout(boolean b) { dynamicLayoutSetting = b; } + @Override protected boolean isDynamicLayoutSet() { return dynamicLayoutSetting; } @@ -926,15 +938,18 @@ return XWM.getWM().supportsDynamicLayout(); } + @Override public boolean isDynamicLayoutActive() { return isDynamicLayoutSupported(); } - + @Override + @SuppressWarnings("deprecation") public FontPeer getFontPeer(String name, int style){ return new XFontPeer(name, style); } + @Override public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent dge) throws InvalidDnDOperationException { final LightweightFrame f = SunToolkit.getLightweightFrame(dge.getComponent()); if (f != null) { @@ -944,6 +959,7 @@ return XDragSourceContextPeer.createDragSourceContextPeer(dge); } + @Override @SuppressWarnings("unchecked") public T createDragGestureRecognizer(Class recognizerClass, @@ -963,6 +979,7 @@ return null; } + @Override public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem target) { XCheckboxMenuItemPeer peer = new XCheckboxMenuItemPeer(target); //vb157120: looks like we don't need to map menu items @@ -971,6 +988,7 @@ return peer; } + @Override public MenuItemPeer createMenuItem(MenuItem target) { XMenuItemPeer peer = new XMenuItemPeer(target); //vb157120: looks like we don't need to map menu items @@ -979,72 +997,84 @@ return peer; } + @Override public TextFieldPeer createTextField(TextField target) { TextFieldPeer peer = new XTextFieldPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public LabelPeer createLabel(Label target) { LabelPeer peer = new XLabelPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public ListPeer createList(java.awt.List target) { ListPeer peer = new XListPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public CheckboxPeer createCheckbox(Checkbox target) { CheckboxPeer peer = new XCheckboxPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public ScrollbarPeer createScrollbar(Scrollbar target) { XScrollbarPeer peer = new XScrollbarPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public ScrollPanePeer createScrollPane(ScrollPane target) { XScrollPanePeer peer = new XScrollPanePeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public TextAreaPeer createTextArea(TextArea target) { TextAreaPeer peer = new XTextAreaPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public ChoicePeer createChoice(Choice target) { XChoicePeer peer = new XChoicePeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public CanvasPeer createCanvas(Canvas target) { XCanvasPeer peer = (isXEmbedServerRequested() ? new XEmbedCanvasPeer(target) : new XCanvasPeer(target)); targetCreatedPeer(target, peer); return peer; } + @Override public PanelPeer createPanel(Panel target) { PanelPeer peer = new XPanelPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public WindowPeer createWindow(Window target) { WindowPeer peer = new XWindowPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public DialogPeer createDialog(Dialog target) { DialogPeer peer = new XDialogPeer(target); targetCreatedPeer(target, peer); @@ -1065,6 +1095,7 @@ return sunAwtDisableGtkFileDialogs.booleanValue(); } + @Override public FileDialogPeer createFileDialog(FileDialog target) { FileDialogPeer peer = null; // The current GtkFileChooser is available from GTK+ 2.4 @@ -1077,12 +1108,14 @@ return peer; } + @Override public MenuBarPeer createMenuBar(MenuBar target) { XMenuBarPeer peer = new XMenuBarPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public MenuPeer createMenu(Menu target) { XMenuPeer peer = new XMenuPeer(target); //vb157120: looks like we don't need to map menu items @@ -1091,12 +1124,14 @@ return peer; } + @Override public PopupMenuPeer createPopupMenu(PopupMenu target) { XPopupMenuPeer peer = new XPopupMenuPeer(target); targetCreatedPeer(target, peer); return peer; } + @Override public synchronized MouseInfoPeer getMouseInfoPeer() { if (xPeer == null) { xPeer = new XMouseInfoPeer(); @@ -1117,6 +1152,7 @@ return peer; } + @Override public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() throws HeadlessException { return XKeyboardFocusManagerPeer.getInstance(); } @@ -1124,11 +1160,13 @@ /** * Returns a new custom cursor. */ + @Override public Cursor createCustomCursor(Image cursor, Point hotSpot, String name) throws IndexOutOfBoundsException { return new XCustomCursor(cursor, hotSpot, name); } + @Override public TrayIconPeer createTrayIcon(TrayIcon target) throws HeadlessException, AWTException { @@ -1137,11 +1175,13 @@ return peer; } + @Override public SystemTrayPeer createSystemTray(SystemTray target) throws HeadlessException { SystemTrayPeer peer = new XSystemTrayPeer(target); return peer; } + @Override public boolean isTraySupported() { XSystemTrayPeer peer = XSystemTrayPeer.getPeerInstance(); if (peer != null) { @@ -1158,16 +1198,19 @@ /** * Returns the supported cursor size */ + @Override public Dimension getBestCursorSize(int preferredWidth, int preferredHeight) { return XCustomCursor.getBestCursorSize( java.lang.Math.max(1,preferredWidth), java.lang.Math.max(1,preferredHeight)); } + @Override public int getMaximumCursorColors() { return 2; // Black and white. } + @Override public Map mapInputMethodHighlight( InputMethodHighlight highlight) { return XInputMethod.mapInputMethodHighlight(highlight); } @@ -1185,6 +1228,7 @@ } } + @Override public Clipboard getSystemClipboard() { SecurityManager security = System.getSecurityManager(); if (security != null) { @@ -1198,6 +1242,7 @@ return clipboard; } + @Override public Clipboard getSystemSelection() { SecurityManager security = System.getSecurityManager(); if (security != null) { @@ -1211,6 +1256,7 @@ return selection; } + @Override public void beep() { awtLock(); try { @@ -1221,6 +1267,7 @@ } } + @Override public PrintJob getPrintJob(final Frame frame, final String doctitle, final Properties props) { @@ -1236,6 +1283,7 @@ return printJob; } + @Override public PrintJob getPrintJob(final Frame frame, final String doctitle, final JobAttributes jobAttributes, final PageAttributes pageAttributes) @@ -1263,6 +1311,7 @@ } } + @Override public int getScreenResolution() { long display = getDisplay(); awtLock(); @@ -1288,6 +1337,7 @@ return screenmodel; } + @Override public ColorModel getColorModel() { return getStaticColorModel(); } @@ -1295,6 +1345,7 @@ /** * Returns a new input method adapter descriptor for native input methods. */ + @Override public InputMethodDescriptor getInputMethodAdapterDescriptor() throws AWTException { return new XInputMethodDescriptor(); } @@ -1346,6 +1397,7 @@ } } + @Override public boolean isFrameStateSupported(int state) throws HeadlessException { @@ -1388,6 +1440,7 @@ private static final XEventDispatcher timeFetcher = new XEventDispatcher() { + @Override public void dispatchEvent(XEvent ev) { switch (ev.get_type()) { case XConstants.PropertyNotify: @@ -1456,6 +1509,7 @@ } return timeStamp; } + @Override protected void initializeDesktopProperties() { desktopProperties.put("DnD.Autoscroll.initialDelay", Integer.valueOf(50)); @@ -1514,6 +1568,7 @@ private final static String postfix = ".32x32"; private static final String dndPrefix = "DnD."; + @Override protected Object lazilyLoadDesktopProperty(String name) { if (name.startsWith(prefix)) { String cursorName = name.substring(prefix.length(), name.length()) + postfix; @@ -1536,6 +1591,7 @@ return super.lazilyLoadDesktopProperty(name); } + @Override public synchronized void addPropertyChangeListener(String name, PropertyChangeListener pcl) { if (name == null) { // See JavaDoc for the Toolkit.addPropertyChangeListener() method @@ -2034,12 +2090,14 @@ /** * @see sun.awt.SunToolkit#needsXEmbedImpl */ + @Override protected boolean needsXEmbedImpl() { // XToolkit implements supports for XEmbed-client protocol and // requires the supports from the embedding host for it to work. return true; } + @Override public boolean isModalityTypeSupported(Dialog.ModalityType modalityType) { return (modalityType == null) || (modalityType == Dialog.ModalityType.MODELESS) || @@ -2048,6 +2106,7 @@ (modalityType == Dialog.ModalityType.TOOLKIT_MODAL); } + @Override public boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType exclusionType) { return (exclusionType == null) || (exclusionType == Dialog.ModalExclusionType.NO_EXCLUDE) || @@ -2070,6 +2129,7 @@ .removeSourceEvents(queue, source, removeAllEvents); } + @Override public boolean isAlwaysOnTopSupported() { for (XLayerProtocol proto : XWM.getWM().getProtocols(XLayerProtocol.class)) { if (proto.supportsLayer(XLayerProtocol.LAYER_ALWAYS_ON_TOP)) { @@ -2079,6 +2139,7 @@ return false; } + @Override public boolean useBufferPerWindow() { return XToolkit.getBackingStoreType() == XConstants.NotUseful; } @@ -2387,11 +2448,13 @@ /** * @inheritDoc */ + @Override protected boolean syncNativeQueue(final long timeout) { XBaseWindow win = XBaseWindow.getXAWTRootWindow(); if (oops_waiter == null) { oops_waiter = new XEventDispatcher() { + @Override public void dispatchEvent(XEvent e) { if (e.get_type() == XConstants.ConfigureNotify) { // OOPS ConfigureNotify event catched @@ -2438,6 +2501,7 @@ awtUnlock(); } } + @Override public void grab(Window w) { final Object peer = AWTAccessor.getComponentAccessor().getPeer(w); if (peer != null) { @@ -2445,6 +2509,7 @@ } } + @Override public void ungrab(Window w) { final Object peer = AWTAccessor.getComponentAccessor().getPeer(w); if (peer != null) { @@ -2458,14 +2523,17 @@ * The methods of java.awt.Desktop class are supported on the Gnome desktop. * Check if the running desktop is Gnome by checking the window manager. */ + @Override public boolean isDesktopSupported(){ return XDesktopPeer.isDesktopSupported(); } + @Override public DesktopPeer createDesktopPeer(Desktop target){ return new XDesktopPeer(); } + @Override public boolean areExtraMouseButtonsEnabled() throws HeadlessException { return areExtraMouseButtonsEnabled; }