--- trunk/src/map-tool.c 2009/11/08 20:34:22 166 +++ trunk/src/map-tool.c 2009/11/09 07:50:37 167 @@ -778,11 +778,33 @@ static gboolean on_focus_in(GtkWidget *widget, GdkEventFocus *event, gpointer data) { + map_context_t *context = (map_context_t*)data; + printf("map got focus\n"); - map_setup((map_context_t*)data); + +#ifdef USE_MAEMO + /* re-enable refresh of map */ + if(!context->handler_id) + context->handler_id = gtk_timeout_add(1000, map_gps_update, context); +#endif + + map_setup(context); return FALSE; } +#ifdef USE_MAEMO +static gboolean on_focus_out(GtkWidget *widget, GdkEventFocus *event, + gpointer data) { + map_context_t *context = (map_context_t*)data; + + printf("map lost focus\n"); + gtk_timeout_remove(context->handler_id); + context->handler_id = 0; + + return FALSE; +} +#endif + void map_update(appdata_t *appdata) { printf("map_update\n"); #ifndef USE_MAEMO @@ -876,6 +898,11 @@ g_signal_connect(G_OBJECT(context->widget), "focus-in-event", G_CALLBACK(on_focus_in), context); +#ifdef USE_MAEMO + g_signal_connect(G_OBJECT(context->widget), "focus-out-event", + G_CALLBACK(on_focus_out), context); +#endif + g_signal_connect(G_OBJECT(context->widget), "configure-event", G_CALLBACK(on_map_configure), context);