Changeset 38774 for websites/twicli/plugins
- Timestamp:
- 01/08/11 22:13:59 (2 years ago)
- Files:
-
- 1 modified
-
websites/twicli/plugins/shortcutkey.js (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
websites/twicli/plugins/shortcutkey.js
r38770 r38774 2 2 selected_div: null, // 選択中のtweet 3 3 last_selected_div_id: null, // 前回選択されたtweetのdiv ID(オーバーレイ表示は除く) 4 key_handled: false, // // 他プラグインがkeydownを処理済みか:true時はイベント処理しない 4 key_handled: false, // 他プラグインがkeydownを処理済みか:true時はイベント処理しない 5 last_event_date: null, // 最終イベント発生時刻 6 event_date_check: false, // 最終イベントから30ms以内のイベントは無視 5 7 6 8 // tweetの選択 … … 26 28 ev = ev || window.event; 27 29 if (ev.shiftKey || ev.altKey || ev.ctrlKey || ev.metaKey || ev.modifiers) return true; 30 var date = ev.timeStamp || new Date(); 31 if (this.event_date_check && this.last_event_date && date - this.last_event_date < 30) { 32 if (ev.type == 'keypress' && (ev.keyCode == 77+32 || ev.keyCode == 81+32 || ev.keyCode == 69+32)) 33 return false; 34 return true; 35 } 36 this.last_event_date = date; 28 37 var code = ev.keyCode; 29 38 //$("fst").value = code; … … 52 61 53 62 var ele; 63 var lower = ev.type == 'keypress' ? 32 : 0; 54 64 switch (code) { 55 65 case 27: // esc : ポップアップメニュー,オーバーレイ表示を閉じる/選択解除 … … 91 101 return false; 92 102 case 40: // ↓ 93 case 74 : // j : 1つ下を選択103 case 74+lower: // j : 1つ下を選択 94 104 if (!selected) { 95 105 ele = (selected_menu.id == 'TL' ? $('tw') : selected_menu.id == 'reply' ? $('re') : … … 111 121 return false; 112 122 case 38: // ↑ 113 case 75 : // k : 1つ上を選択123 case 75+lower: // k : 1つ上を選択 114 124 if (!selected) { 115 125 ele = (selected_menu.id == 'TL' ? $('tw') : selected_menu.id == 'Re' ? $('re') : … … 134 144 shortcutkey_plugin.selectTweet(ev, ele); 135 145 return false; 136 case 70 : // f : fav146 case 70+lower: // f : fav 137 147 if (!selected) return true; 138 148 fav($('fav-'+selected.id), id); 139 149 return false; 140 case 73 : // i : 返信元を表示(In reply to)150 case 73+lower: // i : 返信元を表示(In reply to) 141 151 if (!selected || !tw.in_reply_to_status_id_str) return true; 142 152 dispReply(user, tw.in_reply_to_status_id_str, $("utils-"+selected.id)); 143 153 return false; 144 case 85 : // u : ユーザTLを表示(User)154 case 85+lower: // u : ユーザTLを表示(User) 145 155 if (!selected) return true; 146 156 switchUserTL(selected); 147 157 return false; 148 case 69 : // e : 返信(rEply)158 case 69+lower: // e : 返信(rEply) 149 159 if (!selected) return true; 150 160 replyTo(user, id); 151 161 return false; 152 case 80 : // p : ユーザを抽出(Pickup)162 case 80+lower: // p : ユーザを抽出(Pickup) 153 163 if (!selected) return true; 154 164 if (typeof(addIDRegexp) != 'function') return true; 155 165 addIDRegexp(user, id); 156 166 return false; 157 case 82 : // r : リツイート(Retweet)167 case 82+lower: // r : リツイート(Retweet) 158 168 if (!selected) return true; 159 169 retweetStatus(id, selected); 160 170 return false; 161 case 81 : // q : RT:を付けて引用(Quote with RT:)171 case 81+lower: // q : RT:を付けて引用(Quote with RT:) 162 172 if (!selected) return true; 163 173 quoteStatus(id, user, selected); 164 174 return false; 165 case 68 : // d : tweetを削除(Delete)175 case 68+lower: // d : tweetを削除(Delete) 166 176 if (!selected) return true; 167 177 if (selected_menu.id != "direct" && user != myname) return true; 168 178 deleteStatus(selected, id); 169 179 return false; 170 case 84 : // t : 翻訳(Translate)180 case 84+lower: // t : 翻訳(Translate) 171 181 if (!selected) return true; 172 182 translateStatus(selected.id); 173 183 return false; 174 case 71 : // g : 地図表示(Geo map)184 case 71+lower: // g : 地図表示(Geo map) 175 185 if (!selected) return true; 176 186 var geomap = $('geomap-'+selected.id); … … 178 188 window.open(geomap.href, '_blank'); 179 189 return false; 180 case 79 : // o : リンクを開く(Open links)190 case 79+lower: // o : リンクを開く(Open links) 181 191 if (!selected) return true; 182 192 tw.text.replace(/https?:\/\/[\w!#$%&'()*+,.\/:;=?@~-]+(?=&\w+;)|https?:\/\/[\w!#$%&'()*+,.\/:;=?@~-]+/g, function(url){ … … 185 195 186 196 return false; 187 case 77 : // m : 発言欄へ移動(Move to textarea)197 case 77+lower: // m : 発言欄へ移動(Move to textarea) 188 198 $('fst').focus(); 189 199 return false; 190 case 88 : // x : タブを閉じる200 case 88+lower: // x : タブを閉じる 191 201 var closetab = $('tws-closetab') || $('regexp-closetab'); 192 202 if (closetab) … … 216 226 }, 217 227 init: function() { 218 document.onkeydown = this.shortCutKeyDown; 228 if (navigator.userAgent.indexOf('Opera') >= 0) 229 document.onkeypress = this.shortCutKeyDown; 230 else 231 document.onkeydown = this.shortCutKeyDown; 219 232 } 220 233 };
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)