From d2837c97b70f821cd06f6ff955ee6c6ea8380f11 Mon Sep 17 00:00:00 2001 From: PulkoMandy Date: Sat, 18 Jun 2022 20:47:21 +0200 Subject: [PATCH] Interface kit: allow get_key_repeat_{rate,delay} to fail These functions should return an error if the input_server is not running. They still give the default value in this case, but they now return an error code. Change-Id: I706cded7c780d913d4f36164596b2b7794db6f22 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5385 Tested-by: Commit checker robot Reviewed-by: waddlesplash --- src/kits/interface/InterfaceDefs.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/kits/interface/InterfaceDefs.cpp b/src/kits/interface/InterfaceDefs.cpp index 8882089621..b76f86440a 100644 --- a/src/kits/interface/InterfaceDefs.cpp +++ b/src/kits/interface/InterfaceDefs.cpp @@ -716,10 +716,15 @@ get_key_repeat_rate(int32 *rate) BMessage command(IS_GET_KEY_REPEAT_RATE); BMessage reply; - _control_input_server_(&command, &reply); + status_t err = _control_input_server_(&command, &reply); - if (reply.FindInt32("rate", rate) != B_OK) + if (err == B_OK) + err = reply.FindInt32("rate", rate); + + if (err != B_OK) { *rate = 250000; + return err; + } return B_OK; } @@ -741,10 +746,15 @@ get_key_repeat_delay(bigtime_t *delay) BMessage command(IS_GET_KEY_REPEAT_DELAY); BMessage reply; - _control_input_server_(&command, &reply); + status_t err = _control_input_server_(&command, &reply); - if (reply.FindInt64("delay", delay) != B_OK) + if (err == B_OK) + err = reply.FindInt64("delay", delay); + + if (err != B_OK) { *delay = 200; + return err; + } return B_OK; }