From 03ae2de82b1238c907689250a421cfc147d76cc2 Mon Sep 17 00:00:00 2001
From: Philipp
Date: Sun, 23 Sep 2018 15:34:24 +0200
Subject: [PATCH] Bugfix: Click determination after changing sidebar width
Signed-off-by: Philipp
---
src/js/background.js | 2 +-
src/js/helper/sidebarEvents.js | 10 ++++++----
src/js/helper/toggle.js | 16 ++++++++++++----
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/src/js/background.js b/src/js/background.js
index c0c2fcac..90f4412d 100644
--- a/src/js/background.js
+++ b/src/js/background.js
@@ -139,7 +139,7 @@
checkLicenseKey(opts.licenseKey).then((response) => {
if (response.valid === true) { // valid license key -> reinitialize sidebar
this.helper.model.setLicenseKey(opts.licenseKey).then(() => {
- this.reinitialize({type: "premiumActivated"});
+ return this.reinitialize({type: "premiumActivated"});
}).then(() => {
resolve({success: true});
});
diff --git a/src/js/helper/sidebarEvents.js b/src/js/helper/sidebarEvents.js
index 8e61c75f..6914acc4 100644
--- a/src/js/helper/sidebarEvents.js
+++ b/src/js/helper/sidebarEvents.js
@@ -334,8 +334,6 @@
ext.helper.contextmenu.close();
ext.helper.tooltip.close();
ext.helper.toggle.addSidebarHoverClass();
-
- ext.elm.widthDrag.data("dragInfo", {start: e.clientX, width: ext.elm.sidebar.realWidth()});
ext.elm.widthDrag.addClass($.cl.drag.isDragged);
});
@@ -343,7 +341,13 @@
if (ext.elm.widthDrag.hasClass($.cl.drag.isDragged) && e.which === 1) {
e.preventDefault();
e.stopPropagation();
+
let dragInfo = ext.elm.widthDrag.data("dragInfo");
+ if (!dragInfo) {
+ dragInfo = {start: e.clientX, width: ext.elm.sidebar.realWidth()};
+ ext.elm.widthDrag.data("dragInfo", dragInfo);
+ }
+
let diff = e.clientX - dragInfo.start;
if (sidebarPos === "right") {
@@ -393,11 +397,9 @@
if (message.type === "Removed" || (message.type === "Created" && isRestoring === true)) { // removed or created from undo -> prevent reload when it was performed on this browser tab
Object.values(ext.elm.bookmarkBox).some((box) => {
if (box.hasClass($.cl.active)) {
-
if (box.find("a." + $.cl.sidebar.restored).length() > 0 || box.find("span." + $.cl.sidebar.removeMask).length() > 0) { // prevent reloading the sidebar on the tab where the entry got removed or restored
performReload = false;
}
-
return true;
}
});
diff --git a/src/js/helper/toggle.js b/src/js/helper/toggle.js
index b6f99081..8e8c6c2b 100644
--- a/src/js/helper/toggle.js
+++ b/src/js/helper/toggle.js
@@ -15,6 +15,7 @@
let preventWindowed = null;
let openDelay = 0;
let indicatorWidth = null;
+ let sidebarWidth = null;
let inPixelToleranceTime = null;
let mouseNotTopLeft = false;
let timeout = {};
@@ -58,8 +59,13 @@
ext.elm.iframe.attr($.attr.position, sidebarPos);
ext.elm.sidebar.attr($.attr.position, sidebarPos);
- if (data.styles && data.styles.indicatorWidth) {
- indicatorWidth = parseInt(data.styles.indicatorWidth);
+ if (data.styles) {
+ if (data.styles.indicatorWidth) {
+ indicatorWidth = parseInt(data.styles.indicatorWidth);
+ }
+ if (data.styles.sidebarWidth) {
+ sidebarWidth = parseInt(data.styles.sidebarWidth);
+ }
}
if (data.showIndicator && data.openAction !== "icon" && data.openAction !== "mousemove") { // show indicator
@@ -250,16 +256,18 @@
ext.elm.iframe.find("body").on("click", (e) => { // click outside the sidebar -> close
if (e.clientX) {
let clientX = e.clientX;
+ let curSidebarWidth = ext.elm.sidebar.realWidth();
+
if (sidebarPos === "right") {
if (sidebarHasMask()) {
- clientX = window.innerWidth - clientX + ext.elm.sidebar.realWidth() - 1;
+ clientX = window.innerWidth - clientX + (sidebarWidth || curSidebarWidth) - 1;
} else {
clientX = ext.elm.iframe.realWidth() - clientX;
}
}
if (
- clientX > ext.elm.sidebar.realWidth() &&
+ clientX > curSidebarWidth &&
ext.elm.iframe.hasClass($.cl.page.visible) &&
ext.elm.widthDrag.hasClass($.cl.drag.isDragged) === false
) {