fixed problem with tooltips not always being displayed correctly
This commit is contained in:
parent
036bb8a909
commit
78df98d752
3 changed files with 16 additions and 1 deletions
|
@ -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();
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue