(See the best response by Dragonpearl123.)

Is there any way to get the exact position of the mouse while on top of a screen object? Maybe icon-x somehow or something?

I currently load my screen objects like this

var/obj/Inventory = new /obj/GUI("Inventory",'invwin.dmi',"inventory",120,120)
client.screen += Inventory

Any suggestions on how to get the mouse position? I am going for an ultima online type inventory with an open bag where you can pin items anywhere.

Okay, so what your saying the exact location in "icon-x" parameter won't be present for Click events because they don't affect THAT parameter?

I can still solve my problem knowing this so thank you for pointing out that mousemove gives that parameter! Though I wonder if there is any way to "force" getting the icon-x parameter from a click. Thank you.
client/MouseMove(object, location, control, params)

var/plist[] = params2list(params)
var/tmp/IconX = plist.Find("icon-x")
var/tmp/IconY = plist.Find("icon-y")
usr << "MouseX:[IconX] MouseY:[IconY]"

This always gives a value of 1 for icon-x and a value of 2 for icon-y???
Best response
Forum Account has a great demo that has exactly what your looking for here.