--- old/src/java.desktop/windows/classes/sun/awt/windows/WDialogPeer.java 2016-05-17 16:12:39.805803000 +0530 +++ new/src/java.desktop/windows/classes/sun/awt/windows/WDialogPeer.java 2016-05-17 16:12:39.593696999 +0530 @@ -37,10 +37,6 @@ // target has none explicitly specified. static final Color defaultBackground = SystemColor.control; - // If target doesn't have its background color set, we set its - // background to platform default. - boolean needDefaultBackground; - WDialogPeer(Dialog target) { super(target); @@ -67,7 +63,7 @@ Dialog target = (Dialog)this.target; // Need to set target's background to default _before_ a call // to super.initialize. - if (needDefaultBackground) { + if (!target.isBackgroundSet()) { target.setBackground(defaultBackground); } @@ -132,20 +128,7 @@ reshapeFrame(x, y, width, height); } } - - /* Native create() peeks at target's background and if it's null - * calls this method to arrage for default background to be set on - * target. Can't make the check in Java, since getBackground will - * return owner's background if target has none set. - */ - private void setDefaultColor() { - // Can't call target.setBackground directly, since we are - // called on toolkit thread. Can't schedule a Runnable on the - // EventHandlerThread because of the race condition. So just - // set a flag and call target.setBackground in initialize. - needDefaultBackground = true; - } - + native void pSetIMMOption(String option); void notifyIMMOptionChange(){ InputMethodManager.getInstance().notifyChangeRequest((Component)target);