<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document>
	<properties>
		<title>Hot Keys</title>
		<author email="solomax@apache.org">
			OpenMeetings Team
		</author>
	</properties>
	<body>
		<section name="Keys table">
			<table>
				<tr>
					<th>Key</th>
					<th>Functionality</th>
					<th>Configurable</th>
					<th>Config Key</th>
				</tr>
				<tr>
					<td>F12 (code 123)</td>
					<td>A hot key code for the 'give exclusive audio' functionality.</td>
					<td>Yes</td>
					<td>exclusive.audio.keycode</td>
				</tr>
				<tr>
					<td>F8 (code 119)</td>
					<td>If 1 or 2 video windows are present in the room they will be
						"rearranged" to take all the place available</td>
					<td>No</td>
					<td>
					</td>
				</tr>
				<tr>
					<td>F7 (code 118)</td>
					<td>A hot key code for the 'mute/unmute audio' functionality.</td>
					<td>Yes</td>
					<td>mute.keycode</td>
				</tr>
			</table>
		</section>
	</body>
</document>