There isn't one obviously right way to fix this bug. The project contents tables have fixed layouts, meaning each td has white-space: nowrap; overflow: hidden;
set. And these tables just use render_editable_attribute
to render this name, meaning we can't change the layout of the name+pencil pair without far-reaching consequences. I have not found any way to say "If the contents of this box overflow, render this content at the end" in CSS.
Does this table need to have a fixed layout (i.e., each row is the same height)? Removing that constraint would make for the easiest, and most flexible fix. Judiciously adding s to the row contents would help prevent awkward wraps between buttons, etc.
If the table should have a fixed layout, then I think our next best option is to stop using the application-wide table-fixedlayout
class, and write more specialized CSS for these tables.
We could pass render_editable_attribute
the option to render the pencil on the left of the name instead of the right, but while that's very simple code-wise I think the UI inconsistency would be really jarring to users.