diff options
| author | Jules Laplace <jules@okfoc.us> | 2012-07-18 01:59:15 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2012-07-18 01:59:15 -0400 |
| commit | 3650a561fc739f89458f9b95c3b51c763b479890 (patch) | |
| tree | 19be344999189706e52074415a3d5a868e3fb1b0 /static/js | |
| parent | b80a7020d9336f2b13c36baa766867874bc4c324 (diff) | |
drag UX
Diffstat (limited to 'static/js')
| -rw-r--r-- | static/js/pichat2.js | 14 | ||||
| -rw-r--r-- | static/js/src/drag.js | 4 | ||||
| -rw-r--r-- | static/js/src/palette-manual.js | 10 |
3 files changed, 24 insertions, 4 deletions
diff --git a/static/js/pichat2.js b/static/js/pichat2.js index 82b6ae4..03c9692 100644 --- a/static/js/pichat2.js +++ b/static/js/pichat2.js @@ -610,12 +610,14 @@ $(function(){ // dragging images into the manual fave palette var palette = document.getElementById("manual-palette"); var paletteButton = document.getElementById("manual-palette-button"); + var paletteTimeout = null; var paletteCallbacks = { 'enter': function() { + if (paletteTimeout) clearTimeout(paletteTimeout); manPaletteShow(); }, 'leave': function() { - manPaletteHide(); + paletteTimeout = setTimeout(manPaletteHideUnlessChecked, 500); }, 'drop': function (url) { addManualFav(url); @@ -1253,14 +1255,22 @@ $(function(){ }); }); +var manPaletteClicked = false; function manPaletteToggle() { if ($("#manual-palette").css("display") == "none") { - manPaletteShow(); + manPaletteClicked = true; + manPaletteShow(); } else { + manPaletteClicked = false; manPaletteHide(); } }; +function manPaletteHideUnlessChecked (){ + if (manPaletteClicked) return; + manPaletteHide(); +} + function manPaletteHide() { $("#manual-palette").css("display", "none"); $("#manual-palette-thumbs").html(""); diff --git a/static/js/src/drag.js b/static/js/src/drag.js index e519670..8ac9a9d 100644 --- a/static/js/src/drag.js +++ b/static/js/src/drag.js @@ -78,12 +78,14 @@ $(function(){ // dragging images into the manual fave palette var palette = document.getElementById("manual-palette"); var paletteButton = document.getElementById("manual-palette-button"); + var paletteTimeout = null; var paletteCallbacks = { 'enter': function() { + if (paletteTimeout) clearTimeout(paletteTimeout); manPaletteShow(); }, 'leave': function() { - manPaletteHide(); + paletteTimeout = setTimeout(manPaletteHideUnlessChecked, 500); }, 'drop': function (url) { addManualFav(url); diff --git a/static/js/src/palette-manual.js b/static/js/src/palette-manual.js index 730ff1f..c9231a1 100644 --- a/static/js/src/palette-manual.js +++ b/static/js/src/palette-manual.js @@ -11,14 +11,22 @@ $(function(){ }); }); +var manPaletteClicked = false; function manPaletteToggle() { if ($("#manual-palette").css("display") == "none") { - manPaletteShow(); + manPaletteClicked = true; + manPaletteShow(); } else { + manPaletteClicked = false; manPaletteHide(); } }; +function manPaletteHideUnlessChecked (){ + if (manPaletteClicked) return; + manPaletteHide(); +} + function manPaletteHide() { $("#manual-palette").css("display", "none"); $("#manual-palette-thumbs").html(""); |
