Index: src/poi.c =================================================================== --- src/poi.c (revision 19) +++ src/poi.c (revision 20) @@ -76,6 +76,8 @@ static sqlite3_stmt *_stmt_toggle_cat = NULL; static sqlite3_stmt *_stmt_selall_cat = NULL; +static gint selected_poi_id = -1; + typedef struct _PoiListInfo PoiListInfo; struct _PoiListInfo { @@ -377,19 +379,17 @@ } static void -write_selected_poi(PoiInfo *poi, gint *id, - GtkTreeModel *model, GtkTreeIter *iter) +write_selected_poi(PoiInfo *poi, GtkTreeModel *model, GtkTreeIter *iter) { gtk_tree_model_get(model, iter, - POI_POIID, &(poi->poi_id), - POI_CATID, &(poi->cat_id), - POI_LAT, &(poi->lat), - POI_LON, &(poi->lon), - POI_LABEL, &(poi->label), - POI_DESC, &(poi->desc), - POI_CLABEL, &(poi->clabel), + POI_POIID, &poi->poi_id, + POI_CATID, &poi->cat_id, + POI_LAT, &poi->lat, + POI_LON, &poi->lon, + POI_LABEL, &poi->label, + POI_DESC, &poi->desc, + POI_CLABEL, &poi->clabel, -1); - *id = poi->poi_id; } GSList * @@ -419,7 +419,6 @@ gboolean select_poi(gint unitx, gint unity, PoiInfo *poi, gboolean quick) { - static gint selected_poi_id = -1; GtkTreeIter *selected_poi = NULL; gint x, y; gdouble lat1, lon1, lat2, lon2; @@ -502,22 +501,18 @@ { if(!quick) MACRO_BANNER_SHOW_INFO(_window, _("No POIs found.")); - selected_poi_id = -1; selected = FALSE; } /* one match */ else if(num_pois == 1) { - write_selected_poi(poi, &selected_poi_id, - GTK_TREE_MODEL(store), selected_poi); + write_selected_poi(poi, GTK_TREE_MODEL(store), selected_poi); selected = TRUE; } /* two or more -- picking the nearest */ else if(quick) { selected = get_nearest_poi(unitx, unity, poi); - if (selected) - selected_poi_id = poi->poi_id; } /* multiple matches -- let user decide */ else @@ -595,8 +590,7 @@ map_force_redraw(); if (selected) - write_selected_poi(poi, &selected_poi_id, - GTK_TREE_MODEL(store), selected_poi); + write_selected_poi(poi, GTK_TREE_MODEL(store), selected_poi); gtk_widget_destroy(dialog); } @@ -1222,13 +1216,13 @@ DeletePOI dpoi; PoiCategoryEditInfo pcedit; gint cols = (DEG_FORMAT_ENUM_TEXT[_degformat].field_2_in_use) ? 6 : 4; - gchar tmp1[LL_FMT_LEN], tmp2[LL_FMT_LEN]; + gint fallback_deg_format = _degformat; printf("%s()\n", __PRETTY_FUNCTION__); + + selected_poi_id = poi->poi_id; - gint fallback_deg_format = _degformat; - if(!coord_system_check_lat_lon(poi->lat, poi->lon, &fallback_deg_format)) { last_deg_format = _degformat;