< prev index next >

src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2005, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2005, 2018, 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. Oracle designates this
*** 156,167 **** int x, int y, int width, int height); private native void native_paint_shadow( int widgetType, int state, int shadowType, String detail, int x, int y, int width, int height, int synthState, int dir); private native void native_paint_slider( ! int widgetType, int state, int shadowType, String detail, ! int x, int y, int width, int height, int orientation); private native void native_paint_vline( int widgetType, int state, String detail, int x, int y, int width, int height); private native void native_paint_background( int widgetType, int state, int x, int y, int width, int height); --- 156,167 ---- int x, int y, int width, int height); private native void native_paint_shadow( int widgetType, int state, int shadowType, String detail, int x, int y, int width, int height, int synthState, int dir); private native void native_paint_slider( ! int widgetType, int state, int shadowType, String detail, int x, ! int y, int width, int height, int orientation, boolean hasFocus); private native void native_paint_vline( int widgetType, int state, String detail, int x, int y, int width, int height); private native void native_paint_background( int widgetType, int state, int x, int y, int width, int height);
*** 489,512 **** int x, int y, int w, int h) { int gtkState = GTKLookAndFeel.synthStateToGTKStateType(state).ordinal(); int synthState = context.getComponentState(); int dir = getTextDirection(context); int widget = getWidgetType(context.getComponent(), id).ordinal(); native_paint_shadow(widget, gtkState, shadowType.ordinal(), detail, x - x0, y - y0, w, h, synthState, dir); } public void paintSlider(Graphics g, SynthContext context, ! Region id, int state, ShadowType shadowType, String detail, ! int x, int y, int w, int h, Orientation orientation) { state = GTKLookAndFeel.synthStateToGTKStateType(state).ordinal(); int widget = getWidgetType(context.getComponent(), id).ordinal(); native_paint_slider(widget, state, shadowType.ordinal(), detail, ! x - x0, y - y0, w, h, orientation.ordinal()); } public void paintVline(Graphics g, SynthContext context, Region id, int state, String detail, int x, int y, int w, int h) { --- 489,520 ---- int x, int y, int w, int h) { int gtkState = GTKLookAndFeel.synthStateToGTKStateType(state).ordinal(); int synthState = context.getComponentState(); + Container parent = context.getComponent().getParent(); + if(GTKLookAndFeel.is3()) { + if (parent != null && parent.getParent() instanceof JComboBox) { + if (parent.getParent().hasFocus()) { + synthState |= SynthConstants.FOCUSED; + } + } + } int dir = getTextDirection(context); int widget = getWidgetType(context.getComponent(), id).ordinal(); native_paint_shadow(widget, gtkState, shadowType.ordinal(), detail, x - x0, y - y0, w, h, synthState, dir); } public void paintSlider(Graphics g, SynthContext context, ! Region id, int state, ShadowType shadowType, String detail, int x, ! int y, int w, int h, Orientation orientation, boolean hasFocus) { state = GTKLookAndFeel.synthStateToGTKStateType(state).ordinal(); int widget = getWidgetType(context.getComponent(), id).ordinal(); native_paint_slider(widget, state, shadowType.ordinal(), detail, ! x - x0, y - y0, w, h, orientation.ordinal(), hasFocus); } public void paintVline(Graphics g, SynthContext context, Region id, int state, String detail, int x, int y, int w, int h) {
*** 576,595 **** /** * Convenience method that delegates to finishPainting() with * caching enabled. */ ! public void finishPainting() { ! finishPainting(true); } /** * Called to indicate that painting is finished. We create a new * BufferedImage from the offscreen buffer, (optionally) cache it, * and paint it. */ ! public void finishPainting(boolean useCache) { DataBufferInt dataBuffer = new DataBufferInt(w0 * h0); // Note that stealData() requires a markDirty() afterwards // since we modify the data in it. int transparency = nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0), --- 584,603 ---- /** * Convenience method that delegates to finishPainting() with * caching enabled. */ ! public BufferedImage finishPainting() { ! return finishPainting(true); } /** * Called to indicate that painting is finished. We create a new * BufferedImage from the offscreen buffer, (optionally) cache it, * and paint it. */ ! public BufferedImage finishPainting(boolean useCache) { DataBufferInt dataBuffer = new DataBufferInt(w0 * h0); // Note that stealData() requires a markDirty() afterwards // since we modify the data in it. int transparency = nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
*** 599,613 **** int[] bands = BAND_OFFSETS[transparency - 1]; WritableRaster raster = Raster.createPackedRaster( dataBuffer, w0, h0, w0, bands, null); ColorModel cm = COLOR_MODELS[transparency - 1]; ! Image img = new BufferedImage(cm, raster, false, null); if (useCache) { cache.setImage(getClass(), null, w0, h0, cacheArgs, img); } graphics.drawImage(img, x0, y0, null); } /** * Notify native layer of theme change, and flush cache */ --- 607,622 ---- int[] bands = BAND_OFFSETS[transparency - 1]; WritableRaster raster = Raster.createPackedRaster( dataBuffer, w0, h0, w0, bands, null); ColorModel cm = COLOR_MODELS[transparency - 1]; ! BufferedImage img = new BufferedImage(cm, raster, false, null); if (useCache) { cache.setImage(getClass(), null, w0, h0, cacheArgs, img); } graphics.drawImage(img, x0, y0, null); + return img; } /** * Notify native layer of theme change, and flush cache */
< prev index next >