public void MovePolygons(Vector2 mousePos)
	{
		InputHandler input = mGameWindow.GetInputHandler();
		
		if (input.IsMouseHit(0))
		{
			mMouseClickPosition = mousePos;
			
			if (!input.IsKeyDown(Keyboard.KEY_LMENU))
			{
				if (!PointInAnyPoly(mousePos))
				{
					if (!input.IsKeyDown(Keyboard.KEY_LCONTROL))
					{
						mSelectedPolys.clear();
					}
					
					mEditOperation = EditOperation.Select;
				}
			}
		}
		else if (input.IsMouseDown(0))
		{
			if (!mIsChanged)
			{
				mIsChanged = true;
				Display.setTitle(Display.getTitle() + "*");
			}
			
			Vector2 difference = mousePos.Minus(mMouseClickPosition);
			
			ListIterator<Polygon> i = mSelectedPolys.listIterator();
			
			while (i.hasNext())
			{
				Polygon current = i.next();
				
				current.SetPosition(current.GetPosition().Plus(difference));
			}
			
			mMouseClickPosition = mousePos;
		}
	}