@@ -48,22 +48,24 @@ Discourse.ComposerView = Discourse.View.extend(Ember.Evented, {
4848 return this . present ( 'controller.createdPost' ) ? 'created-post' : null ;
4949 } . property ( 'model.createdPost' ) ,
5050
51- observeReplyChanges : function ( ) {
52- var self = this ;
53- if ( this . get ( 'model.hidePreview' ) ) return ;
54- Ember . run . next ( function ( ) {
55- if ( self . editor ) {
56- self . editor . refreshPreview ( ) ;
57- // if the caret is on the last line ensure preview scrolled to bottom
58- var caretPosition = Discourse . Utilities . caretPosition ( self . wmdInput [ 0 ] ) ;
59- if ( ! self . wmdInput . val ( ) . substring ( caretPosition ) . match ( / \n / ) ) {
60- var $wmdPreview = $ ( '#wmd-preview' ) ;
61- if ( $wmdPreview . is ( ':visible' ) ) {
62- $wmdPreview . scrollTop ( $wmdPreview [ 0 ] . scrollHeight ) ;
63- }
51+
52+ refreshPreview : Discourse . debounce ( function ( ) {
53+ if ( this . editor ) {
54+ this . editor . refreshPreview ( ) ;
55+ // if the caret is on the last line ensure preview scrolled to bottom
56+ var caretPosition = Discourse . Utilities . caretPosition ( this . wmdInput [ 0 ] ) ;
57+ if ( ! this . wmdInput . val ( ) . substring ( caretPosition ) . match ( / \n / ) ) {
58+ var $wmdPreview = $ ( '#wmd-preview' ) ;
59+ if ( $wmdPreview . is ( ':visible' ) ) {
60+ $wmdPreview . scrollTop ( $wmdPreview [ 0 ] . scrollHeight ) ;
6461 }
6562 }
66- } ) ;
63+ }
64+ } , 30 ) ,
65+
66+ observeReplyChanges : function ( ) {
67+ if ( this . get ( 'model.hidePreview' ) ) return ;
68+ Ember . run . scheduleOnce ( 'afterRender' , this , 'refreshPreview' ) ;
6769 } . observes ( 'model.reply' , 'model.hidePreview' ) ,
6870
6971 movePanels : function ( sizePx ) {
@@ -131,7 +133,7 @@ Discourse.ComposerView = Discourse.View.extend(Ember.Evented, {
131133 } ,
132134
133135 // Called after the preview renders. Debounced for performance
134- afterRender : Discourse . debounce ( function ( ) {
136+ afterRender : function ( ) {
135137 var $wmdPreview = $ ( '#wmd-preview' ) ;
136138 if ( $wmdPreview . length === 0 ) return ;
137139
@@ -156,7 +158,7 @@ Discourse.ComposerView = Discourse.View.extend(Ember.Evented, {
156158 } ) ;
157159
158160 this . trigger ( 'previewRefreshed' , $wmdPreview ) ;
159- } , 100 ) ,
161+ } ,
160162
161163 initEditor : function ( ) {
162164 // not quite right, need a callback to pass in, meaning this gets called once,
0 commit comments