From 2f1a3b9789092bc96e7ef645f6e93d6f940148f9 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 23 Dec 2013 15:23:08 -0500 Subject: [PATCH] enabled touch events for composer resizing -- composer is now ipad supported! --- public/src/modules/composer.js | 51 ++++++++++++++++++++++------------ src/meta.js | 2 +- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/public/src/modules/composer.js b/public/src/modules/composer.js index 15949c550e..4c22fa1529 100644 --- a/public/src/modules/composer.js +++ b/public/src/modules/composer.js @@ -205,6 +205,27 @@ define(['taskbar'], function(taskbar) { var resizeActive = false, resizeCenterX = 0, resizeOffset = 0, + resizeStart = function(e) { + bodyRect = document.body.getBoundingClientRect(); + resizeRect = resizeEl.getBoundingClientRect(); + resizeCenterX = resizeRect.left + (resizeRect.width/2); + resizeOffset = resizeCenterX - e.clientX; + resizeSnaps.half = bodyRect.width / 2; + resizeSnaps.none = bodyRect.width; + resizeActive = true; + + $(document.body).on('mousemove', resizeAction); + document.body.addEventListener('touchmove', resizeTouchAction); + }, + resizeStop = function() { + resizeActive = false; + $(document.body).off('mousemove', resizeAction); + document.body.removeEventListener('touchmove', resizeTouchAction); + }, + resizeTouchAction = function(e) { + e.preventDefault(); + resizeAction(e.touches[0]); + }, resizeAction = function(e) { if (resizeActive) { position = (e.clientX + resizeOffset); @@ -238,24 +259,20 @@ define(['taskbar'], function(taskbar) { }, resizeRect, bodyRect; - var resizeEl = postContainer.find('.resizer'); - - resizeEl - .on('mousedown', function(e) { - bodyRect = document.body.getBoundingClientRect(); - resizeRect = resizeEl[0].getBoundingClientRect(); - resizeCenterX = resizeRect.left + (resizeRect.width/2); - resizeOffset = resizeCenterX - e.clientX; - resizeSnaps.half = bodyRect.width / 2; - resizeSnaps.none = bodyRect.width; - resizeActive = true; + var resizeEl = postContainer.find('.resizer')[0]; - $(document.body).on('mousemove', resizeAction); - }) - .on('mouseup', function() { - resizeActive = false; - $(document.body).off('mousemove', resizeAction); - }); + resizeEl.addEventListener('mousedown', resizeStart); + resizeEl.addEventListener('mouseup', resizeStop); + resizeEl.addEventListener('touchstart', function(e) { + e.preventDefault(); + resizeStart(e.touches[0]); + }); + resizeEl.addEventListener('touchend', function(e) { + e.preventDefault(); + resizeStop(); + }); + // .on('mousedown touchstart', resizeStart) + // .on('mouseup touchend', resizeStop) window.addEventListener('resize', function() { if (composer.active !== undefined) { diff --git a/src/meta.js b/src/meta.js index e8711eda41..0182d8c4a8 100644 --- a/src/meta.js +++ b/src/meta.js @@ -73,7 +73,7 @@ var fs = require('fs'), async.filter(files, function (file, next) { fs.stat(path.join(themePath, file), function (err, fileStat) { if (err) { - next(false); + return next(false); } next((fileStat.isDirectory() && file.slice(0, 13) === 'nodebb-theme-'));