|SOURCE|
[Common::System::Window]
* GetCurrentScreenNumber returns a signed integer instead of an unsigned
  integer, which allows for non-valid screens to be returned (non-positive)
[Linux::System::LinuxWindow]
* GetCurrentScreenNumber queries the DISPLAY environment variable, working
  backward from the end of the DISPLAY string until the period character is
  encountered, the string resulting from this is converted into a signed
  integer and returned
* GetCurrentScreenNumber returns -1 if the DISPLAY environment variable is not
  valid
|SOURCE|
[Common::System::Window]
* Added accessors to the position, width, and height
* Added accessors for the state of the window for having been resized or moved
[Linux::System::Window]
* Position member variables changed to signed integers
* Added resized and moved member variables to keep track of the state of the
  window
* Removed ResizeRedirectMask from the window attributes
* The unprocessed events are stored and dispatched at the end of Update instead
  of being dispatched as they came
* ConfigureNotify handles the window being moved or resized and sets the member
  variable corresponding to being moved or resized
* Resized and Moved return ZED_TRUE if the window has been resized or moved,
  then immediately sets the flag to false so that it isn't left in the
  incorrect state
|SOURCE|
[Common::System::Window]
* Added manipulators for dimensions and position
[Linux::System::Window]
* SetWidth and SetHeight verify the width and height are greater than zero
  before calling XResizeWindow
* SetXPosition and SetYPosition use XMoveWindow to reposition the window at the
  desired X and Y location
|SOURCE|
[Common::System::InputManager]
* Added SetWindowData member function to allow for delayed creation of the
  input manager
[Linux::System::InputManager]
* SetWindowData checks the window and display being passed in are valid, then
  proceeds to assign the member variables for the window and display if they
  are valid
* Added a default constructor which sets everything to safe, invalid values
|SOURCE|
[Linux::System::LinuxInputManager]
* Events are queued in reverse order (pushing them onto the queue correctly)
[Linux::System::LinuxWindow]
* Events are queued in reverse order (pushing them onto the queue correctly)
|BUILD CONFIGURATION|
[PandoraLinux]
* Tool prefix is set to the absolute path
|BUILD CONFIGURATION|
[PandoraLinux]
* Messages pertaining to directories (not including the directory where the
  final output files are copied to) shortened to be relative to the top
  directory
|BUILD CONFIGURATION|
[PandoraLinux]
* The platform-specific directory creation output is relative to the root of
  the project's top directory
[Linux]
* Directories are displayed as relative to the project's top directory
|BUILD CONFIGURATION|
[PandoraLinux]
* Output for the removing directory message restricted to be relative to the
  top of the project directory
[Linux]
* Output for the removing directory message restricted to be relative to the
  top of the project directory
|BUILD CONFIGURATION|
[Linux]
* Formatting of the output for directories to be relative to the project
  directory is done after checking the return status of the compiler
* Error message colouration was not being taken into consideration as the wrong
  file (without any formatting) was passed into the warning colouriser
[PandoraLinux]
* Formatting of the output for directories to be relative to the project
  directory is done after checking the return status of the compiler
* Error message colouration was not being taken into consideration as the wrong
  file (without any formatting) was passed into the warning colouriser
|SOURCE|
[Common::System::Window]
* Window::Flush takes a parameter to specify the events to flush
* Window event types to flush (based off of X11) have been typedef'd for the
  Window::Flush member function to handle
[Linux::System::LinuxInputManager]
* The loop for processing events in Update has been changed to use
  while( XPending ) instead of iterating over n events according to the return
  value of XPending
* Re-sending events at the end of Update are correctly formatted and use the
  proper initialiser and termination state in the for loop
[Linux::System::LinuxWindow]
* FlushEvents will use the parameter passed in to determine which events to
  flush, re-sending events that have not been specified and returning from the
  start if the user requested not to flush any events
* Re-sending of events at the end of Update are correctly formatted and use the
  proper initialiser and termination state in the for loop
|SOURCE|
[Common::System::Window]
* GrabMouse accepts a parameter to confine the mouse cursor to the current
  window as well as to centre the mouse
[Linux::System::LinuxWindow]
* EnterNotify and LeaveNotify XEvent types are handled in the processing loop
  within Update, grabbing the keyboard and mouse, and releasing the keyboard
  and mouse, respectively
* GrabKeyboard no longer grabs the input exclusively for the window owner
* GrabMouse centres the mouse if the appropriate parameter is set to ZED_TRUE
* GrabMouse will confine the mouse to the window if the appropriate parameter
  is set to ZED_TRUE
* GrabMouse no longer grabs the mouse exclusively for the window owner
|SOURCE|
[Linux::System::LinuxInputManager]
* Update calls XFlush before reading the queue from XEventsQueued (this fixes
  the bug which would crash when attempting to call:
  while( XPending( m_pDisplay )
* XEventsQueued in Update uses QueuedAlready as this does not p[erform a system
  call
|SOURCE|
[Common::System::Mouse]
* Changed the Position accessor and modifier to GetPosition and SetPosition,
  respectively
* Data type for the mouse position changed to signed integers
|SOURCE|
[Linux::System::LinuxWindow]
* When grabbing the mouse, the mouse acceleration is set to 1, with a threshold
  of 0
* Releasing the mouse sets the mouse acceleration back to its previous values
|MERGE|
system_input -> window_manager
|SOURCE|
[Common::System::InputTypes]
* ZED_MOUSE_COORDINATE_* enums renamed to ZED_MOUSE_AXIS_*
* Added a MouseAxisToString function to make identifying mouse axes easy when
  printing debug messages
[Common::Utility::InputBinder]
* Added mouse axis binding functions
* BindMouseAxis will attempt to bind the desired mouse axis to the specified
  action, returning ZED_FAIL if there was an error
* GetActionFromMouseAxis returns the first action found that is bound to the
  mouse axis requested, if no action was found, 0 is returned
* GetActionsFromMouseAxis retuns all actions available for the requested mouse
  axis.  This function assumes that if the action array is valid that it is of
  the correct dimensions, to acquire the correct dimensions for the actions
  bound to the axis, call GetActionCountForMouseAxis
* GetActionCountForMouseAxis returns the amount of actions bound to the
  requested axis
* PrintBoundMouseAxes displays the actions bound to the different mouse axes to
  the standard output
|SOURCE|
[Common::Arithmetic::Quaternion]
* Added an operator to multiply a Quaternion by a Vector3 which returns a
  Vector3 as a result
[Linux::Arithmetic::Quaternion]
* Quaternion * Vector3 converts the vector to a quaternion, and performs the
  following operation:
  v = q * v * 'q
  Where; v = vector, q = quaternion, 'q = quaternion conjugate
|MERGE|
arithmetic_quaternion -> unstable
|MERGE|
system_input -> unstable