fixed problem with tooltips not always being displayed correctly

This commit is contained in:
Dave White 2003-11-25 23:53:35 +00:00
parent 036bb8a909
commit 78df98d752
3 changed files with 16 additions and 1 deletions

View file

@ -645,7 +645,7 @@ void display::draw_unit_details(int x, int y, const gamemap::location& loc,
if(teams_.empty())
return;
tooltips::clear_tooltips();
tooltips::clear_tooltips(description_rect);
SDL_Rect clipRect = clip_rect != NULL ? *clip_rect : screen_area();

View file

@ -141,6 +141,20 @@ void clear_tooltips()
current_message = "";
}
void clear_tooltips(const SDL_Rect& rect)
{
clear_tooltips();
for(std::vector<tooltip>::iterator i = tips.begin(); i != tips.end(); ) {
if(rectangles_overlap(i->rect,rect)) {
i = tips.erase(i);
} else {
++i;
}
}
current_message = "";
}
void add_tooltip(const SDL_Rect& rect, const std::string& message)
{
for(std::vector<tooltip>::iterator i = tips.begin(); i != tips.end(); ++i) {

View file

@ -15,6 +15,7 @@ struct manager
};
void clear_tooltips();
void clear_tooltips(const SDL_Rect& rect);
void add_tooltip(const SDL_Rect& rect, const std::string& message);
void process(int mousex, int mousey, bool lbutton);