[workstation] Change the key combination for issue report shortcut
- Changes the key combination for issue reporting shortcut to Ctrl + Alt
+ i as Ctrl + Shift + i conflicts with one of the chrome shortcuts.
- Now the user feedback overlay remembers the previous overlay
visibility status before showing itself and set it back to the
previous status when closed.
- Please note that there is currently a bug where only the right alt key
works and the left alt key does nothing(fxb/100687). A fix is coming
(fxr/679330)
Change-Id: I542a7283f32ff1013e6fd0a7592e4622f57b05e2
Reviewed-on: https://fuchsia-review.googlesource.com/c/experiences/+/679957
Reviewed-by: Charles Whitten <cwhitten@google.com>
Reviewed-by: Sanjay Chouksey <sanjayc@google.com>
Commit-Queue: Yeonhee Lee <yhlee@google.com>
diff --git a/session_shells/ermine/shell/config/keyboard_shortcuts.json b/session_shells/ermine/shell/config/keyboard_shortcuts.json
index 7a440cd..2d39897 100644
--- a/session_shells/ermine/shell/config/keyboard_shortcuts.json
+++ b/session_shells/ermine/shell/config/keyboard_shortcuts.json
@@ -205,8 +205,8 @@
"reportAnIssue": [
{
"char": "i",
- "chord": "Shift + Ctrl + i",
- "modifier": "shift + control",
+ "chord": "Ctrl + Alt + i",
+ "modifier": "control + alt",
"exclusive": false,
"description": "Report an Issue",
"localizedDescription": "reportAnIssueKeyboardShortcut"
diff --git a/session_shells/ermine/shell/lib/src/states/app_state_impl.dart b/session_shells/ermine/shell/lib/src/states/app_state_impl.dart
index fc5ce82..32f5ed9 100644
--- a/session_shells/ermine/shell/lib/src/states/app_state_impl.dart
+++ b/session_shells/ermine/shell/lib/src/states/app_state_impl.dart
@@ -437,6 +437,20 @@
@override
void launchFeedback() => launch(Strings.feedback, kFeedbackUrl);
+ /// A flag to remember the previous overlays visibility status before showing
+ /// "Report an Issue" screen to set the overlays status back as it were.
+ ///
+ /// Usecase 1: The user opens "Report an Issue" using the keyboard shortcut
+ /// while using a full-screen chromium app -> "Report an Issue"(overlay) comes
+ /// up on the top -> The user closes user feedback -> The full-screen chromium
+ /// comes back to the top.
+ ///
+ /// Usecase 2: The user opens overlays(sidebar, app bar) while using a full-
+ /// screen chromium app -> The user clicks "Report an Issue" on Quick Settings
+ /// -> The user closes "Report an Issue" -> The app bar and side bar still
+ /// remain on top of the chromium view.
+ bool _wasOverlayVisible = true;
+
@override
void showUserFeedback() async {
if (!settingsState.dataSharingConsentEnabled) {
@@ -451,7 +465,9 @@
runInAction(() {
// TODO(fxb/97464): Take a screenshot here when the bug is fixed.
+ _wasOverlayVisible = overlaysVisible;
userFeedbackVisibility.value = true;
+ showOverlay();
if (preferencesService.showUserFeedbackStartUpDialog.value) {
_feedbackPage.value = FeedbackPage.scrim;
@@ -485,6 +501,9 @@
void closeUserFeedback() {
runInAction(() {
userFeedbackVisibility.value = false;
+ if (!_wasOverlayVisible) {
+ hideOverlay();
+ }
_feedbackPage.value = FeedbackPage.preparing;
_feedbackUuid.value = '';
});