Changeset 389

Show
Ignore:
Timestamp:
05/03/08 12:22:54 (2 weeks ago)
Author:
t-bone
Message:

Fixes #129

  • Add a new shortcut key (ALT-Down) to open the dropdown menu of the toolbar button. From there, arrows and enter selects any item from the list.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • extension/uppity/content/uppity-overlay.xul

    r300 r389  
    4343        oncommand='uppity.goUp(null); event.preventDefault();' 
    4444    /> 
     45    <key id='uppity-key-open-menu' 
     46        modifiers='alt' 
     47        keycode='VK_DOWN' 
     48        oncommand='uppity.openMenu(); event.preventDefault();' 
     49    /> 
    4550</keyset> 
    4651 
  • extension/uppity/content/uppity.js

    r388 r389  
    11var uppity={ 
    2 //this is directly adapted from a bookmarklet I wrote some time ago 
    3 //so the variables are all terse.  a later version should see a 
    4 //revamp of this code but I'm proud to finally have written my first 
    5 //firefox extension from scratch! 
     2 
    63goUp:function(e) { 
    74    var URLs=this.getURLs(); 
     
    2421        default:       return pref.getCharPref(name); 
    2522        } 
    26     } catch (e) { this.dumpErr(e)
     23    } catch (e) {
    2724    return ''; 
    2825}, 
     
    3734        default:       pref.setCharPref(name, value); break; 
    3835        } 
    39     } catch (e) { this.dumpErr(e)
     36    } catch (e) {
    4037}, 
    4138 
     
    4340    try { 
    4441    window.document.getElementById('uppity-sb-icon').checked=this.getPref('bool', 'uppity.sb-icon'); 
    45     } catch (e) { this.dumpErr(e)
     42    } catch (e) {
    4643    return true; 
    4744}, 
     
    5552    //this might be a little dirty .... 
    5653    window.opener.opener.uppity.setSBButtonVis(); 
    57     } catch (e) { this.dumpErr(e)
     54    } catch (e) {
    5855    return true; 
    59 }, 
    60  
    61 dumpErr:function(e) { 
    62     var s='Error in uppity:  '; 
    63     s+='Line: '+e.lineNumber+'  '; 
    64     s+=e.name+': '+e.message+'\n'; 
    65     //s+='Stack:\n'+e.stack+'\n\n'; 
    66     dump(s); 
    6756}, 
    6857 
     
    7968}, 
    8069 
     70openMenu:function() { 
     71    var btn=document.getElementById('tb-uppity'); 
     72    if (!btn) return; 
     73    btn.open=true; 
     74}, 
     75 
    8176showDropDown:function(e) { 
    8277    var box=e.target; 
     
    8681        try { 
    8782            box.removeChild(children[0]); 
    88         } catch (e) { this.dumpErr(e);
     83        } catch (e) {
    8984    } 
    9085 
     
    154149            } 
    155150        } 
    156     } catch (e) { this.dumpErr(e);
     151    } catch (e) {
    157152    return URLs; 
    158153}, 
     
    173168    onStateChange:function (wp, req, state, status) {}, 
    174169    onLocationChange:function (wp, req, loc) { 
    175         uppity.setDisabled(loc.asciiSpec); 
     170        uppity.setDisabled(loc?loc.asciiSpec:null); 
    176171    }, 
    177172    onStatusChange:function (wp, req, status, message) {},