diff options
Diffstat (limited to 'riscos/dialog.c')
-rw-r--r-- | riscos/dialog.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/riscos/dialog.c b/riscos/dialog.c index 039246c65..1775d616c 100644 --- a/riscos/dialog.c +++ b/riscos/dialog.c @@ -297,23 +297,24 @@ void ro_gui_dialog_open(wimp_w w) void ro_gui_dialog_open_persistant(wimp_w parent, wimp_w w, bool pointer) { int dx, dy, i; - wimp_pointer ptr; wimp_window_state open; os_error *error; - /* Get the pointer position - */ - error = xwimp_get_pointer_info(&ptr); - if (error) { - LOG(("xwimp_get_pointer_info: 0x%x: %s", - error->errnum, error->errmess)); - warn_user("WimpError", error->errmess); - return; - } - /* Move and open */ if (pointer) { + wimp_pointer ptr; + + /* Get the pointer position + */ + error = xwimp_get_pointer_info(&ptr); + if (error) { + LOG(("xwimp_get_pointer_info: 0x%x: %s", + error->errnum, error->errmess)); + warn_user("WimpError", error->errmess); + return; + } + open.w = w; error = xwimp_get_window_state(&open); if (error) { @@ -417,7 +418,8 @@ bool ro_gui_dialog_keypress(wimp_key *key) pointer.buttons = wimp_CLICK_SELECT; ro_gui_hotlist_dialog_click(&pointer); return true; - } + } else if (key->w == dialog_saveas) + ro_gui_save_ok(key->w); } #ifdef WITH_AUTH if (key->w == dialog_401li) |