Infinitely increasing glyph size

Issue #59 new
Eugene Ryzhikov created an issue

Following simple css snippet seems to Infinitely increase glyph size. It creates a sort of animated effect where icon size grows until it is too big and not visible.

.tool-bar .button .glyph-icon {
     -glyph-size: 1.2em;
}

Commenting out glyph-size, stops it but then it is not possible to set the size in CSS. When all of this happens CSS parser show the following output:

javafx.css.CssParser term
WARNING: CSS Error parsing '*{-fx-font-family: 'Octicons'; -fx-font-size: 18.2;-fx-font-family: 'Octicons'; -fx-font-size: 21.8;-fx-font-family: 'Octicons'; -fx-font-size: 26.2;-fx-font-family: 'Octicons'; -fx-font-size: 31.4;-fx-font-family: 'Octicons'; -fx-font-size: 37.7;-fx-font-family: 'Octicons'; -fx-font-size: 45.2;-fx-font-family: 'Octicons'; -fx-font-size: 54.2;-fx-font-family: 'Octicons'; -fx-font-size: 65.0;-fx-font-family: 'Octicons'; -fx-font-size: 78.0;-fx-font-family: 'Octicons'; -fx-font-size: 93.6;-fx-font-family: 'Octicons'; -fx-font-size: 112.3;-fx-font-family: 'Octicons'; -fx-font-size: 134.8;-fx-font-family: 'Octicons'; -fx-font-size: 161.8;-fx-font-family: 'Octicons'; -fx-font-size: 194.2;-fx-font-family: 'Octicons'; -fx-font-size: 233.0;-fx-font-family: 'Octicons'; -fx-font-size: 279.6;-fx-font-family: 'Octicons'; -fx-font-size: 335.5;-fx-font-family: 'Octicons'; -fx-font-size: 402.6;-fx-font-family: 'Octicons'; -fx-font-size: 483.1;-fx-font-family: 'Octicons'; -fx-font-size: 579.7;-fx-font-family: 'Octicons'; -fx-font-size: 695.6;-fx-font-family: 'Octicons'; -fx-font-size: 834.7;-fx-font-family: 'Octicons'; -fx-font-size: 1001.6;-fx-font-family: 'Octicons'; -fx-font-size: 1201.9;-fx-font-family: 'Octicons'; -fx-font-size: 1442.3;-fx-font-family: 'Octicons'; -fx-font-size: 1730.8;-fx-font-family: 'Octicons'; -fx-font-size: 2077.0;-fx-font-family: 'Octicons'; -fx-font-size: 2492.4;-fx-font-family: 'Octicons'; -fx-font-size: 2990.9;-fx-font-family: 'Octicons'; -fx-font-size: 3589.1;-fx-font-family: 'Octicons'; -fx-font-size: 4306.9;-fx-font-family: 'Octicons'; -fx-font-size: 5168.3;-fx-font-family: 'Octicons'; -fx-font-size: 6202.0;-fx-font-family: 'Octicons'; -fx-font-size: 7442.4;-fx-font-family: 'Octicons'; -fx-font-size: 8930.9;-fx-font-family: 'Octicons'; -fx-font-size: 10717.1;-fx-font-family: 'Octicons'; -fx-font-size: 12860.5;-fx-font-family: 'Octicons'; -fx-font-size: 15432.6;-fx-font-family: 'Octicons'; -fx-font-size: 18519.1;-fx-font-family: 'Octicons'; -fx-font-size: 22222.9;-fx-font-family: 'Octicons'; -fx-font-size: 26667.5;-fx-font-family: 'Octicons'; -fx-font-size: 32001.0;-fx-font-family: 'Octicons'; -fx-font-size: 38401.2;-fx-font-family: 'Octicons'; -fx-font-size: 46081.4;-fx-font-family: 'Octicons'; -fx-font-size: 55297.7;-fx-font-family: 'Octicons'; -fx-font-size: 66357.2;-fx-font-family: 'Octicons'; -fx-font-size: 79628.6;-fx-font-family: 'Octicons'; -fx-font-size: 95554.3;-fx-font-family: 'Octicons'; -fx-font-size: 114665.2;-fx-font-family: 'Octicons'; -fx-font-size: 137598.2;-fx-font-family: 'Octicons'; -fx-font-size: 165117.8;-fx-font-family: 'Octicons'; -fx-font-size: 198141.4;-fx-font-family: 'Octicons'; -fx-font-size: 237769.7;-fx-font-family: 'Octicons'; -fx-font-size: 285323.6;-fx-font-family: 'Octicons'; -fx-font-size: 342388.3;-fx-font-family: 'Octicons'; -fx-font-size: 410866.0;-fx-font-family: 'Octicons'; -fx-font-size: 493039.2;-fx-font-family: 'Octicons'; -fx-font-size: 591647.0;-fx-font-family: 'Octicons'; -fx-font-size: 709976.4;-fx-font-family: 'Octicons'; -fx-font-size: 851971.7;-fx-font-family: 'Octicons'; -fx-font-size: 1022366.0;-fx-font-family: 'Octicons'; -fx-font-size: 1226839.2;-fx-font-family: 'Octicons'; -fx-font-size: 1472207.1;-fx-font-family: 'Octicons'; -fx-font-size: 1766648.6;-fx-font-family: 'Octicons'; -fx-font-size: 2119978.4;-fx-font-family: 'Octicons'; -fx-font-size: 2543974.2;-fx-font-family: 'Octicons'; -fx-font-size: 3052769.1;-fx-font-family: 'Octicons'; -fx-font-size: 3663322.8;-fx-font-family: 'Octicons'; -fx-font-size: 4395987.3;-fx-font-family: 'Octicons'; -fx-font-size: 5275185.0;-fx-font-family: 'Octicons'; -fx-font-size: 6330222.0;-fx-font-family: 'Octicons'; -fx-font-size: 7596266.4;-fx-font-family: 'Octicons'; -fx-font-size: 9115519.8;-fx-font-family: 'Octicons'; -fx-font-size: 1.0938624E7;}: Unexpected token '1.0938624E' at [1,3813]

Happens on both Java 8 and 9.

Comments (1)

  1. Caleb Hulbert

    I’m currently running into this issue as well. Is there any movement on it?

    Digging around, it seems it is caused because of the listener on the glyphSizeProperty() in GlyphIcon#initProperties . The listener calls updateSize() which ends up calling setGlyphStyle() to update the style to include the new -fx-font-size. Setting the glyphStyle in turn triggers Node::reapplyCss. This ends up getting the same value for -glyph-size of something that is not 1, but this time, the -fx-font-size has been increased from the previous call to setGlyphStyle. The effect is that is multiplies the -glyph-size iteratively by the -fx-font-size that it keeps updating.

    I’m not entirely sure where the appropriate way to short-circuit this loop is, but from a little digging, that’s what I found. It would be really great if this could be addressed though, since otherwise I will have to specify the font size with pixels instead.

  2. Log in to comment