Index: trunk/src/org/openstreetmap/josm/gui/actionsupport/AlignImageryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/actionsupport/AlignImageryPanel.java	(revision 5127)
+++ trunk/src/org/openstreetmap/josm/gui/actionsupport/AlignImageryPanel.java	(revision 5128)
@@ -4,4 +4,6 @@
 import java.awt.Color;
 import java.awt.Font;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
@@ -17,4 +19,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.GBC;
 import static org.openstreetmap.josm.tools.I18n.tr;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -30,5 +33,5 @@
     private static final String PREF = "imagery.offsetnagging";
 
-    public AlignImageryPanel() {
+    public AlignImageryPanel(boolean oneLine) {
         super();
         
@@ -36,6 +39,4 @@
         JLabel nagLabel = new JLabel(tr("Aerial imagery might be misaligned. Please check its offset using GPS tracks!"));
         UrlLabel detailsList = new UrlLabel(tr("http://wiki.openstreetmap.org/wiki/Using_Imagery"), tr("Details..."));
-        double w = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
-        if (w<1300) detailsList.setDescription("Read more");
         nagLabel.setFont(font);
         detailsList.setFont(font);
@@ -56,11 +57,14 @@
         });
         
-        BoxLayout box = new BoxLayout(this, BoxLayout.X_AXIS);
-        setLayout(box);
-        add(nagLabel);
-        add(Box.createHorizontalStrut(12));
-        add(detailsList);
-        add(Box.createHorizontalGlue());
-        add(closeButton);
+        setLayout(new GridBagLayout());
+        if (!oneLine) { // tune for small screens
+            add(nagLabel, GBC.std(1, 1).fill());
+            add(detailsList, GBC.std(1, 2).fill());
+            add(closeButton, GBC.std(2, 1).span(1,2).anchor(GBC.EAST));
+        } else {
+            add(nagLabel, GBC.std(1,1).fill());
+            add(detailsList, GBC.std(2,1).fill());
+            add(closeButton, GBC.std(3,1).anchor(GBC.EAST));
+        }
 //        setBorder(new EmptyBorder(12, 12, 12, 12));
         setBorder(new CompoundBorder(new EtchedBorder(EtchedBorder.LOWERED), new EmptyBorder(12, 12, 12, 12)));
@@ -71,5 +75,6 @@
         if( Main.map != null && !Main.pref.getBoolean("expert") && Main.pref.getBoolean(PREF, true) ) {
             if (Main.map.getTopPanel(AlignImageryPanel.class) == null) {
-                AlignImageryPanel p = new AlignImageryPanel();
+                double w = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
+                AlignImageryPanel p = new AlignImageryPanel(w>1300);
                 Main.map.addTopPanel(p);
             }
