ok. ----- prasanta.sadhuk...@oracle.com wrote: >
So far I have checked, it is always sun.awt.SunGraphics2D instance. If there is no more objection, I would proceed to commit this. > Regards > Prasanta > > On 6/19/2017 8:38 PM, Sergey Bylokhov wrote: > I am only not sure about type casting w/o instanceof, if we always have Graphics2D then this fix looks fine. > > > Hi Sergey, Is anything more needed to be done for this? I guess I have modified as per the review comment. Regards Prasanta > On 6/9/2017 11:33 AM, Prasanta Sadhukhan wrote: Ok. Rectified. Please find the modified webrev with clip at correct place(s) http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.05/ Regards Prasanta > On 6/8/2017 9:34 PM, Sergey Bylokhov wrote: I have referenced these methods: > > "BasicTabbedPaneUI.paintIcon() as well as SynthGraphicsUtils.paintText() are > called in SynthTabbedPaneUI. > �- paintText() at line 681 > �- paintIcon() at line 634 > Both methods have a rectangle as a parameter, but it is ignored." > The first is in the BasicTabbedPaneUI.java and the second is in the > SynthGraphicsUtils.java > > > > Why? clip is invoked in SynthTabbedPaneUI#paintText() at line 687 and SynthTabbedPaneUI#paintTab() at line 637, where you asked for, I guess. Regards Prasanta > On 6/8/2017 12:59 PM, Sergey Bylokhov wrote: But in this version the clip operation still not executed in methods mentioned here: > http://mail.openjdk.java.net/pipermail/swing-dev/2017-June/007419.html > http://mail.openjdk.java.net/pipermail/swing-dev/2017-May/007406.html > > > > Please find the modified webrev incorporating your review comment http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.04/ Regards Prasanta On 6/2/2017 12:33 AM, Sergey Bylokhov wrote: �- There is a problem in your algorithm which merges the old and new clips. The getClipBounds() returns a rectangle which is a bounds of the current clip(which is not necessary a rectangle but can be a shape). you can use the Graphics2D.clip(Shape) method which will intersect the passed shape and a current clip of the graphics. �- In this version you forgot to restore the changed clip. �- Also can you try to move the code which change a clip to the methods which currently ignore the passed clip(see below): BasicTabbedPaneUI.paintIcon() as well as SynthGraphicsUtils.paintText() are called in SynthTabbedPaneUI. ��- paintText() at line 681 ��- paintIcon() at line 634 Both methods have a rectangle as a parameter, but it is ignored. ----- prasanta.sadhuk...@oracle.com wrote: I tried to incorporate your comments. Please find modified webrev http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.03/ Regards Prasanta On 5/28/2017 8:01 AM, Sergey Bylokhov wrote: Note that you shouldn't replace the clip, but should apply the new clip on top of the old. This is necessary if the old clip is smaller than new. ----- sergey.bylok...@oracle.com wrote: Hi, Prasanta. BasicTabbedPaneUI.paintIcon() as well as SynthGraphicsUtils.paintText() are called in SynthTabbedPaneUI. ��- paintText() at line 681 ��- paintIcon() at line 634 Both methods have a rectangle as a parameter, but it is ignored. ----- prasanta.sadhuk...@oracle.com wrote: Hi Sergey, I could get your concern for paintText() but could not find paintIcon() in SynthGraphicsUtils() so not sure how icon drawing contradicts spec. Modified webrev: http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.01/ Also, if we are not calling SwingUtilities2.clipStringIfNecessary() then we are not going to get "..." at the end which this test expects. But I could not find anything in spec, that mandates ending with "..." for long tab outside tab bounds. If source change is ok, I guess we then need to modify the html file modifying the expected result for NimbusL&F. Regards Prasanta On 5/25/2017 3:11 AM, Sergey Bylokhov wrote: Hi, Prasanta. Please take a look to my comments at: http://mail.openjdk.java.net/pipermail/swing-dev/2016-November/006931.html http://mail.openjdk.java.net/pipermail/swing-dev/2016-November/006902.html The two methods paintText() and paintIcon() are contradict the spec and draw the text and icons outside of the tab. ----- prasanta.sadhuk...@oracle.com wrote: Hi All, Please review a fix for an issue where long Tab titiles are not clipped with dots at end for NimbusLookAndFeel L&F. Other L&Fs works ok. Issue was in SynthTabbedPaneUI#paintTab(), the title is not clipped but passed to paintText() as it is received. Other L&F such as Metal, Motif, Windows which uses BasicTabbedPaneUI#paintTab(), the title is clipped http://hg.openjdk.java.net/jdk9/client/jdk/file/e748c6a2d2e6/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java#l950 before it is passed to paintText(). Proposed fix is to do the same for SynthTabbedPaneUI#paintTab(). Bug: https://bugs.openjdk.java.net/browse/JDK-8075918 webrev: http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.00/ Regards Prasanta >