Index: trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java	(revision 18754)
+++ trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java	(revision 18755)
@@ -66,4 +66,5 @@
                 MapFrame.SIDE_TOOLBAR_VISIBLE.put(selected);
             }
+            map.mapView.setMapNavigationComponentVisibility(selected || Config.getPref().getBoolean("navigation.always-visible", true));
             map.mapView.rememberLastPositionOnScreen();
         }
Index: trunk/src/org/openstreetmap/josm/gui/MapFrame.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 18754)
+++ trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 18755)
@@ -39,10 +39,7 @@
 import javax.swing.KeyStroke;
 import javax.swing.SwingConstants;
-import javax.swing.border.Border;
 import javax.swing.event.PopupMenuEvent;
 import javax.swing.event.PopupMenuListener;
 import javax.swing.plaf.basic.BasicArrowButton;
-import javax.swing.plaf.basic.BasicSplitPaneDivider;
-import javax.swing.plaf.basic.BasicSplitPaneUI;
 
 import org.openstreetmap.josm.actions.ExpertToggleAction;
@@ -227,5 +224,4 @@
         splitPane.setDividerSize(5);
         splitPane.setBorder(null);
-        splitPane.setUI(new NoBorderSplitPaneUI());
 
         // JSplitPane supports F6, F8, Home and End shortcuts by default, but we need them for Audio and Image Mapping actions
@@ -313,5 +309,5 @@
      */
     public boolean selectSelectTool(boolean onlyIfModeless) {
-        if (onlyIfModeless && !MODELESS.get())
+        if (onlyIfModeless && Boolean.FALSE.equals(MODELESS.get()))
             return false;
 
@@ -325,5 +321,5 @@
      */
     public boolean selectDrawTool(boolean onlyIfModeless) {
-        if (onlyIfModeless && !MODELESS.get())
+        if (onlyIfModeless && Boolean.FALSE.equals(MODELESS.get()))
             return false;
 
@@ -337,5 +333,5 @@
      */
     public boolean selectZoomTool(boolean onlyIfModeless) {
-        if (onlyIfModeless && !MODELESS.get())
+        if (onlyIfModeless && Boolean.FALSE.equals(MODELESS.get()))
             return false;
 
@@ -568,22 +564,4 @@
         if (statusLine != null && Config.getPref().getBoolean("statusline.visible", true)) {
             panel.add(statusLine, BorderLayout.SOUTH);
-        }
-    }
-
-    static final class NoBorderSplitPaneUI extends BasicSplitPaneUI {
-        static final class NoBorderBasicSplitPaneDivider extends BasicSplitPaneDivider {
-            NoBorderBasicSplitPaneDivider(BasicSplitPaneUI ui) {
-                super(ui);
-            }
-
-            @Override
-            public void setBorder(Border b) {
-                // Do nothing
-            }
-        }
-
-        @Override
-        public BasicSplitPaneDivider createDefaultDivider() {
-            return new NoBorderBasicSplitPaneDivider(this);
         }
     }
@@ -685,5 +663,5 @@
                         @Override
                         public void actionPerformed(ActionEvent e) {
-                            if ((Boolean) getValue(SELECTED_KEY)) {
+                            if (Boolean.TRUE.equals(getValue(SELECTED_KEY))) {
                                 t.showButton();
                             } else {
Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 18754)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 18755)
@@ -3,4 +3,5 @@
 
 import java.awt.AlphaComposite;
+import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Dimension;
@@ -10,4 +11,5 @@
 import java.awt.Rectangle;
 import java.awt.Shape;
+import java.awt.Stroke;
 import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
@@ -103,5 +105,5 @@
                     MainApplication.getLayerManager().getLayers()
                         .stream()
-                        .filter(layer -> layer instanceof OsmDataLayer)
+                        .filter(OsmDataLayer.class::isInstance)
                         .forEach(Layer::invalidate)
                 );
@@ -237,4 +239,7 @@
     private transient MapMover mapMover;
 
+    private final List<? extends JComponent> mapNavigationComponents;
+    private final Stroke worldBorderStroke = new BasicStroke(1.0f);
+
     /**
      * The listener that listens to invalidations of all layers.
@@ -294,8 +299,9 @@
         setFocusTraversalKeysEnabled(!Shortcut.findShortcut(KeyEvent.VK_TAB, 0).isPresent());
 
-        for (JComponent c : getMapNavigationComponents(this)) {
+        mapNavigationComponents = getMapNavigationComponents(this);
+        for (JComponent c : mapNavigationComponents) {
             add(c);
         }
-        if (AutoFilterManager.PROP_AUTO_FILTER_ENABLED.get()) {
+        if (Boolean.TRUE.equals(AutoFilterManager.PROP_AUTO_FILTER_ENABLED.get())) {
             AutoFilterManager.getInstance().enableAutoFilterRule(AutoFilterManager.PROP_AUTO_FILTER_RULE.get());
         }
@@ -659,4 +665,5 @@
     private void drawWorldBorders(Graphics2D tempG) {
         tempG.setColor(Color.WHITE);
+        tempG.setStroke(worldBorderStroke);
         Bounds b = getProjection().getWorldBoundsLatLon();
 
@@ -912,3 +919,14 @@
         return mapMover;
     }
+
+    /**
+     * Set the visibility of the navigation component
+     * @param visible {@code true} to make the navigation component visible
+     * @since 18755
+     */
+    public void setMapNavigationComponentVisibility(boolean visible) {
+        for (JComponent c : mapNavigationComponents) {
+            c.setVisible(visible);
+        }
+    }
 }
