This is an automated email from the ASF dual-hosted git repository.
ebakke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new f566859477 On FlatLAF on Windows, improve vertical centering of labels
in buttons. The solution was to make the buttons one pixel taller, as was done
in the standard Swing Windows LAF.
f566859477 is described below
commit f56685947798457737d8272b76b173577506b6d5
Author: Eirik Bakke <[email protected]>
AuthorDate: Mon Nov 15 23:51:29 2021 -0500
On FlatLAF on Windows, improve vertical centering of labels in buttons. The
solution was to make the buttons one pixel taller, as was done in the standard
Swing Windows LAF.
---
.../netbeans/swing/laf/flatlaf/FlatLFCustoms.java | 34 +++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
index 7a31f97062..ec90d39afc 100644
---
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
+++
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
@@ -21,14 +21,23 @@ package org.netbeans.swing.laf.flatlaf;
import com.formdev.flatlaf.util.UIScale;
import java.awt.Color;
+import java.awt.Font;
+import java.awt.Insets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.swing.BorderFactory;
import javax.swing.InputMap;
import javax.swing.KeyStroke;
import javax.swing.UIDefaults;
import javax.swing.UIDefaults.LazyValue;
import javax.swing.UIManager;
+import javax.swing.border.CompoundBorder;
+import javax.swing.plaf.InsetsUIResource;
import org.netbeans.swing.laf.flatlaf.ui.FlatTabControlIcon;
import org.netbeans.swing.plaf.LFCustoms;
import org.netbeans.swing.tabcontrol.plaf.TabControlButton;
+import org.openide.util.Utilities;
/**
* LFCustoms for FlatLaf based LAFs (light, dark, etc).
@@ -54,7 +63,7 @@ public class FlatLFCustoms extends LFCustoms {
"ctrl PAGE_DOWN", null // NOI18N
};
- return new Object[] {
+ Object[] constants = new Object[] {
// unified background
"nb.options.categories.tabPanelBackground", unifiedBackground,
"nb.quicksearch.background", quicksearchBackground,
@@ -120,6 +129,29 @@ public class FlatLFCustoms extends LFCustoms {
"Table.ancestorInputMap.RightToLeft", new LazyModifyInputMap(
"Table.ancestorInputMap.RightToLeft", removeCtrlPageUpDownKeyBindings ), //
NOI18N
"Tree.focusInputMap", new LazyModifyInputMap(
"Tree.focusInputMap", removeCtrlPageUpDownKeyBindings ), // NOI18N
};
+ List<Object> result = new ArrayList<>();
+ result.addAll(Arrays.asList(constants));
+ if (Utilities.isWindows()) {
+ /* Make sure button labels appear vertically centered on Windows.
On the standard
+ Windows LAF,
WindowsButtonUI/WindowsRadioButtonUI/WindowsToggleButtonUI.getPreferredSize
+ add one pixel to the button's height to ensure that it is
odd-numbered. This makes the
+ text centered with either Tahoma 11 (the default Swing Windows LAF
font) or Segoe UI 12
+ (the default font on modern Windows versions, and on FlatLAF on
Windows). */
+ for (String key : new String[] { "Button", "RadioButton",
"ToggleButton" }) {
+ UIDefaults defaults = UIManager.getDefaults();
+ Font font = defaults.getFont(key + ".font");
+ Insets bm = defaults.getInsets(key + ".margin");
+ if (font != null && bm instanceof InsetsUIResource &&
+ font.getFamily().equals("Segoe UI") && font.getSize()
== 12 &&
+ bm.top == bm.bottom) {
+ result.add(key + ".margin");
+ /* Create an InsetsUIResource rather than an Insets, as
FlatLAF treats them
+ differently. Not doing this caused buttons in the main
toolbar to become very wide. */
+ result.add(new InsetsUIResource(bm.top, bm.left, bm.bottom
+ 1, bm.right));
+ }
+ }
+ }
+ return result.toArray();
}
static void updateUnifiedBackground() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists