Add some keybindings to switch chat rooms.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3236 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		@@ -184,6 +184,7 @@ function keyEvent(event) {
 | 
			
		||||
		keyCode: event.keyCode,
 | 
			
		||||
		charCode: event.charCode,
 | 
			
		||||
		character: String.fromCharCode(event.keyCode || event.which),
 | 
			
		||||
		altKey: event.altKey,
 | 
			
		||||
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,27 @@ function setWindow(accountId, conversation) {
 | 
			
		||||
	updateWindows();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function cycleConversation(delta) {
 | 
			
		||||
	let allConversations = [];
 | 
			
		||||
	let index = -1;
 | 
			
		||||
	for (let i in gSessions) {
 | 
			
		||||
		for (let j in gSessions[i].conversations) {
 | 
			
		||||
			if (gCurrentConversation == gSessions[i].conversations[j]) {
 | 
			
		||||
				index = allConversations.length;
 | 
			
		||||
			}
 | 
			
		||||
			allConversations.push([i, j]);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	index += delta;
 | 
			
		||||
	while (index < 0) {
 | 
			
		||||
		index += allConversations.length;
 | 
			
		||||
	}
 | 
			
		||||
	while (index >= allConversations.length) {
 | 
			
		||||
		index -= allConversations.length;
 | 
			
		||||
	}
 | 
			
		||||
	setWindow(allConversations[index][0], allConversations[index][1]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function addAccount() {
 | 
			
		||||
	return database.get(kAccountsKey).then(function(data) {
 | 
			
		||||
		let accounts = data ? JSON.parse(data) : [];
 | 
			
		||||
@@ -425,6 +446,19 @@ core.register("blur", function() {
 | 
			
		||||
	gFocus = false;
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
core.register("key", function(event) {
 | 
			
		||||
	if (event.type == "keydown") {
 | 
			
		||||
		if (event.altKey) {
 | 
			
		||||
			if (event.character == "I") {
 | 
			
		||||
				cycleConversation(-1);
 | 
			
		||||
			} else if (event.character == "K") {
 | 
			
		||||
				cycleConversation(1);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
terminal.setSendKeyEvents(true);
 | 
			
		||||
 | 
			
		||||
// Connect all accounts on start.
 | 
			
		||||
Promise.all([database.get(kAccountsKey), database.get(kStateKey)]).then(function(results) {
 | 
			
		||||
	let accounts = results[0] ? JSON.parse(results[0]) : [];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user