X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Fgrits-viewer.c;fp=src%2Fgrits-viewer.c;h=7dbab925d6c0a89e32e689187f27b15e85871d35;hb=b81d07bce41eca6883e5c1bfd6e6db938b55ad3c;hp=1afd2eaece9be068a2f6cec0e9bb268019a69118;hpb=5c17e7d79895982036139dcffb5c17cefb1d4d9f;p=grits diff --git a/src/grits-viewer.c b/src/grits-viewer.c index 1afd2ea..7dbab92 100644 --- a/src/grits-viewer.c +++ b/src/grits-viewer.c @@ -389,6 +389,32 @@ void grits_viewer_rotate(GritsViewer *viewer, gdouble x, gdouble y, gdouble z) _grits_viewer_emit_rotation_changed(viewer); } +/** + * grits_viewer_get_pointer: + * @viewer: the viewer + * @lat: the location to store the latitude + * @lon: the location to store the longitude + * @elev: the location to store the elevation + * + * Get the location of the mouse pointer + * + * Returns: true if the pointer over the viewer + */ +gboolean grits_viewer_get_pointer(GritsViewer *viewer, gdouble *lat, gdouble *lon, gdouble *elev) +{ + g_assert(GRITS_IS_VIEWER(viewer)); + gint x, y; + GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(viewer)); + GdkWindow *other = gdk_window_get_pointer(window, &x, &y, NULL); + (void)other; + //if (window != other) + // return FALSE; + grits_viewer_unproject(viewer, x, y, -1, lat, lon, elev); + g_debug("GritsViewer: get_pointer - xy=%d,%d -> lle%.0f,%.0f,%.0f", + x, y, *lat, *lon, *elev); + return TRUE; +} + /** * grits_viewer_refresh: * @viewer: the viewer