layout/reftests/forms/select/themed-select-padding-no-clip-ref.html
author Emilio Cobos Álvarez <emilio@crisal.io>
Wed, 14 Aug 2019 16:06:46 +0000
changeset 488055 bd44d2dd0c02c1e2ab10e73695ee3ef1da971aa6
parent 483029 05c5e4d30587aeab3f566e07edda1a3e6d22c41e
child 488092 725ed668541437310ddcc3fb5aa18e23cfc922b2
permissions -rw-r--r--
Bug 1571764 - Subtract combobox display frame border-padding when inferring the height from line-height. r=mats,jfkthame This fixes it and seems to be an acceptable fix... Should I make it conditional on box-sizing: border-box for completeness? The display frame has border-box box-sizing, and not having it would be a bug, I'd think... Differential Revision: https://phabricator.services.mozilla.com/D41939

<!doctype html>
<title>Bug 1561794 - padding-inline-end does not clip display text for themed comboboxes.</title>
<style>
  select, .unthemed {
    font: 16px / 1 monospace;
    width: 20ch;
    display: block;
  }
  .unthemed {
    box-sizing: border-box;
    border: 1px solid grey;
  }
</style>
<!--- Ensure the text isn't chopped -->
<select><option>XXXXXXXXXXXX</option></select>
<select><option>X XXXXXXXXXX</option></select>

<!--- Test that the display text doesn't overflow the select. -->
<select style="overflow: hidden"><option>XXXXXXXXXXXXXXXXX</option></select>

<!-- Test that this only affects themed comboboxes -->
<div class="unthemed" style="padding-right: 15ch"><div style="padding: 0 4px; overflow: hidden;">XXXXXXXXXX</div></div>

<select id="src" style="padding-left: 10ch; padding-right: 10ch"><option>XXXXXXXXXX</option></select>
<select id="ref" style="padding-left: 10ch;"><option>XXXXXXXXXX</option></select>
<script>
  // This one is a bit special, because we want `ref` to have the same size as
  // `src`, which for some reason, with or without the patch for this bug,
  // grows outside the specified width. Given this width depends on scrollbar,
  // width, which is platform dependent, we just calculate it from `src`, and
  // then hide it.
  //
  // We just really want to test that the padding right doesn't clip the text
  // anyhow.
  ref.style.width = getComputedStyle(src).width;
  src.style.display = "none";
</script>