Relay the bind-value-changed event from gr-textarea
The reply dialog listens for bind-value-changed on its textarea so that
the dialog can be repositioned. However, when the textarea had been
upgraded from an iron-autogrow-textarea to a specialized gr-textarea,
the bind-value-changed events were being swallowed. With this change,
gr-textarea's handler for these events relays them for handling above.
Bug: Issue 6768
Change-Id: Ida6ffd37ce37055e260ab196de2e5f5118c0e682
diff --git a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js
index 7da0688..1bc565d 100644
--- a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js
+++ b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js
@@ -53,6 +53,10 @@
Polymer({
is: 'gr-textarea',
+ /**
+ * @event bind-value-changed
+ */
+
properties: {
autocomplete: Boolean,
disabled: Boolean,
@@ -240,6 +244,9 @@
* autocomplete options.
*/
_onValueChanged(e) {
+ // Relay the event.
+ this.fire('bind-value-changed', e);
+
// If cursor is not in textarea (just opened with colon as last char),
// Don't do anything.
if (!e.currentTarget.focused) { return; }
diff --git a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html
index 637fbbfc..95e3a8d 100644
--- a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html
@@ -196,6 +196,14 @@
assert.isTrue(resetSpy.called);
});
+ test('_onValueChanged fires bind-value-changed', () => {
+ const listenerStub = sinon.stub();
+ const eventObject = {currentTarget: {focused: false}};
+ element.addEventListener('bind-value-changed', listenerStub);
+ element._onValueChanged(eventObject);
+ assert.isTrue(listenerStub.called);
+ });
+
suite('keyboard shortcuts', () => {
function setupDropdown() {
MockInteractions.focus(element.$.textarea);