diff --git a/app/assets/javascripts/discourse/components/combo-box.js.es6 b/app/assets/javascripts/discourse/components/combo-box.js.es6 index 340ba966159..ab43f7462d0 100644 --- a/app/assets/javascripts/discourse/components/combo-box.js.es6 +++ b/app/assets/javascripts/discourse/components/combo-box.js.es6 @@ -72,7 +72,7 @@ export default Ember.Component.extend({ } const $elem = this.$(); - const minimumResultsForSearch = this.capabilities.touch ? -1 : 5; + const minimumResultsForSearch = this.capabilities.isIOS ? -1 : 5; $elem.select2({formatResult: this.comboTemplate, minimumResultsForSearch, width: 'resolve'}); const castInteger = this.get('castInteger'); diff --git a/app/assets/javascripts/discourse/components/composer-editor.js.es6 b/app/assets/javascripts/discourse/components/composer-editor.js.es6 index b6ffc78ce2f..49e3a49d25a 100644 --- a/app/assets/javascripts/discourse/components/composer-editor.js.es6 +++ b/app/assets/javascripts/discourse/components/composer-editor.js.es6 @@ -59,7 +59,7 @@ export default Ember.Component.extend({ $input.on('scroll', () => Ember.run.throttle(this, this._syncEditorAndPreviewScroll, 20)); // Focus on the body unless we have a title - if (!this.get('composer.canEditTitle') && !this.capabilities.touch) { + if (!this.get('composer.canEditTitle') && !this.capabilities.isIOS) { this.$('.d-editor-input').putCursorAtEnd(); } diff --git a/app/assets/javascripts/discourse/components/composer-title.js.es6 b/app/assets/javascripts/discourse/components/composer-title.js.es6 index 6dc5f6e56bb..2eae6705574 100644 --- a/app/assets/javascripts/discourse/components/composer-title.js.es6 +++ b/app/assets/javascripts/discourse/components/composer-title.js.es6 @@ -5,7 +5,7 @@ export default Ember.Component.extend({ @on('didInsertElement') _focusOnTitle() { - if (!this.capabilities.touch) { + if (!this.capabilities.isIOS) { this.$('input').putCursorAtEnd(); } }, diff --git a/app/assets/javascripts/discourse/components/menu-panel.js.es6 b/app/assets/javascripts/discourse/components/menu-panel.js.es6 index c35a77923a5..988dc50e798 100644 --- a/app/assets/javascripts/discourse/components/menu-panel.js.es6 +++ b/app/assets/javascripts/discourse/components/menu-panel.js.es6 @@ -100,7 +100,7 @@ export default Ember.Component.extend({ this._watchSizeChanges(); // iOS does not handle scroll events well - if (!this.capabilities.touch) { + if (!this.capabilities.isIOS) { $(window).on('scroll.discourse-menu-panel', () => this.performLayout()); } } else { diff --git a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 index 382d7749da0..9a409fcc827 100644 --- a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 +++ b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 @@ -24,6 +24,8 @@ export default { caps.isChrome = !!window.chrome && !caps.isOpera; caps.canPasteImages = caps.isChrome || caps.isFirefox; } + + caps.isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; } // We consider high res a device with 1280 horizontal pixels. High DPI tablets like diff --git a/app/assets/javascripts/discourse/views/topic-progress.js.es6 b/app/assets/javascripts/discourse/views/topic-progress.js.es6 index 7fc2047204f..56e3c0ca713 100644 --- a/app/assets/javascripts/discourse/views/topic-progress.js.es6 +++ b/app/assets/javascripts/discourse/views/topic-progress.js.es6 @@ -76,7 +76,7 @@ export default Ember.View.extend({ _focusWhenOpened: function() { // Don't focus on mobile or touch - if (Discourse.Mobile.mobileView || this.capabilities.touch) { + if (Discourse.Mobile.mobileView || this.capabilities.isIOS) { return; }