Fix:Core:Make osd_configuration work also for non-overlay buttons
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sat, 30 Oct 2010 16:26:16 +0000 (16:26 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sat, 30 Oct 2010 16:26:16 +0000 (16:26 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3628 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/osd.c
navit/navit/osd.h

index 3eae150..0b79df4 100644 (file)
@@ -243,7 +243,16 @@ osd_std_config(struct osd_item *item, struct navit *navit)
                        attr.u.num=-1;
                item->configured = !!(attr.u.num & item->osd_configuration);
        }
-       graphics_overlay_disable(item->gr, !item->configured);
+       if (item->gr && !(item->flags & 16)) 
+               graphics_overlay_disable(item->gr, !item->configured);
+}
+
+void
+osd_set_std_config(struct navit *nav, struct osd_item *item)
+{
+       item->cb = callback_new_attr_2(callback_cast(osd_std_config), attr_osd_configuration, item, nav);
+       navit_add_callback(nav, item->cb);
+       osd_std_config(item, nav);
 }
 
 void
@@ -267,13 +276,11 @@ osd_set_std_graphic(struct navit *nav, struct osd_item *item, struct osd_priv *p
                graphics_gc_set_foreground(item->graphic_fg_text, &item->text_color);
        }
 
-       item->cb = callback_new_attr_2(callback_cast(osd_std_config), attr_osd_configuration, item, nav);
-       navit_add_callback(nav, item->cb);
+       osd_set_std_config(nav, item);
 
        item->resize_cb = callback_new_attr_2(callback_cast(osd_std_calculate_sizes), attr_resize, item, priv);
        graphics_add_callback(navit_gr, item->resize_cb);
 
-       osd_std_config(item, nav);
 }
 
 void
index e7bc91a..6aa1da8 100644 (file)
@@ -59,6 +59,7 @@ void osd_wrap_point(struct point *p, struct navit *nav);
 void osd_std_click(struct osd_item *this, struct navit *nav, int pressed, int button, struct point *p);
 void osd_set_std_attr(struct attr **attrs, struct osd_item *item, int flags);
 void osd_std_config(struct osd_item *item, struct navit *navit);
+void osd_set_std_config(struct navit *nav, struct osd_item *item);
 void osd_set_std_graphic(struct navit *nav, struct osd_item *item, struct osd_priv *priv);
 void osd_std_resize(struct osd_item *item);
 void osd_std_draw(struct osd_item *item);