fixes #1499
Additionally, also fixes the "stuck" when releasing on top of another note.
This commit is contained in:
@@ -420,7 +420,8 @@ Danbooru.Note = {
|
|||||||
Danbooru.Note.TranslationMode.active = true;
|
Danbooru.Note.TranslationMode.active = true;
|
||||||
$("#original-file-link").click();
|
$("#original-file-link").click();
|
||||||
$("#image").one("click", function() { $(".note-box").show() }); /* override the 'hide all note boxes' click event */
|
$("#image").one("click", function() { $(".note-box").show() }); /* override the 'hide all note boxes' click event */
|
||||||
$("#image").one("mousedown", Danbooru.Note.TranslationMode.Drag.start).one("mouseup", Danbooru.Note.TranslationMode.Drag.stop);
|
$("#image").one("mousedown", Danbooru.Note.TranslationMode.Drag.start);
|
||||||
|
$(window).bind("mouseup", Danbooru.Note.TranslationMode.Drag.stop);
|
||||||
Danbooru.notice('Click or drag on the image to create a note (shortcut is <span class="key">n</span>)');
|
Danbooru.notice('Click or drag on the image to create a note (shortcut is <span class="key">n</span>)');
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -466,13 +467,29 @@ Danbooru.Note = {
|
|||||||
drag: function (e) {
|
drag: function (e) {
|
||||||
Danbooru.Note.TranslationMode.Drag.dragDistanceX = e.pageX - Danbooru.Note.TranslationMode.Drag.dragStartX;
|
Danbooru.Note.TranslationMode.Drag.dragDistanceX = e.pageX - Danbooru.Note.TranslationMode.Drag.dragStartX;
|
||||||
Danbooru.Note.TranslationMode.Drag.dragDistanceY = e.pageY - Danbooru.Note.TranslationMode.Drag.dragStartY;
|
Danbooru.Note.TranslationMode.Drag.dragDistanceY = e.pageY - Danbooru.Note.TranslationMode.Drag.dragStartY;
|
||||||
|
var $image = $("#image");
|
||||||
|
var offset = $image.offset();
|
||||||
|
var limitX1 = $image.width() - Danbooru.Note.TranslationMode.Drag.dragStartX + offset.left - 1;
|
||||||
|
var limitX2 = offset.left - Danbooru.Note.TranslationMode.Drag.dragStartX;
|
||||||
|
var limitY1 = $image.height()- Danbooru.Note.TranslationMode.Drag.dragStartY + offset.top - 1;
|
||||||
|
var limitY2 = offset.top - Danbooru.Note.TranslationMode.Drag.dragStartY;
|
||||||
|
|
||||||
|
if(Danbooru.Note.TranslationMode.Drag.dragDistanceX > limitX1) {
|
||||||
|
Danbooru.Note.TranslationMode.Drag.dragDistanceX = limitX1;
|
||||||
|
} else if(Danbooru.Note.TranslationMode.Drag.dragDistanceX < limitX2) {
|
||||||
|
Danbooru.Note.TranslationMode.Drag.dragDistanceX = limitX2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Danbooru.Note.TranslationMode.Drag.dragDistanceY > limitY1) {
|
||||||
|
Danbooru.Note.TranslationMode.Drag.dragDistanceY = limitY1;
|
||||||
|
} else if(Danbooru.Note.TranslationMode.Drag.dragDistanceY < limitY2) {
|
||||||
|
Danbooru.Note.TranslationMode.Drag.dragDistanceY = limitY2;
|
||||||
|
}
|
||||||
|
|
||||||
if (Math.abs(Danbooru.Note.TranslationMode.Drag.dragDistanceX) > 9 && Math.abs(Danbooru.Note.TranslationMode.Drag.dragDistanceY) > 9) {
|
if (Math.abs(Danbooru.Note.TranslationMode.Drag.dragDistanceX) > 9 && Math.abs(Danbooru.Note.TranslationMode.Drag.dragDistanceY) > 9) {
|
||||||
Danbooru.Note.TranslationMode.Drag.dragging = true; /* must drag at least 10pixels (minimum note size) in both dimensions. */
|
Danbooru.Note.TranslationMode.Drag.dragging = true; /* must drag at least 10pixels (minimum note size) in both dimensions. */
|
||||||
}
|
}
|
||||||
if (Danbooru.Note.TranslationMode.Drag.dragging) {
|
if (Danbooru.Note.TranslationMode.Drag.dragging) {
|
||||||
var offset = $("#image").offset();
|
|
||||||
|
|
||||||
if (Danbooru.Note.TranslationMode.Drag.dragDistanceX >= 0) {
|
if (Danbooru.Note.TranslationMode.Drag.dragDistanceX >= 0) {
|
||||||
Danbooru.Note.TranslationMode.Drag.x = Danbooru.Note.TranslationMode.Drag.dragStartX;
|
Danbooru.Note.TranslationMode.Drag.x = Danbooru.Note.TranslationMode.Drag.dragStartX;
|
||||||
Danbooru.Note.TranslationMode.Drag.w = Danbooru.Note.TranslationMode.Drag.dragDistanceX;
|
Danbooru.Note.TranslationMode.Drag.w = Danbooru.Note.TranslationMode.Drag.dragDistanceX;
|
||||||
@@ -498,9 +515,13 @@ Danbooru.Note = {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
stop: function (e) {
|
stop: function (e) {
|
||||||
|
if(Danbooru.Note.TranslationMode.Drag.dragStartX === 0) {
|
||||||
|
return; /* 'stop' is bound to window, don't create note if start wasn't triggered */
|
||||||
|
}
|
||||||
$(window).unbind("mousemove");
|
$(window).unbind("mousemove");
|
||||||
|
|
||||||
if(Danbooru.Note.TranslationMode.Drag.dragging) {
|
if(Danbooru.Note.TranslationMode.Drag.dragging) {
|
||||||
$('#note-helper').css({display:'none'});
|
$('#note-helper').css({display:'none'});
|
||||||
Danbooru.Note.TranslationMode.create_note(e, true, Danbooru.Note.TranslationMode.Drag.x, Danbooru.Note.TranslationMode.Drag.y, Danbooru.Note.TranslationMode.Drag.w-1, Danbooru.Note.TranslationMode.Drag.h-1);
|
Danbooru.Note.TranslationMode.create_note(e, true, Danbooru.Note.TranslationMode.Drag.x, Danbooru.Note.TranslationMode.Drag.y, Danbooru.Note.TranslationMode.Drag.w-1, Danbooru.Note.TranslationMode.Drag.h-1);
|
||||||
@@ -508,6 +529,9 @@ Danbooru.Note = {
|
|||||||
} else { /* no dragging -> create a normal note */
|
} else { /* no dragging -> create a normal note */
|
||||||
Danbooru.Note.TranslationMode.create_note(e);
|
Danbooru.Note.TranslationMode.create_note(e);
|
||||||
}
|
}
|
||||||
|
$(window).unbind("mouseup", Danbooru.Note.TranslationMode.Drag.stop);
|
||||||
|
Danbooru.Note.TranslationMode.Drag.dragStartX = 0;
|
||||||
|
Danbooru.Note.TranslationMode.Drag.dragStartY = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user