[gnome-shell/gnome-40] messageList: Give focus to next message on delete
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-40] messageList: Give focus to next message on delete
- Date: Sat, 11 Dec 2021 16:25:04 +0000 (UTC)
commit dd12812b21eb1749731ea5ae2bf12edb856eef3d
Author: Dylan McCall <dylan dylanmccall ca>
Date: Sun Nov 28 16:19:35 2021 -0800
messageList: Give focus to next message on delete
When the user deletes a message using the keyboard, set the keyboard
focus to the next message, or to the list container itself, so it
remains possible to navigate using the keyboard.
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/502
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2053>
(cherry picked from commit 4a23ddffa8094ef9bef9aefaef1eb23531d652de)
js/ui/messageList.js | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/messageList.js b/js/ui/messageList.js
index 8ffdaebc13..77672a5928 100644
--- a/js/ui/messageList.js
+++ b/js/ui/messageList.js
@@ -663,12 +663,24 @@ var MessageListSection = GObject.registerClass({
}
removeMessage(message, animate) {
- if (!this._messages.includes(message))
+ const messages = this._messages;
+
+ if (!messages.includes(message))
throw new Error(`Impossible to remove untracked message`);
let listItem = message.get_parent();
listItem._connectionsIds.forEach(id => message.disconnect(id));
+ let nextMessage = null;
+
+ if (message.has_key_focus()) {
+ const index = messages.indexOf(message);
+ nextMessage =
+ messages[index + 1] ||
+ messages[index - 1] ||
+ this._list;
+ }
+
if (animate) {
listItem.ease({
scale_x: 0,
@@ -677,10 +689,12 @@ var MessageListSection = GObject.registerClass({
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
listItem.destroy();
+ nextMessage?.grab_key_focus();
},
});
} else {
listItem.destroy();
+ nextMessage?.grab_key_focus();
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]