The code in Gtk/events.jl, signals.jl and cairo.jl is clearly gtk2 style and working correctly. However in Gtk3 the event reporting slightly changed, so using event->x and event->y returns (somehow) subpixel resolution (which makes sense for some pointer devices, maybe not for a mouse pointer), to get the 'regular' pixel resolution one needs to call gdk_window_get_device_position for events with event.is_hint = true. The Gtk3 documentation is blurry in this case why this is needed or if it's just a side effect of some missing configuration.
(and actually just truncating the subpixel resolution to integers would also not introduce a performance problem...) For code written in gtk2 style and maybe using the event coordinates to draw something on screen and even maybe in cairo you might run into problem, just using the entries in event.x and .y IF the unterlying library isn't gtk2 anymore, but gtk3. If i use the rubberband in ImageView (gtk branch) i get artifacts of the rubberband draw and redrawing. Which should not be there on integer coordinates. Gtk3 is not fully backward compatible to Gtk2 (it doesn't claim to be), so we have to live with workarounds here. <https://lh5.googleusercontent.com/-hHJ9sEm9W_I/VKkKhEkXPEI/AAAAAAAAABs/QFJBwS9wFeA/s1600/snapshot1.png>
