diff options
-rw-r--r-- | src/vte-private.h | 10 | ||||
-rw-r--r-- | src/vte.cc | 4 | ||||
-rw-r--r-- | src/vtedraw.cc | 2 |
3 files changed, 13 insertions, 3 deletions
diff --git a/src/vte-private.h b/src/vte-private.h index d8fb11a8..b6867f10 100644 --- a/src/vte-private.h +++ b/src/vte-private.h @@ -125,6 +125,16 @@ gboolean _vte_terminal_size_to_grid_size(VteTerminal *terminal, gboolean _vte_terminal_is_word_char(VteTerminal *terminal, gunichar c); +static inline bool +_vte_double_equal(double a, + double b) +{ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfloat-equal" + return a == b; +#pragma GCC diagnostic pop +} + G_END_DECLS #endif @@ -2824,7 +2824,7 @@ _vte_terminal_set_background_alpha(VteTerminal *terminal, { VteTerminalPrivate *pvt = terminal->pvt; - if (alpha == pvt->background_alpha) + if (_vte_double_equal(alpha, pvt->background_alpha)) return; _vte_debug_print(VTE_DEBUG_MISC, @@ -5063,7 +5063,7 @@ vte_terminal_style_updated (GtkWidget *widget) vte_terminal_set_padding(terminal); gtk_widget_style_get(widget, "cursor-aspect-ratio", &aspect, NULL); - if (aspect != terminal->pvt->cursor_aspect_ratio) { + if (!_vte_double_equal(aspect, terminal->pvt->cursor_aspect_ratio)) { terminal->pvt->cursor_aspect_ratio = aspect; _vte_invalidate_cursor_once(terminal, FALSE); } diff --git a/src/vtedraw.cc b/src/vtedraw.cc index 5d0fe556..dcabb6e3 100644 --- a/src/vtedraw.cc +++ b/src/vtedraw.cc @@ -552,7 +552,7 @@ static gboolean context_equal (PangoContext *a, PangoContext *b) { - return pango_cairo_context_get_resolution (a) == pango_cairo_context_get_resolution (b) + return _vte_double_equal(pango_cairo_context_get_resolution(a), pango_cairo_context_get_resolution (b)) && pango_font_description_equal (pango_context_get_font_description (a), pango_context_get_font_description (b)) && cairo_font_options_equal (pango_cairo_context_get_font_options (a), pango_cairo_context_get_font_options (b)) && pango_context_get_language (a) == pango_context_get_language (b) |