I am currently working on a mod that adds Touch Screen support to Minecraft (and any other mod, really). I am developing in 1.6.4 using Forge. Actually, my mod is finished, outside of the fact that it doesn't work because of the useless Forge MouseEvent.
The only thing required for my mod to work as intended is for me to be able to read in all MouseEvents and input, interpret it, and pass it along (or not) to Minecraft. I originally planned to register for MouseEvents, make sure no clicks happened on any buttons I care about, etc, and then pass in modified input values with something like:
mouseEvent.setX(int x), mouseEvent.setY(int y), etc.
However, MouseEvents only have getters, not setters. OK, I thought. I'll just use the getters, interpret it, cancel the mouse event, and make a new one, using values I want! Well, that doesn't work either.
Minecraft makes several references to lwjgl.Mouse to get its .x, .y .dX, .dY, etc directly, rather than going through MouseEvent. So, even if I cancel all mouse events, the mouse motion, clicks, drags, still cause player motion!!! You just can't left or right click in game. That's not very useful.
I propose an edit to Forge and the Base, in which we overload lwjgl.Mouse, and add getters and setters to it, and replace all lwjgl.Mouse calls in Minecraft and Forge Base Code with this subclassed lwjgl.Mouse. It would fix my problems, and add more control for future modders using MinecraftForge. Since the goal of my project is to add universal touchscreen support to Minecraft and its mods, a base edit is out of the question, and this is the only way. I have the code ready to go, but not the authority to add it to Forge. If there is a better place or way to handle this, I'm open to it as well.