Easiest way to get the mouse position at the time of a click in GDK is similar to puppy of kosh's suggestion, which is actually the preferred/suggested way to work with these methods(assign them to variables and then use the variables instead of the function calls - this is to preserve the value on a "per loop" basis, so once a mouse value has been set at the top of a loop, it stays the same till the start of the next loop, getting different values in a single loop can cause strange behaviour depending on how they r used).
Assign dbMouseClick() to a variable at the start of your main loop(eg. int iMClick = dbMouseClick(); ) and define 2 empty variables to hold you mouse position( int iMouseX, iMouseY; ) . Then have a conditional lower in the loop to grab the position like this :
if(iMClick != 0)
{
iMouseX = dbMouseX();
iMouseY = dbMouseY();
}
EDIT : Bare in mind that a single "Game Loop" can be thought of as approx. 1/60th of a second at 60 FPS. Your program(with default settings) will loop ~60 times per second, so everything in your main loop will be called 60 times per second.
If it ain't broke.... DONT FIX IT !!!