<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[BuddyPress][9097] trunk/src/bp-core/js: Mentions: update to latest version of ext.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://buddypress.trac.wordpress.org/changeset/9097">9097</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://buddypress.trac.wordpress.org/changeset/9097","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>djpaul</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2014-10-29 00:36:09 +0000 (Wed, 29 Oct 2014)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Mentions: update to latest version of ext. libs.

* Update atwho JS to rev 0f7ba07 (v0.5.1+).
* Update caret JS to rev 736a7eb (v0.2.0+).

See <a href="http://buddypress.trac.wordpress.org/ticket/5969">#5969</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcbpcorejsjqueryatwhojs">trunk/src/bp-core/js/jquery.atwho.js</a></li>
<li><a href="#trunksrcbpcorejsjquerycaretjs">trunk/src/bp-core/js/jquery.caret.js</a></li>
</ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#trunksrcbpcorejsjqueryatwhojs">trunk/src/bp-core/js/jquery.atwho.js</a></li>
<li><a href="#trunksrcbpcorejsjquerycaretjs">trunk/src/bp-core/js/jquery.caret.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcbpcorejsjqueryatwhojs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-core/js/jquery.atwho.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-core/js/jquery.atwho.js      2014-10-28 18:15:42 UTC (rev 9096)
+++ trunk/src/bp-core/js/jquery.atwho.js        2014-10-29 00:36:09 UTC (rev 9097)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,4 +1,4 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/*! jquery.atwho - v0.5.0 - 2014-07-14
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/*! jquery.atwho - v0.5.1 - 2014-09-21
</ins><span class="cx" style="display: block; padding: 0 10px"> * Copyright (c) 2014 chord.luo <chord.luo@gmail.com>; 
</span><span class="cx" style="display: block; padding: 0 10px"> * homepage: http://ichord.github.com/At.js 
</span><span class="cx" style="display: block; padding: 0 10px"> * Licensed MIT
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13,7 +13,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   })(function($) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var $CONTAINER, Api, App, Controller, DEFAULT_CALLBACKS, KEY_CODE, Model, View,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var Api, App, Controller, DEFAULT_CALLBACKS, KEY_CODE, Model, View,
</ins><span class="cx" style="display: block; padding: 0 10px">   __slice = [].slice;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> App = (function() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22,21 +22,38 @@
</span><span class="cx" style="display: block; padding: 0 10px">     this.controllers = {};
</span><span class="cx" style="display: block; padding: 0 10px">     this.alias_maps = {};
</span><span class="cx" style="display: block; padding: 0 10px">     this.$inputor = $(inputor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    this.iframe = null;
</del><span class="cx" style="display: block; padding: 0 10px">     this.setIframe();
</span><span class="cx" style="display: block; padding: 0 10px">     this.listen();
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  App.prototype.setIframe = function(iframe) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  App.prototype.createContainer = function(doc) {
+    if ((this.$el = $("#atwho-container", doc)).length === 0) {
+      return $(doc.body).append(this.$el = $("<div id='atwho-container'></div>"));
+    }
+  };
+
+  App.prototype.setIframe = function(iframe, standalone) {
+    var _ref;
+    if (standalone == null) {
+      standalone = false;
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">     if (iframe) {
</span><span class="cx" style="display: block; padding: 0 10px">       this.window = iframe.contentWindow;
</span><span class="cx" style="display: block; padding: 0 10px">       this.document = iframe.contentDocument || this.window.document;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return this.iframe = iframe;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      this.iframe = iframe;
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       this.document = document;
</span><span class="cx" style="display: block; padding: 0 10px">       this.window = window;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return this.iframe = null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      this.iframe = null;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (this.iframeStandalone = standalone) {
+      if ((_ref = this.$el) != null) {
+        _ref.remove();
+      }
+      return this.createContainer(this.document);
+    } else {
+      return this.createContainer(document);
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   App.prototype.controller = function(at) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -112,7 +129,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       c.destroy();
</span><span class="cx" style="display: block; padding: 0 10px">       delete this.controllers[_];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return this.$inputor.off('.atwhoInner');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    this.$inputor.off('.atwhoInner');
+    return this.$el.remove();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   App.prototype.dispatch = function() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -225,7 +243,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     this.pos = 0;
</span><span class="cx" style="display: block; padding: 0 10px">     this.cur_rect = null;
</span><span class="cx" style="display: block; padding: 0 10px">     this.range = null;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $CONTAINER.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ((this.$el = $("#atwho-ground-" + this.id, this.app.$el)).length === 0) {
+      this.app.$el.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">     this.model = new Model(this);
</span><span class="cx" style="display: block; padding: 0 10px">     this.view = new View(this);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -313,15 +333,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   Controller.prototype.rect = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var c, scale_bottom;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var c, iframe_offset, scale_bottom;
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!(c = this.$inputor.caret('offset', this.pos - 1, {
</span><span class="cx" style="display: block; padding: 0 10px">       iframe: this.app.iframe
</span><span class="cx" style="display: block; padding: 0 10px">     }))) {
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (this.$inputor.attr('contentEditable') === 'true') {
-      c = (this.cur_rect || (this.cur_rect = c)) || c;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (this.app.iframe && !this.app.iframeStandalone) {
+      iframe_offset = $(this.app.iframe).offset();
+      c.left += iframe_offset.left;
+      c.top += iframe_offset.top;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (this.$inputor.is('[contentEditable]')) {
+      c = this.cur_rect || (this.cur_rect = c);
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">     scale_bottom = this.app.document.selection ? 0 : 2;
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       left: c.left,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -331,20 +356,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   Controller.prototype.reset_rect = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (this.$inputor.attr('contentEditable') === 'true') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (this.$inputor.is('[contentEditable]')) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return this.cur_rect = null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   Controller.prototype.mark_range = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (this.$inputor.attr('contentEditable') === 'true') {
-      if (this.app.window.getSelection) {
-        this.range = this.app.window.getSelection().getRangeAt(0);
-      }
-      if (this.app.document.selection) {
-        return this.ie8_range = this.app.document.selection.createRange();
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var sel;
+    if (!this.$inputor.is('[contentEditable]')) {
+      return;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (this.app.window.getSelection && (sel = this.app.window.getSelection()).rangeCount > 0) {
+      return this.range = sel.getRangeAt(0);
+    } else if (this.app.document.selection) {
+      return this.ie8_range = this.app.document.selection.createRange();
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   Controller.prototype.insert_content_for = function($li) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -541,10 +567,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   View.prototype.reposition = function(rect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var offset, _ref;
-    if (rect.bottom + this.$el.height() - $(window).scrollTop() > $(window).height()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var offset, overflowOffset, _ref, _window;
+    _window = this.context.app.iframeStandalone ? this.context.app.window : window;
+    if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {
</ins><span class="cx" style="display: block; padding: 0 10px">       rect.bottom = rect.top - this.$el.height();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {
+      rect.left = overflowOffset;
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">     offset = {
</span><span class="cx" style="display: block; padding: 0 10px">       left: rect.left,
</span><span class="cx" style="display: block; padding: 0 10px">       top: rect.bottom
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -677,7 +707,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (should_start_with_space) {
</span><span class="cx" style="display: block; padding: 0 10px">       flag = '(?:^|\\s)' + flag;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    regexp = new RegExp(flag + '([A-Za-z0-9_\+\-]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    regexp = new RegExp(flag + '([A-Za-zÀ-ÿ0-9_\+\-]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
</ins><span class="cx" style="display: block; padding: 0 10px">     match = regexp.exec(subtext);
</span><span class="cx" style="display: block; padding: 0 10px">     if (match) {
</span><span class="cx" style="display: block; padding: 0 10px">       return match[2] || match[1];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -690,7 +720,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     _results = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (_i = 0, _len = data.length; _i < _len; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       item = data[_i];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (~item[search_key].toLowerCase().indexOf(query.toLowerCase())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (~new String(item[search_key]).toLowerCase().indexOf(query.toLowerCase())) {
</ins><span class="cx" style="display: block; padding: 0 10px">         _results.push(item);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -705,7 +735,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     _results = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (_i = 0, _len = items.length; _i < _len; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       item = items[_i];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      item.atwho_order = item[search_key].toLowerCase().indexOf(query.toLowerCase());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      item.atwho_order = new String(item[search_key]).toLowerCase().indexOf(query.toLowerCase());
</ins><span class="cx" style="display: block; padding: 0 10px">       if (item.atwho_order > -1) {
</span><span class="cx" style="display: block; padding: 0 10px">         _results.push(item);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -766,8 +796,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return c.model.load(data);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  setIframe: function(iframe) {
-    this.setIframe(iframe);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  setIframe: function(iframe, standalone) {
+    this.setIframe(iframe, standalone);
</ins><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   },
</span><span class="cx" style="display: block; padding: 0 10px">   run: function() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -779,14 +809,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-$CONTAINER = $("<div id='atwho-container'></div>");
-
</del><span class="cx" style="display: block; padding: 0 10px"> $.fn.atwho = function(method) {
</span><span class="cx" style="display: block; padding: 0 10px">   var result, _args;
</span><span class="cx" style="display: block; padding: 0 10px">   _args = arguments;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  $('body').append($CONTAINER);
</del><span class="cx" style="display: block; padding: 0 10px">   result = null;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  this.filter('textarea, input, [contenteditable=true]').each(function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
</ins><span class="cx" style="display: block; padding: 0 10px">     var $this, app;
</span><span class="cx" style="display: block; padding: 0 10px">     if (!(app = ($this = $(this)).data("atwho"))) {
</span><span class="cx" style="display: block; padding: 0 10px">       $this.data('atwho', (app = new App(this)));
</span><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/src/bp-core/js/jquery.atwho.js
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:executable</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+*
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunksrcbpcorejsjquerycaretjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-core/js/jquery.caret.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-core/js/jquery.caret.js      2014-10-28 18:15:42 UTC (rev 9096)
+++ trunk/src/bp-core/js/jquery.caret.js        2014-10-29 00:36:09 UTC (rev 9097)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -36,11 +36,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       EditableCaret.prototype.getIEPosition = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $.noop();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return this.getPosition();
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       EditableCaret.prototype.getPosition = function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $.noop();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var inputor_offset, offset;
+        offset = this.getOffset();
+        inputor_offset = this.$inputor.offset();
+        offset.left -= inputor_offset.left;
+        offset.top -= inputor_offset.top;
+        return offset;
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       EditableCaret.prototype.getOldIEPos = function() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -97,7 +102,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         } else if (oDocument.selection) {
</span><span class="cx" style="display: block; padding: 0 10px">           offset = this.getOldIEOffset();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (offset && !oFrame) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (offset) {
</ins><span class="cx" style="display: block; padding: 0 10px">           offset.top += $(oWindow).scrollTop();
</span><span class="cx" style="display: block; padding: 0 10px">           offset.left += $(oWindow).scrollLeft();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -206,7 +211,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var $inputor, at_rect, end_range, format, html, mirror, start_range;
</span><span class="cx" style="display: block; padding: 0 10px">         $inputor = this.$inputor;
</span><span class="cx" style="display: block; padding: 0 10px">         format = function(value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return value.replace(/</g, '&lt').replace(/>/g, '&gt').replace(/`/g, '&#96').replace(/"/g, '&quot').replace(/\r\n|\r|\n/g, "<br />");
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return $('<div></div>').text(value).html();
</ins><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">         if (pos === void 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           pos = this.getPos();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -307,13 +312,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       offset: function(pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var iOffset, offset;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var offset;
</ins><span class="cx" style="display: block; padding: 0 10px">         offset = this.getOffset(pos);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (oFrame) {
-          iOffset = $(oFrame).offset();
-          offset.top += iOffset.top;
-          offset.left += iOffset.left;
-        }
</del><span class="cx" style="display: block; padding: 0 10px">         return offset;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/src/bp-core/js/jquery.caret.js
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:executable</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+*
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span></div>

</body>
</html>