diff options
Diffstat (limited to 'riscos/dialog.c')
-rw-r--r-- | riscos/dialog.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/riscos/dialog.c b/riscos/dialog.c index 32dbb2ddc..f55cb7b55 100644 --- a/riscos/dialog.c +++ b/riscos/dialog.c @@ -457,6 +457,39 @@ void ro_gui_dialog_click(wimp_pointer *pointer) ro_gui_dialog_click_config_font(pointer); } +/** + * Redraw a dialog window + */ +void ro_gui_dialog_redraw(wimp_draw *redraw) { + os_error *error; + osbool more; + struct toolbar_display *display; + + for (display = toolbars; display; display = display->next) { + if ((display->toolbar) && (display->toolbar->toolbar_handle == redraw->w)) { + ro_gui_theme_redraw(display->toolbar, redraw); + return; + } + } + + error = xwimp_redraw_window(redraw, &more); + if (error) { + LOG(("xwimp_redraw_window: 0x%x: %s", + error->errnum, error->errmess)); + warn_user("WimpError", error->errmess); + return; + } + while (more) { + error = xwimp_get_rectangle(redraw, &more); + if (error) { + LOG(("xwimp_get_rectangle: 0x%x: %s", + error->errnum, error->errmess)); + warn_user("WimpError", error->errmess); + return; + } + } + +} /** * Prepare and open the Choices dialog. |