diff options
author | Richard Wilson <rjw@netsurf-browser.org> | 2004-08-31 19:51:29 +0000 |
---|---|---|
committer | Richard Wilson <rjw@netsurf-browser.org> | 2004-08-31 19:51:29 +0000 |
commit | 13ae21f22b569683500350cee7c63584f2e4fbfe (patch) | |
tree | 93c71bacd72054c98789d7aa5979909c60246cfc /riscos | |
parent | b14219359d5b2eef912e42d61bd2c75e18708f01 (diff) | |
download | netsurf-13ae21f22b569683500350cee7c63584f2e4fbfe.tar.gz netsurf-13ae21f22b569683500350cee7c63584f2e4fbfe.tar.bz2 |
[project @ 2004-08-31 19:51:29 by rjw]
Remove flicker from repeatedly setting icons as shaded.
svn path=/import/netsurf/; revision=1259
Diffstat (limited to 'riscos')
-rw-r--r-- | riscos/wimp.c | 15 | ||||
-rw-r--r-- | riscos/wimp.h | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/riscos/wimp.c b/riscos/wimp.c index 395c1ae31..d7af43a14 100644 --- a/riscos/wimp.c +++ b/riscos/wimp.c @@ -251,14 +251,23 @@ bool ro_gui_get_icon_selected_state(wimp_w w, wimp_i i) { /** - * Set the selected state of an icon. + * Set the shaded state of an icon. * * \param w window handle * \param i icon handle * \param state selected state */ -#define ro_gui_set_icon_shaded_state(w, i, state) \ - xwimp_set_icon_state(w, i, (state ? wimp_ICON_SHADED : 0), wimp_ICON_SHADED) +void ro_gui_set_icon_shaded_state(wimp_w w, wimp_i i, bool state) { + os_error *error; + if (ro_gui_get_icon_selected_state(w, i) == state) return; + error = xwimp_set_icon_state(w, i, + (state ? wimp_ICON_SHADED : 0), wimp_ICON_SHADED); + if (error) { + LOG(("xwimp_get_icon_state: 0x%x: %s", + error->errnum, error->errmess)); + warn_user("WimpError", error->errmess); + } +} /** diff --git a/riscos/wimp.h b/riscos/wimp.h index 6988983a6..26f44bd74 100644 --- a/riscos/wimp.h +++ b/riscos/wimp.h @@ -39,7 +39,7 @@ void ro_gui_set_icon_string(wimp_w w, wimp_i i, const char *text); void ro_gui_set_icon_integer(wimp_w w, wimp_i i, int value); void ro_gui_set_icon_selected_state(wimp_w w, wimp_i i, bool state); bool ro_gui_get_icon_selected_state(wimp_w w, wimp_i i); -#define ro_gui_set_icon_shaded_state(w, i, state) xwimp_set_icon_state(w, i, (state ? wimp_ICON_SHADED : 0), wimp_ICON_SHADED) +void ro_gui_set_icon_shaded_state(wimp_w w, wimp_i i, bool state); bool ro_gui_get_icon_shaded_state(wimp_w w, wimp_i i); void ro_gui_set_window_title(wimp_w w, const char *title); void ro_gui_set_caret_first(wimp_w w); |