The height is read on use from a global cache in SynthSeparatorUI.style.yThickness. The style field is initialized twice, once on program launch and again later when a menu separator is displayed for the first time. Only the second one is relevant; this is the stacktrace on the java side.
Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 97 in
GTKStyle))
GTKStyle.<init>(Font, GTKEngine$WidgetType) line: 97
GTKStyleFactory.getStyle(JComponent, Region) line: 103
SynthLookAndFeel.getStyle(JComponent, Region) line: 227
SynthLookAndFeel.updateStyle(SynthContext, SynthUI) line: 283
SynthSeparatorUI.updateStyle(JSeparator) line: 72
SynthSeparatorUI.propertyChange(PropertyChangeEvent) line: 185
PropertyChangeSupport.fire(PropertyChangeListener[],
PropertyChangeEvent) line: 298
PropertyChangeSupport.firePropertyChange(PropertyChangeEvent) line:
291
PropertyChangeSupport.firePropertyChange(String, Object, Object) line:
229
Menu$DebugSeparator(Component).firePropertyChange(String, Object,
Object) line: 8023
Menu$DebugSeparator(JComponent).addNotify() line: 4688
JPopupMenu(Container).addNotify() line: 2639
JPopupMenu(JComponent).addNotify() line: 4687
JPanel(Container).addNotify() line: 2639
JPanel(JComponent).addNotify() line: 4687
JLayeredPane(Container).addNotify() line: 2639
JLayeredPane(JComponent).addNotify() line: 4687
JRootPane(Container).addNotify() line: 2639
JRootPane(JComponent).addNotify() line: 4687
JRootPane.addNotify() line: 750
Popup$HeavyWeightWindow(Container).addNotify() line: 2639
Popup$HeavyWeightWindow(Window).addNotify() line: 668
Popup$HeavyWeightWindow(Window).pack() line: 698
Popup$HeavyWeightWindow.show() line: 247
PopupFactory$HeavyWeightPopup(Popup).show() line: 105
JPopupMenu.getPopup() line: 799
JPopupMenu.setVisible(boolean) line: 748
JPopupMenu.show(Component, int, int) line: 921
JMenu.setPopupMenuVisible(boolean) line: 351
JPopupMenu.menuSelectionChanged(boolean) line: 1433
MenuSelectionManager.setSelectedPath(MenuElement[]) line: 117
BasicMenuUI.appendPath(MenuElement[], MenuElement) line: 223
BasicMenuUI.access$200(MenuElement[], MenuElement) line: 49
BasicMenuUI$Handler.mousePressed(MouseEvent) line: 463
JMenu(Component).processMouseEvent(MouseEvent) line: 6105
JMenu(JComponent).processMouseEvent(MouseEvent) line: 3267
JMenu(Component).processEvent(AWTEvent) line: 5873
JMenu(Container).processEvent(AWTEvent) line: 2105
JMenu(Component).dispatchEventImpl(AWTEvent) line: 4469
JMenu(Container).dispatchEventImpl(AWTEvent) line: 2163
JMenu(Component).dispatchEvent(AWTEvent) line: 4295
LightweightDispatcher.retargetMouseEvent(Component, int, MouseEvent)
line: 4461
LightweightDispatcher.processMouseEvent(MouseEvent) line: 4122
LightweightDispatcher.dispatchEvent(AWTEvent) line: 4055
JFrame(Container).dispatchEventImpl(AWTEvent) line: 2149
JFrame(Window).dispatchEventImpl(AWTEvent) line: 2478
JFrame(Component).dispatchEvent(AWTEvent) line: 4295
EventQueue.dispatchEvent(AWTEvent) line: 604
EventDispatchThread.pumpOneEventForFilters(int) line: 275
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter)
line: 200
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component)
line: 190
EventDispatchThread.pumpEvents(int, Conditional) line: 185
EventDispatchThread.pumpEvents(Conditional) line: 177
EventDispatchThread.run() line: 138
GTKStyle(Font userFont, WidgetType widgetType) {
this.widgetType = widgetType.ordinal();
String pangoFontName;
synchronized (sun.awt.UNIXToolkit.GTK_LOCK) {
xThickness = nativeGetXThickness(this.widgetType);
yThickness = nativeGetYThickness(this.widgetType); // <--
pangoFontName = nativeGetPangoFontName(this.widgetType);
}
Font pangoFont = null;
if (pangoFontName != null) {
pangoFont = PangoFonts.lookupFont(pangoFontName);
}
if (pangoFont != null) {
this.font = pangoFont;
} else if (userFont != null) {
this.font = userFont;
} else {
this.font = DEFAULT_FONT;
}
}
The function nativeGetYThickness is called with parameter 36, an enum
oridnal for POPUP_MENU_SEPARATOR.
signature.asc
Description: This is a digitally signed message part

