summaryrefslogtreecommitdiff
path: root/riscos/wimp.c
diff options
context:
space:
mode:
Diffstat (limited to 'riscos/wimp.c')
-rw-r--r--riscos/wimp.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/riscos/wimp.c b/riscos/wimp.c
index b178b848d..5c9202ca8 100644
--- a/riscos/wimp.c
+++ b/riscos/wimp.c
@@ -295,10 +295,23 @@ void ro_gui_set_window_title(wimp_w w, const char *text) {
*/
void ro_gui_set_caret_first(wimp_w w) {
int icon, button;
+ wimp_window_state win_state;
wimp_window_info_base window;
wimp_icon_state state;
os_error *error;
+ /* Check the window is open
+ */
+ win_state.w = w;
+ error = xwimp_get_window_state(&win_state);
+ if (error) {
+ LOG(("xwimp_get_window_state: 0x%x: %s",
+ error->errnum, error->errmess));
+ warn_user("WimpError", error->errmess);
+ return;
+ }
+ if (!(win_state.flags & wimp_WINDOW_OPEN)) return;
+
/* Get the window details
*/
window.w = w;
@@ -319,7 +332,7 @@ void ro_gui_set_caret_first(wimp_w w) {
state.i = icon;
error = xwimp_get_icon_state(&state);
if (error) {
- LOG(("xwimp_get_window_info: 0x%x: %s",
+ LOG(("xwimp_get_icon_state: 0x%x: %s",
error->errnum, error->errmess));
warn_user("WimpError", error->errmess);
return;