From df5ae87588547d74262c302ba14ff64050aa28dd Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Mon, 2 Jan 2006 15:58:34 +0000 Subject: [project @ 2006-01-02 15:58:34 by rjw] Remove flicker from example icon. svn path=/import/netsurf/; revision=1951 --- riscos/configure/con_image.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/riscos/configure/con_image.c b/riscos/configure/con_image.c index e97cd0d07..9b797bcc3 100644 --- a/riscos/configure/con_image.c +++ b/riscos/configure/con_image.c @@ -97,7 +97,7 @@ void ro_gui_options_image_finalise(wimp_w w) { } void ro_gui_options_image_update(wimp_w w, wimp_i i) { - ro_gui_force_redraw_icon(w, IMAGE_CURRENT_DISPLAY); + ro_gui_redraw_icon(w, IMAGE_CURRENT_DISPLAY); } void ro_gui_options_image_redraw(wimp_draw *redraw) { @@ -162,6 +162,9 @@ void ro_gui_options_image_read(wimp_w w, unsigned int *bg, unsigned int *fg) { } bool ro_gui_options_image_click(wimp_pointer *pointer) { + unsigned int old_fg, old_bg, bg, fg; + + ro_gui_options_image_read(pointer->w, &old_bg, &old_fg); switch (pointer->i) { case IMAGE_DEFAULT_BUTTON: ro_gui_set_icon_string(pointer->w, IMAGE_FOREGROUND_FIELD, @@ -170,10 +173,16 @@ bool ro_gui_options_image_click(wimp_pointer *pointer) { ro_gui_set_icon_string(pointer->w, IMAGE_BACKGROUND_FIELD, image_quality_menu->entries[2]. data.indirected_text.text); + break; case IMAGE_CANCEL_BUTTON: - ro_gui_force_redraw_icon(pointer->w, IMAGE_CURRENT_DISPLAY); + ro_gui_wimp_event_restore(pointer->w); break; + default: + return false; } + ro_gui_options_image_read(pointer->w, &bg, &fg); + if ((bg != old_bg) || (fg != old_fg)) + ro_gui_options_image_update(pointer->w, pointer->i); return false; } -- cgit v1.2.3