From ddd219d48582dc8a01966ed43e37d8460c9ba19f Mon Sep 17 00:00:00 2001
From: Ricardo JL Rufino <ricardo.jl.rufino@gmail.com>
Date: Fri, 15 May 2020 02:34:00 -0300
Subject: [PATCH 1/4] [IDE] Title of sketch is misaligned on Linux FIX #10209

---
 app/src/processing/app/EditorHeader.java | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java
index 25c09a8dfaa..a620e764ee6 100644
--- a/app/src/processing/app/EditorHeader.java
+++ b/app/src/processing/app/EditorHeader.java
@@ -271,6 +271,11 @@ public void paintComponent(Graphics screen) {
 
       g.setColor(textColor[state]);
       int baseline = (sizeH + fontAscent) / 2;
+      
+      // FIX for OpenJDK 8 and 11 on Linux (GNOME/KDE) (https://github.com/arduino/Arduino/issues/10209)
+      if (OSUtils.isLinux()) {
+        baseline = baseline - 2;
+      }
       //g.drawString(sketch.code[i].name, textLeft, baseline);
       g.drawString(text, textLeft, baseline);
 

From 77e658d90b54dbf9e9d149e5cb34a5942f691177 Mon Sep 17 00:00:00 2001
From: Ricardo JL Rufino <ricardo.jl.rufino@gmail.com>
Date: Fri, 15 May 2020 02:51:11 -0300
Subject: [PATCH 2/4] Fix signal =)

---
 app/src/processing/app/EditorHeader.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java
index a620e764ee6..8ff3ab02912 100644
--- a/app/src/processing/app/EditorHeader.java
+++ b/app/src/processing/app/EditorHeader.java
@@ -274,7 +274,7 @@ public void paintComponent(Graphics screen) {
       
       // FIX for OpenJDK 8 and 11 on Linux (GNOME/KDE) (https://github.com/arduino/Arduino/issues/10209)
       if (OSUtils.isLinux()) {
-        baseline = baseline - 2;
+        baseline = baseline + 2;
       }
       //g.drawString(sketch.code[i].name, textLeft, baseline);
       g.drawString(text, textLeft, baseline);

From f98b7a6f352047e0936e1a809b0c58112af1545f Mon Sep 17 00:00:00 2001
From: Ricardo JL Rufino <ricardo.jl.rufino@gmail.com>
Date: Fri, 15 May 2020 14:38:24 -0300
Subject: [PATCH 3/4] Rever OS changes, and use + getDescent() to improve
 alignment

---
 app/src/processing/app/EditorHeader.java | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java
index 8ff3ab02912..64d6446a1ec 100644
--- a/app/src/processing/app/EditorHeader.java
+++ b/app/src/processing/app/EditorHeader.java
@@ -270,12 +270,8 @@ public void paintComponent(Graphics screen) {
       int textLeft = contentLeft + (pieceWidth - textWidth) / 2;
 
       g.setColor(textColor[state]);
-      int baseline = (sizeH + fontAscent) / 2;
-      
-      // FIX for OpenJDK 8 and 11 on Linux (GNOME/KDE) (https://github.com/arduino/Arduino/issues/10209)
-      if (OSUtils.isLinux()) {
-        baseline = baseline + 2;
-      }
+      int baseline = (sizeH + fontAscent + metrics.getDescent()) / 2;
+
       //g.drawString(sketch.code[i].name, textLeft, baseline);
       g.drawString(text, textLeft, baseline);
 

From d41d22c13ede7048f1eb0ca1138906358380604e Mon Sep 17 00:00:00 2001
From: Ricardo JL Rufino <ricardo.jl.rufino@gmail.com>
Date: Tue, 19 May 2020 18:31:24 -0300
Subject: [PATCH 4/4] Fix: calculate center of Tab not Header

---
 app/src/processing/app/EditorHeader.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java
index 64d6446a1ec..c5695cf8abd 100644
--- a/app/src/processing/app/EditorHeader.java
+++ b/app/src/processing/app/EditorHeader.java
@@ -73,6 +73,7 @@ public class EditorHeader extends JComponent {
 
   static final int PIECE_WIDTH = scale(4);
   static final int PIECE_HEIGHT = scale(33);
+  static final int TAB_HEIGHT = scale(27);
 
   // value for the size bars, buttons, etc
   // TODO: Should be a Theme value?
@@ -270,9 +271,8 @@ public void paintComponent(Graphics screen) {
       int textLeft = contentLeft + (pieceWidth - textWidth) / 2;
 
       g.setColor(textColor[state]);
-      int baseline = (sizeH + fontAscent + metrics.getDescent()) / 2;
-
-      //g.drawString(sketch.code[i].name, textLeft, baseline);
+      int tabMarginTop = sizeH - TAB_HEIGHT;
+      int baseline = tabMarginTop + ((TAB_HEIGHT + fontAscent) / 2) ; 
       g.drawString(text, textLeft, baseline);
 
       g.drawImage(pieces[state][RIGHT], x, 0, null);