summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2021-02-27 20:23:19 +0100
committerCarlos Garnacho <carlosg@gnome.org>2021-03-01 18:02:26 +0100
commit764cd07663ef71e8c56a7f2b68cca5fcb9ce598f (patch)
tree862719c125f77266c12f2879db5642dd0e4c69b5
parentd033e65f27bac1b7b3da6af6420de47d29e7926f (diff)
downloadgnome-shell-wip/carlosg/appgrid-navigation.tar.gz
st/scrollview: Apply correct fade_edges_left/right effect uniforms in RTLwip/carlosg/appgrid-navigation
When the setting is false, we apply anyway depending on the adjustment value. Look for the right value corresponding to that side as per the locale.
-rw-r--r--src/st/st-scroll-view-fade.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/st/st-scroll-view-fade.c b/src/st/st-scroll-view-fade.c
index 3ca731337..b387e384a 100644
--- a/src/st/st-scroll-view-fade.c
+++ b/src/st/st-scroll-view-fade.c
@@ -94,7 +94,7 @@ st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect,
gdouble value, lower, upper, page_size;
ClutterActor *vscroll = st_scroll_view_get_vscroll_bar (ST_SCROLL_VIEW (self->actor));
ClutterActor *hscroll = st_scroll_view_get_hscroll_bar (ST_SCROLL_VIEW (self->actor));
- gboolean h_scroll_visible, v_scroll_visible;
+ gboolean h_scroll_visible, v_scroll_visible, rtl;
ClutterActorBox allocation, content_box, paint_box;
ClutterMargin *content_padding;
@@ -158,8 +158,15 @@ st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect,
st_adjustment_get_values (self->hadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
value = (value - lower) / (upper - page_size - lower);
- clutter_shader_effect_set_uniform (shader, "fade_edges_left", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
- clutter_shader_effect_set_uniform (shader, "fade_edges_right", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
+ rtl = clutter_actor_get_text_direction (self->actor) == CLUTTER_TEXT_DIRECTION_RTL;
+ clutter_shader_effect_set_uniform (shader, "fade_edges_left", G_TYPE_INT, 1,
+ self->fade_edges ?
+ value >= 0.0 :
+ (rtl ? value < 1.0 : value > 0.0));
+ clutter_shader_effect_set_uniform (shader, "fade_edges_right", G_TYPE_INT, 1,
+ self->fade_edges ?
+ value <= 1.0 :
+ (rtl ? value > 0.0 : value < 1.0));
clutter_shader_effect_set_uniform (shader, "fade_offset_top", G_TYPE_FLOAT, 1, ABS (self->fade_margins.top));
clutter_shader_effect_set_uniform (shader, "fade_offset_bottom", G_TYPE_FLOAT, 1, ABS (self->fade_margins.bottom));