Mercurial > hg > openjdk > bsd-port > jdk
changeset 8525:2818bf443dfe
8162411: Service Menu services 2
Reviewed-by: prr, mschoene, serb, ahgross
author | ssadetsky |
---|---|
date | Wed, 19 Oct 2016 17:48:19 +0100 |
parents | 433288e07d5d |
children | fd72e5a47a30 |
files | src/windows/classes/sun/awt/windows/WFramePeer.java src/windows/classes/sun/awt/windows/WMenuBarPeer.java |
diffstat | 2 files changed, 21 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/windows/classes/sun/awt/windows/WFramePeer.java Tue Jul 12 11:02:26 2016 +0300 +++ b/src/windows/classes/sun/awt/windows/WFramePeer.java Wed Oct 19 17:48:19 2016 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2016, 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 @@ -160,6 +160,19 @@ // thread. public void setMenuBar(MenuBar mb) { WMenuBarPeer mbPeer = (WMenuBarPeer) WToolkit.targetToPeer(mb); + if (mbPeer != null) { + if (mbPeer.framePeer != this) { + mb.removeNotify(); + mb.addNotify(); + mbPeer = (WMenuBarPeer) WToolkit.targetToPeer(mb); + if (mbPeer != null && mbPeer.framePeer != this) { + throw new IllegalStateException("Wrong parent peer"); + } + } + if (mbPeer != null) { + addChildPeer(mbPeer); + } + } setMenuBar0(mbPeer); updateInsets(insets_); }
--- a/src/windows/classes/sun/awt/windows/WMenuBarPeer.java Tue Jul 12 11:02:26 2016 +0300 +++ b/src/windows/classes/sun/awt/windows/WMenuBarPeer.java Wed Oct 19 17:48:19 2016 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2016, 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 @@ -31,6 +31,8 @@ // MenuBarPeer implementation + final WFramePeer framePeer; + public native void addMenu(Menu m); public native void delMenu(int index); @@ -41,8 +43,11 @@ // Toolkit & peer internals WMenuBarPeer(MenuBar target) { this.target = target; - WFramePeer framePeer = (WFramePeer) + framePeer = (WFramePeer) WToolkit.targetToPeer(target.getParent()); + if (framePeer != null) { + framePeer.addChildPeer(this); + } create(framePeer); // fix for 5088782: check if menu object is created successfully checkMenuCreation();