diff --git a/lib/Drawing/StyleManager.vala b/lib/Drawing/StyleManager.vala index 881d56781..f2447b6ff 100644 --- a/lib/Drawing/StyleManager.vala +++ b/lib/Drawing/StyleManager.vala @@ -30,9 +30,7 @@ public class Gala.Drawing.StyleManager : Object { private const string FDO_ACCOUNTS_NAME = "org.freedesktop.Accounts"; private const string FDO_ACCOUNTS_PATH = "/org/freedesktop/Accounts"; - - private const float ACCENT_COLOR_ALPHA = 0.25f; - private const Gdk.RGBA DEFAULT_ACCENT_COLOR = { 0, 0, 0, ACCENT_COLOR_ALPHA }; + private const uint8 ACCENT_COLOR_ALPHA = 64; private static GLib.Once instance; public static StyleManager get_instance () { @@ -40,7 +38,11 @@ public class Gala.Drawing.StyleManager : Object { } public ColorScheme prefers_color_scheme { get; private set; default = LIGHT; } - public Gdk.RGBA theme_accent_color { get; private set; default = DEFAULT_ACCENT_COLOR; } +#if !HAS_MUTTER47 + public Clutter.Color theme_accent_color { get; private set; default = { 0, 0, 0, ACCENT_COLOR_ALPHA }; } +#else + public Cogl.Color theme_accent_color { get; private set; default = { 0, 0, 0, ACCENT_COLOR_ALPHA }; } +#endif private PantheonAccountsService? pantheon_proxy; private SettingsDaemonAccountsService? settings_daemon_proxy; @@ -94,16 +96,11 @@ public class Gala.Drawing.StyleManager : Object { private void update_color (int color) { var rgb = get_color (color); - var r = ((rgb >> 16) & 255) / 255.0f; - var g = ((rgb >> 8) & 255) / 255.0f; - var b = (rgb & 255) / 255.0f; + var r = (uint8) ((rgb >> 16) & 255); + var g = (uint8) ((rgb >> 8) & 255); + var b = (uint8) (rgb & 255); - theme_accent_color = { - r, - g, - b, - ACCENT_COLOR_ALPHA - }; + theme_accent_color = { r, g, b, ACCENT_COLOR_ALPHA }; } private int get_color (int color) { diff --git a/src/Widgets/DwellClickTimer.vala b/src/Widgets/DwellClickTimer.vala index 3b01db8b7..8f92c1b99 100644 --- a/src/Widgets/DwellClickTimer.vala +++ b/src/Widgets/DwellClickTimer.vala @@ -105,10 +105,10 @@ public class Gala.DwellClickTimer : Clutter.Actor, Clutter.Animatable { } var rgba = Drawing.StyleManager.get_instance ().theme_accent_color; - + var red = rgba.red / 255.0, green = rgba.green / 255.0, blue = rgba.blue / 255.0; + stroke_color = new Cairo.Pattern.rgb (red, green, blue); /* Don't use alpha from the stylesheet to ensure contrast */ - stroke_color = new Cairo.Pattern.rgb (rgba.red, rgba.green, rgba.blue); - fill_color = new Cairo.Pattern.rgba (rgba.red, rgba.green, rgba.blue, BACKGROUND_OPACITY); + fill_color = new Cairo.Pattern.rgba (red, green, blue, BACKGROUND_OPACITY); var radius = int.min (cursor_size / 2, cursor_size / 2); var end_angle = START_ANGLE + angle; diff --git a/src/Widgets/MultitaskingView/WindowClone.vala b/src/Widgets/MultitaskingView/WindowClone.vala index 4e4967ed5..c1f2f91dd 100644 --- a/src/Widgets/MultitaskingView/WindowClone.vala +++ b/src/Widgets/MultitaskingView/WindowClone.vala @@ -629,13 +629,7 @@ public class Gala.WindowClone : ActorTarget, RootTarget { } public void update_color () { - var accent_color = Drawing.StyleManager.get_instance ().theme_accent_color; - background_color = { - (uint8) (accent_color.red * uint8.MAX), - (uint8) (accent_color.green * uint8.MAX), - (uint8) (accent_color.blue * uint8.MAX), - (uint8) (COLOR_OPACITY * uint8.MAX) - }; + background_color = Drawing.StyleManager.get_instance ().theme_accent_color; } } } diff --git a/src/Widgets/PointerLocator.vala b/src/Widgets/PointerLocator.vala index b8d27f85d..0cfb7dc5e 100644 --- a/src/Widgets/PointerLocator.vala +++ b/src/Widgets/PointerLocator.vala @@ -132,10 +132,10 @@ public class Gala.PointerLocator : Clutter.Actor, Clutter.Animatable { add_transition ("circle", transition); var rgba = Drawing.StyleManager.get_instance ().theme_accent_color; - + var red = rgba.red / 255.0, green = rgba.green / 255.0, blue = rgba.blue / 255.0; + stroke_color = new Cairo.Pattern.rgb (red, green, blue); /* Don't use alpha from the stylesheet to ensure contrast */ - stroke_color = new Cairo.Pattern.rgb (rgba.red, rgba.green, rgba.blue); - fill_color = new Cairo.Pattern.rgba (rgba.red, rgba.green, rgba.blue, BACKGROUND_OPACITY); + fill_color = new Cairo.Pattern.rgba (red, green, blue, BACKGROUND_OPACITY); #if HAS_MUTTER48 unowned var tracker = display.get_compositor ().get_backend ().get_cursor_tracker (); diff --git a/src/Widgets/WindowSwitcher/WindowSwitcherIcon.vala b/src/Widgets/WindowSwitcher/WindowSwitcherIcon.vala index 6571403a6..aa614daba 100644 --- a/src/Widgets/WindowSwitcher/WindowSwitcherIcon.vala +++ b/src/Widgets/WindowSwitcher/WindowSwitcherIcon.vala @@ -15,19 +15,9 @@ public class Gala.WindowSwitcherIcon : Clutter.Actor { public bool selected { set { if (value) { - var accent_color = Drawing.StyleManager.get_instance ().theme_accent_color; - background_color = { - (uint8) (accent_color.red * uint8.MAX), - (uint8) (accent_color.green * uint8.MAX), - (uint8) (accent_color.blue * uint8.MAX), - (uint8) (accent_color.alpha * uint8.MAX) - }; + background_color = Drawing.StyleManager.get_instance ().theme_accent_color; } else { -#if HAS_MUTTER47 - background_color = Cogl.Color.from_4f (0, 0, 0, 0); -#else - background_color = Clutter.Color.alloc (); -#endif + background_color = { 0, 0, 0, 0 }; } get_accessible ().notify_state_change (Atk.StateType.SELECTED, value); diff --git a/src/WindowManager.vala b/src/WindowManager.vala index 7942e6d32..154a6646c 100644 --- a/src/WindowManager.vala +++ b/src/WindowManager.vala @@ -949,18 +949,13 @@ namespace Gala { public override void show_tile_preview (Meta.Window window, Mtk.Rectangle tile_rect, int tile_monitor_number) { if (tile_preview == null) { - tile_preview = new Clutter.Actor (); - var rgba = Drawing.StyleManager.get_instance ().theme_accent_color; - tile_preview.background_color = { - (uint8)(255.0 * rgba.red), - (uint8)(255.0 * rgba.green), - (uint8)(255.0 * rgba.blue), - (uint8)(255.0 * rgba.alpha) + tile_preview = new Clutter.Actor () { + background_color = Drawing.StyleManager.get_instance ().theme_accent_color, + opacity = 0 }; - tile_preview.opacity = 0U; window_group.add_child (tile_preview); - } else if (tile_preview.is_visible ()) { + } else { float width, height, x, y; tile_preview.get_position (out x, out y); tile_preview.get_size (out width, out height);