Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 10067)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 10070)
@@ -4,5 +4,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.GraphicsEnvironment;
@@ -17,5 +16,4 @@
 import javax.swing.JPopupMenu;
 import javax.swing.JTable;
-import javax.swing.JViewport;
 import javax.swing.ListSelectionModel;
 import javax.swing.SwingUtilities;
@@ -95,14 +93,5 @@
     @Override
     public Dimension getPreferredSize() {
-        Container c = getParent();
-        while (c != null && !(c instanceof JViewport)) {
-            c = c.getParent();
-        }
-        if (c != null) {
-            Dimension d = super.getPreferredSize();
-            d.width = c.getSize().width;
-            return d;
-        }
-        return super.getPreferredSize();
+        return getPreferredFullWidthSize();
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 10067)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 10070)
@@ -6,5 +6,4 @@
 
 import java.awt.Component;
-import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.KeyboardFocusManager;
@@ -25,5 +24,4 @@
 import javax.swing.JComponent;
 import javax.swing.JTable;
-import javax.swing.JViewport;
 import javax.swing.KeyStroke;
 import javax.swing.ListSelectionModel;
@@ -43,4 +41,5 @@
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
+import org.openstreetmap.josm.gui.widgets.JosmTable;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.TextTagParser;
@@ -51,5 +50,5 @@
  * @since 1762
  */
-public class TagTable extends JTable  {
+public class TagTable extends JosmTable  {
     /** the table cell editor used by this table */
     private TagCellEditor editor;
@@ -415,18 +414,9 @@
     @Override
     public Dimension getPreferredSize() {
-        Container c = getParent();
-        while (c != null && !(c instanceof JViewport)) {
-            c = c.getParent();
-        }
-        if (c != null) {
-            Dimension d = super.getPreferredSize();
-            d.width = c.getSize().width;
-            return d;
-        }
-        return super.getPreferredSize();
-    }
-
-    @Override protected boolean processKeyBinding(KeyStroke ks, KeyEvent e,
-            int condition, boolean pressed) {
+        return getPreferredFullWidthSize();
+    }
+
+    @Override
+    protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
 
         // handle delete key
Index: trunk/src/org/openstreetmap/josm/gui/widgets/JosmTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/JosmTable.java	(revision 10067)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/JosmTable.java	(revision 10070)
@@ -2,4 +2,6 @@
 package org.openstreetmap.josm.gui.widgets;
 
+import java.awt.Container;
+import java.awt.Dimension;
 import java.awt.KeyboardFocusManager;
 import java.awt.event.ActionEvent;
@@ -9,4 +11,5 @@
 import javax.swing.JComponent;
 import javax.swing.JTable;
+import javax.swing.JViewport;
 import javax.swing.KeyStroke;
 import javax.swing.ListSelectionModel;
@@ -105,3 +108,16 @@
         }
     }
+
+    protected Dimension getPreferredFullWidthSize() {
+        Container c = getParent();
+        while (c != null && !(c instanceof JViewport)) {
+            c = c.getParent();
+        }
+        if (c != null) {
+            Dimension d = super.getPreferredSize();
+            d.width = c.getSize().width;
+            return d;
+        }
+        return super.getPreferredSize();
+    }
 }
