#else
# define is_menu_group 0
# define is_tooltip_group 0
+#endif
+#if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
+ int did_highlight_changed = FALSE;
#endif
/*
#if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
if (USE_24BIT)
highlight_gui_started();
+ else
#endif
- highlight_changed();
+ highlight_changed();
redraw_later_clear();
return;
}
#endif
#if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
if (USE_24BIT)
+ {
highlight_gui_started();
+ item = &HL_TABLE()[idx]; /* table may have changed */
+ did_highlight_changed = TRUE;
+ redraw_all_later(NOT_VALID);
+ }
#endif
}
#ifdef FEAT_GUI_X11
/* Only call highlight_changed() once, after a sequence of highlight
* commands, and only if an attribute actually changed. */
- if (memcmp(item, &item_before, sizeof(item_before)) != 0)
+ if (memcmp(item, &item_before, sizeof(item_before)) != 0
+#if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
+ && !did_highlight_changed
+#endif
+ )
{
redraw_all_later(NOT_VALID);
need_highlight_changed = TRUE;