[gnome-shell] appDisplay: Expand titles on keyboard focus as well



commit 548d3b62d7bc08fe2423c7520ce8e2b6bdcfaff7
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri Nov 13 14:35:29 2020 -0300

    appDisplay: Expand titles on keyboard focus as well
    
    In addition to hover, expand wrapped app titles when keyboard
    focus is in as well. This gives keyboard users a chance to
    read the app name.
    
    Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3333
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1496

 js/ui/appDisplay.js | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 9c09a84c97..ab4bb6c863 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1512,15 +1512,15 @@ class AppViewItem extends St.Button {
             label.disconnect(id);
         });
 
-        const { hover } = this;
+        const expand = this.hover || this.has_key_focus();
         label.save_easing_state();
-        label.set_easing_duration(hover
+        label.set_easing_duration(expand
             ? APP_ICON_TITLE_EXPAND_TIME
             : APP_ICON_TITLE_COLLAPSE_TIME);
         clutterText.set({
-            line_wrap: hover,
-            line_wrap_mode: hover ? Pango.WrapMode.WORD_CHAR : Pango.WrapMode.NONE,
-            ellipsize: hover ? Pango.EllipsizeMode.NONE : Pango.EllipsizeMode.END,
+            line_wrap: expand,
+            line_wrap_mode: expand ? Pango.WrapMode.WORD_CHAR : Pango.WrapMode.NONE,
+            ellipsize: expand ? Pango.EllipsizeMode.NONE : Pango.EllipsizeMode.END,
         });
     }
 
@@ -1608,6 +1608,16 @@ class AppViewItem extends St.Button {
             x > this.width - IconGrid.RIGHT_DIVIDER_LEEWAY;
     }
 
+    vfunc_key_focus_in() {
+        this._updateMultiline();
+        super.vfunc_key_focus_in();
+    }
+
+    vfunc_key_focus_out() {
+        this._updateMultiline();
+        super.vfunc_key_focus_out();
+    }
+
     handleDragOver(source, _actor, x) {
         if (source === this)
             return DND.DragMotionResult.NO_DROP;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]