mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-03 12:50:09 +00:00
fixed keyboard issue with default behaviour, still fighting a bug in binSearch that makes it loop forever...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
f619e62658
commit
53f06951f7
@ -160,6 +160,7 @@ function getImageBefore(image, ribbon, mode){
|
||||
//
|
||||
// NOTE: this is here mostly to make debuging easy...
|
||||
function isBetween(a, i, lst){
|
||||
console.log('>>>', a, i, lst)
|
||||
var b = lst[i]
|
||||
var c = lst[i+1]
|
||||
// hit...
|
||||
@ -182,6 +183,7 @@ function isBetween(a, i, lst){
|
||||
// NOTE: by default this will use isBetween as a predicate.
|
||||
// NOTE: this still depends on .indexOf(...), to disable set
|
||||
// disable_direct_indexing to true
|
||||
// XXX BUG this tends to fall into infinite loops...
|
||||
function binSearch(target, lst, check, return_position, disable_direct_indexing){
|
||||
// XXX is this the correct default?
|
||||
check = check == null ? isBetween : check
|
||||
@ -195,13 +197,16 @@ function binSearch(target, lst, check, return_position, disable_direct_indexing)
|
||||
return lst[lst.length-1]
|
||||
}
|
||||
// special case: head...
|
||||
if(check(target, 0, lst) == 0){
|
||||
var res = check(target, 0, lst)
|
||||
if(res == 0){
|
||||
return lst[0]
|
||||
} else if(res < 0){
|
||||
// no hit...
|
||||
return return_position ? -1 : null
|
||||
}
|
||||
|
||||
var l = Math.ceil(lst.length/2)
|
||||
var i = l
|
||||
var res
|
||||
|
||||
while(l > 0){
|
||||
l = Math.ceil(l/2)
|
||||
|
||||
@ -234,6 +234,7 @@ $(function(){
|
||||
//var rr = r.clone()
|
||||
//var rrr = r.clone()
|
||||
|
||||
// XXX use something like loadImages()...
|
||||
$('.ribbon-set')
|
||||
.append(r)
|
||||
//.append(rr)
|
||||
@ -250,8 +251,11 @@ $(function(){
|
||||
function(k){console.log(k)}))
|
||||
|
||||
|
||||
|
||||
// dynamic loading...
|
||||
if(true){
|
||||
DYNAMIC_LOADING = true
|
||||
|
||||
if(DYNAMIC_LOADING){
|
||||
// XXX move to a setup function in the lib...
|
||||
// XXX update this depending on zoom and navigation speed...
|
||||
var LOADER_THRESHOLD = 2
|
||||
|
||||
@ -76,42 +76,48 @@ var KEYBOARD_CONFIG = {
|
||||
},
|
||||
*/
|
||||
Home: function(){
|
||||
event.preventDefault()
|
||||
firstImage()
|
||||
centerRibbons()
|
||||
return false
|
||||
},
|
||||
End: function(){
|
||||
event.preventDefault()
|
||||
lastImage()
|
||||
centerRibbons()
|
||||
return false
|
||||
},
|
||||
|
||||
|
||||
// combined navigation and editor actions...
|
||||
Up: {
|
||||
default: function(){
|
||||
event.preventDefault()
|
||||
prevRibbon(DIRECTION)
|
||||
centerRibbons()
|
||||
},
|
||||
shift: function(){
|
||||
event.preventDefault()
|
||||
shiftImageUp(null, DIRECTION)
|
||||
centerRibbons()
|
||||
},
|
||||
'ctrl+shift': function(){
|
||||
event.preventDefault()
|
||||
shiftImageUpNewRibbon(null, DIRECTION)
|
||||
centerRibbons()
|
||||
},
|
||||
},
|
||||
Down: {
|
||||
default: function(){
|
||||
event.preventDefault()
|
||||
nextRibbon(DIRECTION)
|
||||
centerRibbons()
|
||||
},
|
||||
shift: function(){
|
||||
event.preventDefault()
|
||||
shiftImageDown(null, DIRECTION)
|
||||
centerRibbons()
|
||||
},
|
||||
'ctrl+shift': function(){
|
||||
event.preventDefault()
|
||||
shiftImageDownNewRibbon(null, DIRECTION)
|
||||
centerRibbons()
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user