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-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 >