diff --git a/app/assets/javascripts/discourse/components/keyboard_shortcuts_component.js b/app/assets/javascripts/discourse/components/keyboard_shortcuts_component.js index 7569b00fa..494196131 100644 --- a/app/assets/javascripts/discourse/components/keyboard_shortcuts_component.js +++ b/app/assets/javascripts/discourse/components/keyboard_shortcuts_component.js @@ -127,7 +127,13 @@ Discourse.KeyboardShortcuts = Ember.Object.createWithMixins({ if ($article.size() > 0) { $articles.removeClass('selected'); $article.addClass('selected'); - this._scrollList($article); + + var rgx = new RegExp("post-cloak-(\\d+)").exec($article.parent()[0].id); + if (rgx === null || typeof rgx[1] === 'undefined') { + this._scrollList($article); + } else { + Discourse.TopicView.jumpToPost(rgx[1]); + } } }, diff --git a/app/assets/javascripts/discourse/views/topic_view.js b/app/assets/javascripts/discourse/views/topic_view.js index 2659d0139..eb2d4d720 100644 --- a/app/assets/javascripts/discourse/views/topic_view.js +++ b/app/assets/javascripts/discourse/views/topic_view.js @@ -235,7 +235,8 @@ Discourse.TopicView.reopenClass({ new LockOn(holderId, {offsetCalculator: function() { var $header = $('header'), $title = $('#topic-title'), - expectedOffset = $title.height() - $header.find('.contents').height(); + windowHeight = $(window).height() - $title.height(), + expectedOffset = $title.height() - $header.find('.contents').height() + (windowHeight / 5); return $header.outerHeight(true) + ((expectedOffset < 0) ? 0 : expectedOffset); }}).lock();