GUAC-807: Fixed connection parameter editing and made menu show on keydown instead of keyup.

This commit is contained in:
James Muehlner
2014-10-28 22:23:25 -07:00
committed by Michael Jumper
parent 1b121ba665
commit 72c82aea8b
6 changed files with 333 additions and 25 deletions

View File

@@ -95,11 +95,8 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
}
$scope.$on('guacKeydown', function keydownListener(event, keysym, keyboard) {
keysCurrentlyPressed[keysym] = true;
});
// Listen for broadcasted keyup events and fire the appropriate listeners
$scope.$on('guacKeyup', function keyupListener(event, keysym, keyboard) {
keysCurrentlyPressed[keysym] = true;
/*
* If only menu keys are pressed, and we have one keysym from each group,
* and one of the keys is being released, show the menu.
@@ -125,7 +122,10 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
keysCurrentlyPressed = {};
}
}
});
// Listen for broadcasted keyup events and fire the appropriate listeners
$scope.$on('guacKeyup', function keyupListener(event, keysym, keyboard) {
delete keysCurrentlyPressed[keysym];
});

View File

@@ -479,4 +479,240 @@ p.hint {
width: 0;
height: 0;
overflow: hidden;
}
}
/* Menu */
#menu {
overflow: auto;
position: fixed;
top: 0;
bottom: 0;
max-width: 100%;
width: 480px;
background: #EEE;
box-shadow: inset -1px 0 2px white, 1px 0 2px black;
z-index: 10;
-webkit-transition: left 0.125s, opacity 0.125s;
-moz-transition: left 0.125s, opacity 0.125s;
-ms-transition: left 0.125s, opacity 0.125s;
-o-transition: left 0.125s, opacity 0.125s;
transition: left 0.125s, opacity 0.125s;
}
#menu .content {
padding: 1em;
}
#menu .content > * {
margin: 1em 0;
}
#menu, #menu.closed {
left: -480px;
opacity: 0;
}
#menu.open {
left: 0px;
opacity: 1;
}
#clipboard-settings textarea {
width: 100%;
border: 1px solid #AAA;
-moz-border-radius: 0.25em;
-webkit-border-radius: 0.25em;
-khtml-border-radius: 0.25em;
border-radius: 0.25em;
white-space: pre;
display: block;
}
#mouse-settings .choice {
text-align: center;
}
#mouse-settings .choice .figure {
display: inline-block;
vertical-align: middle;
max-width: 80%;
}
#keyboard-settings .caption {
font-size: 0.9em;
margin-left: 2em;
margin-right: 2em;
}
#mouse-settings .figure .caption {
text-align: center;
font-size: 0.9em;
}
#mouse-settings .figure img {
display: block;
max-width: 100%;
margin: 1em auto;
}
#menu h3 {
background: rgba(0, 0, 0, 0.4);
padding: 0.25em 0.5em;
margin: 0;
font-size: 1em;
color: white;
font-weight: bold;
}
#keyboard-settings .figure {
float: right;
max-width: 30%;
margin: 1em;
}
#keyboard-settings .figure img {
max-width: 100%;
}
#zoom-settings {
text-align: center;
}
#zoom-out, #zoom-in, #zoom-state {
display: inline-block;
vertical-align: middle;
}
#zoom-out, #zoom-in {
max-width: 3em;
border: 1px solid rgba(0, 0, 0, 0.5);
background: rgba(0, 0, 0, 0.1);
border-radius: 2em;
margin: 0.5em;
cursor: pointer;
}
#zoom-out img, #zoom-in img {
max-width: 100%;
opacity: 0.5;
}
#zoom-out:hover, #zoom-in:hover {
border: 1px solid rgba(0, 0, 0, 1);
background: #CDA;
}
#zoom-out:hover img, #zoom-in:hover img {
opacity: 1;
}
#zoom-state {
font-size: 2em;
}
#text-input {
display: none;
position: absolute;
border-top: 1px solid rgba(0, 0, 0, 0.5);
background: #CDA;
}
#text-input-field,
#text-input-buttons {
display: inline-block;
vertical-align: middle;
}
#text-input-field {
width: 30%;
overflow: hidden;
white-space: nowrap;
}
#text-input-buttons {
width: 70%;
text-align: right;
}
#target {
border: none;
border-radius: 0;
display: inline-block;
vertical-align: middle;
font-size: 12pt;
width: 100%;
height: auto;
resize: none;
outline: none;
margin: 0;
padding: 0.25em;
padding-left: 0;
background: #CDA;
overflow: hidden;
}
#text-input.open {
display: block;
}
#sent-history {
display: inline-block;
vertical-align: middle;
padding: 0.25em;
padding-right: 0;
}
#sent-history .sent-text {
display: inline-block;
vertical-align: baseline;
white-space: pre;
font-size: 12pt;
animation: fadeout 1s linear;
-webkit-animation: fadeout 1s linear;
opacity: 0;
}
#text-input-buttons button {
border: 1px solid rgba(0, 0, 0, 0.5);
background: none;
color: black;
box-shadow: none;
text-shadow: none;
padding: 0.25em;
max-width: 20%;
margin: 0.1em;
min-width: 3em;
}
#text-input-buttons button:active,
#text-input-buttons button.pressed {
border: 1px solid rgba(255, 255, 255, 0.5);
background: rgba(0, 0, 0, 0.75);
color: white;
}
.notification.message {
background: #DFD;
animation: fadein 0.125s linear, fadeout 2s 3s linear;
-webkit-animation: fadein 0.125s linear, fadeout 2s 3s linear;
}
.notification.message .caption {
vertical-align: middle;
white-space: normal;
overflow: hidden;
text-overflow: ellipsis;
}