Fix:gui_internal:Correct handling of multiple selected POIs
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Mon, 12 Apr 2010 09:27:29 +0000 (09:27 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Mon, 12 Apr 2010 09:27:29 +0000 (09:27 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3159 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/gui/internal/gui_internal.c

index 3ca235e..8e507c4 100644 (file)
@@ -4391,13 +4391,13 @@ static void gui_internal_dbus_signal(struct gui_priv *this, struct point *p)
        struct displaylist_handle *dlh;
        struct displaylist *display;
        struct displayitem *di;
+       struct attr cb,**attr_list=NULL;
+       int valid=0;
 
        display=navit_get_displaylist(this->nav);
        dlh=graphics_displaylist_open(display);
        while ((di=graphics_displaylist_next(dlh))) {
                struct item *item=graphics_displayitem_get_item(di);
-               struct attr cb,**attr_list=NULL;
-               int valid=0;
                if (item_is_point(*item) && graphics_displayitem_get_displayed(di) &&
                        graphics_displayitem_within_dist(display, di, p, this->radius)) {
                        struct map_rect *mr=map_rect_new(item->map, NULL);
@@ -4407,11 +4407,11 @@ static void gui_internal_dbus_signal(struct gui_priv *this, struct point *p)
                                attr_list=attr_generic_add_attr(attr_list, &attr);
                        map_rect_destroy(mr);
                }
-                       if (attr_list && navit_get_attr(this->nav, attr_callback_list, &cb, NULL)) 
-                       callback_list_call_attr_4(cb.u.callback_list, attr_command, "dbus_send_signal", attr_list, NULL, &valid);
-               attr_list_free(attr_list);
        }
                graphics_displaylist_close(dlh);
+               if (attr_list && navit_get_attr(this->nav, attr_callback_list, &cb, NULL)) 
+               callback_list_call_attr_4(cb.u.callback_list, attr_command, "dbus_send_signal", attr_list, NULL, &valid);
+       attr_list_free(attr_list);
 }