diff --git a/app/js/directives.js b/app/js/directives.js
index 857bc964..26be777f 100755
--- a/app/js/directives.js
+++ b/app/js/directives.js
@@ -1231,7 +1231,7 @@ angular.module('myApp.directives', ['myApp.filters'])
var dragStarted, dragTimeout;
var submitBtn = $('.im_submit', element)[0];
- new EmojiTooltip(emojiButton, {
+ var emojiTooltip = new EmojiTooltip(emojiButton, {
getStickers: function (callback) {
AppStickersManager.getStickers().then(function () {
AppStickersManager.getStickersImages().then(function (stickersData) {
@@ -1372,6 +1372,9 @@ angular.module('myApp.directives', ['myApp.filters'])
if (!Config.Navigator.touch) {
composer.focus();
}
+ if (emojiTooltip) {
+ emojiTooltip.hide();
+ }
});
$scope.$on('ui_peer_reply', function () {
onContentLoaded(function () {
diff --git a/app/js/message_composer.js b/app/js/message_composer.js
index 788c6167..101e8999 100644
--- a/app/js/message_composer.js
+++ b/app/js/message_composer.js
@@ -166,6 +166,11 @@ function EmojiTooltip (btnEl, options) {
}
return cancelEvent(e);
});
+ $(document).on('mousedown', function (e) {
+ if (self.shown) {
+ self.hide();
+ }
+ });
}
EmojiTooltip.prototype.onMouseEnter = function (triggerShow) {
@@ -191,6 +196,21 @@ EmojiTooltip.prototype.onMouseLeave = function (triggerUnshow) {
}
};
+EmojiTooltip.prototype.getScrollWidth = function() {
+ var outer = $('
').css({
+ position: 'absolute',
+ width: 100,
+ height: 100,
+ overflow: 'scroll',
+ top: -9999
+ }).appendTo($(document.body));
+
+ var scrollbarWidth = outer[0].offsetWidth - outer[0].clientWidth;
+ outer.remove();
+
+ return scrollbarWidth;
+};
+
EmojiTooltip.prototype.createTooltip = function () {
@@ -207,6 +227,13 @@ EmojiTooltip.prototype.createTooltip = function () {
this.footerEl = $('.composer_emoji_tooltip_footer', this.tooltip);
this.settingsEl = $('.composer_emoji_tooltip_settings', this.tooltip);
+ var scrollWidth = this.getScrollWidth();
+ if (scrollWidth > 0) {
+ this.tooltipEl.css({
+ width: parseInt(this.tooltipEl.css('width')) + scrollWidth
+ });
+ }
+
angular.forEach(['recent', 'smile', 'flower', 'bell', 'car', 'grid', 'stickers'], function (tabName, tabIndex) {
var tab = $('
')
.on('mousedown', function (e) {
@@ -363,8 +390,10 @@ EmojiTooltip.prototype.show = function () {
};
EmojiTooltip.prototype.hide = function () {
- this.tooltipEl.removeClass('composer_emoji_tooltip_shown');
- this.btnEl.removeClass('composer_emoji_insert_btn_on');
+ if (this.tooltipEl) {
+ this.tooltipEl.removeClass('composer_emoji_tooltip_shown');
+ this.btnEl.removeClass('composer_emoji_insert_btn_on');
+ }
delete this.hideTimeout;
delete this.shown;
};
diff --git a/app/js/services.js b/app/js/services.js
index d1276e49..77578e88 100755
--- a/app/js/services.js
+++ b/app/js/services.js
@@ -637,7 +637,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
}
chatFull.thumb = {
- placeholder: 'img/placeholders/GroupAvatar'+((Math.abs(id) % 4) + 1)+'@2x.png',
+ placeholder: 'img/placeholders/GroupAvatar'+(Config.Mobile ? chat.num : Math.ceil(chat.num / 2))+'@2x.png',
location: chat && chat.photo && chat.photo.photo_small,
width: 72,
height: 72,
diff --git a/app/partials/mobile/chat_modal.html b/app/partials/mobile/chat_modal.html
index aac54213..88370562 100644
--- a/app/partials/mobile/chat_modal.html
+++ b/app/partials/mobile/chat_modal.html
@@ -49,12 +49,14 @@