selections: have unfocused state
authorJakub Steiner <jimmac@gmail.com>
Fri, 10 Dec 2021 11:00:12 +0000 (12:00 +0100)
committerJakub Steiner <jimmac@gmail.com>
Fri, 10 Dec 2021 11:00:12 +0000 (12:00 +0100)
- text selections for unfocused elements - textview, label, entry,
  spinbutton

fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4393

gtk/theme/Default/_colors.scss
gtk/theme/Default/_common.scss

index 03e812447f2a72af1086daf8066d3326cfab643c..07e842db75e9c71edb40eda6ae83108ced450dd1 100644 (file)
@@ -56,6 +56,7 @@ $backdrop_bg_color: $bg_color;
 $backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 50%);
 $backdrop_insensitive_color: if($variant == 'light', darken($backdrop_bg_color, 15%), lighten($backdrop_bg_color, 15%));
 $backdrop_selected_fg_color: if($variant == 'light', $backdrop_base_color, $backdrop_text_color);
+$backdrop_selected_bg_color: transparentize(desaturate($selected_bg_color,100%),0.5);
 $backdrop_borders_color: mix($borders_color, $bg_color, 80%);
 $backdrop_dark_fill: mix($backdrop_borders_color, $backdrop_bg_color, 35%);
 
index ebef2a800ce26378fd6e0b3bc4860296ca6bb289..12584b3298793d19290d8f00e3b4f6d4dd6afdc6 100644 (file)
@@ -66,7 +66,13 @@ textview {
   > text {
     @extend %view;
 
-    > selection { &:focus, & { @extend %selected_items; }}
+    > selection {
+      background-color: $backdrop_selected_bg_color;
+
+      &:focus-within {
+         background-color: $selected_bg_color;
+      }
+    }
   }
 
   &:drop(active) {
@@ -152,8 +158,11 @@ label {
   &:selected { @extend %nobg_selected_items; }
 
   > selection {
-    background-color: $selected_bg_color;
+    background-color: $backdrop_selected_bg_color;
     color: $selected_fg_color;
+    &:focus-within {
+       background-color: $selected_bg_color;
+    }
   }
 
   &:disabled {
@@ -318,7 +327,14 @@ entry {
 
     &:disabled { @include entry(insensitive); }
 
-    > text > selection { @extend %selected_items; }
+    > text > selection {
+      background-color: $backdrop_selected_bg_color;
+      color: transparent;
+      &:focus-within {
+        background-color: $selected_bg_color;
+        color: $selected_fg_color;
+      }
+    }
 
     // entry error and warning style
     @each $e_type, $e_color in (error, $error_color),
@@ -1134,7 +1150,14 @@ spinbutton {
       padding: 0;
       border-radius: 0;
 
-      > selection { @extend %selected_items; }
+      > selection {
+        background-color: $backdrop_selected_bg_color;
+        color: transparent;
+        &:focus-within {
+          background-color: $selected_bg_color;
+          color: $selected_fg_color;
+        }
+      }
       > block-cursor { @include entry(block_cursor); }
     }
 
@@ -3357,8 +3380,12 @@ columnview row:not(:selected) cell editablelabel.editing:focus-within {
 }
 
 columnview row:not(:selected) cell editablelabel.editing text selection {
-  color: $selected_fg_color;
-  background-color: $selected_bg_color;
+  background-color: $backdrop_selected_bg_color;
+  color: transparent;
+  &:focus-within {
+    background-color: $selected_bg_color;
+    color: $selected_fg_color;
+  }
 }
 
 /*******************************************************