Search on geo-position
[geeqie.git] / src / bar_gps.c
index 8bc1c93..d21b824 100644 (file)
@@ -680,6 +680,8 @@ static gboolean bar_pane_gps_map_keypress_cb(GtkWidget *widget, GdkEventButton *
 {
        PaneGPSData *pgd = data;
        GtkWidget *menu;
+       GtkClipboard *clipboard;
+       gchar *geo_coords;
 
        if (bevent->button == MOUSE_BUTTON_RIGHT)
                {
@@ -694,7 +696,17 @@ static gboolean bar_pane_gps_map_keypress_cb(GtkWidget *widget, GdkEventButton *
                }
        else if (bevent->button == MOUSE_BUTTON_LEFT)
                {
-               return FALSE;
+               clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
+               geo_coords = g_strdup_printf("%lf %lf",
+                                                       champlain_view_y_to_latitude(
+                                                               CHAMPLAIN_VIEW(pgd->gps_view),bevent->y),
+                                                       champlain_view_x_to_longitude(
+                                                               CHAMPLAIN_VIEW(pgd->gps_view),bevent->x));
+               gtk_clipboard_set_text(clipboard, geo_coords, -1);
+
+               g_free(geo_coords);
+
+               return TRUE;
                }
        else
                {
@@ -761,6 +773,10 @@ GtkWidget *bar_pane_gps_new(const gchar *id, const gchar *title, const gchar *ma
        gtk_scale_button_set_value(GTK_SCALE_BUTTON(slider), (gdouble)zoom);
 
        progress = gtk_progress_bar_new();
+#if GTK_CHECK_VERSION(3,0,0)
+       gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), "");
+       gtk_progress_bar_set_show_text(GTK_PROGRESS_BAR(progress), TRUE);
+#endif
        state = gtk_label_new("");
        gtk_label_set_justify(GTK_LABEL(state), GTK_JUSTIFY_CENTER);