|
8 | 8 | public class Gala.ShellWindow : PositionedWindow, GestureTarget { |
9 | 9 | public Clutter.Actor? actor { get { return window_actor; } } |
10 | 10 |
|
| 11 | + public bool visible_in_multitasking_view { get; set; default = false; } |
| 12 | + |
11 | 13 | private Meta.WindowActor window_actor; |
12 | 14 | private double custom_progress = 0; |
13 | 15 | private double multitasking_view_progress = 0; |
@@ -38,9 +40,16 @@ public class Gala.ShellWindow : PositionedWindow, GestureTarget { |
38 | 40 | ); |
39 | 41 | } |
40 | 42 |
|
| 43 | + private double get_hidden_progress () { |
| 44 | + if (visible_in_multitasking_view) { |
| 45 | + return double.min (custom_progress, 1 - multitasking_view_progress); |
| 46 | + } else { |
| 47 | + return double.max (custom_progress, multitasking_view_progress); |
| 48 | + } |
| 49 | + } |
| 50 | + |
41 | 51 | private void update_property () { |
42 | | - var hidden_progress = double.max (custom_progress, multitasking_view_progress); |
43 | | - property_target.propagate (UPDATE, DOCK, hidden_progress); |
| 52 | + property_target.propagate (UPDATE, DOCK, get_hidden_progress ()); |
44 | 53 | } |
45 | 54 |
|
46 | 55 | public override void propagate (UpdateType update_type, GestureAction action, double progress) { |
@@ -82,7 +91,7 @@ public class Gala.ShellWindow : PositionedWindow, GestureTarget { |
82 | 91 | } |
83 | 92 |
|
84 | 93 | private void update_visibility () { |
85 | | - var visible = double.max (multitasking_view_progress, custom_progress) < 0.1; |
| 94 | + var visible = get_hidden_progress () < 0.1; |
86 | 95 | var animating = animations_ongoing > 0; |
87 | 96 |
|
88 | 97 | if (!Meta.Util.is_wayland_compositor ()) { |
|
0 commit comments