From 3795ccbcf343c4619d9e67279b862aee27b15ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 9 Feb 2021 12:18:29 +0100 Subject: [PATCH] windowPreview: Use a proper spacing between icon and title Right now the spacing between icon and title works using a little trick that doesn't really seem intended: The title is offset by (icon-height * ICON_OVERLAP), when the icon is actually overlapping the preview by ICON_OVERLAP, and *overflowing* the preview by (1 - ICON_OVERLAP). So correct that and offset the title by (icon-height * (1 - ICON_OVERLAP)), and since now there's no spacing anymore, add a proper ICON_TITLE_SPACING to that offset. Also add the new ICON_TITLE_SPACING to the overlapHeight, where the spacing was ignored so far. Part-of: --- js/ui/windowPreview.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/js/ui/windowPreview.js b/js/ui/windowPreview.js index 996d66bf5..f4a65b620 100644 --- a/js/ui/windowPreview.js +++ b/js/ui/windowPreview.js @@ -20,6 +20,8 @@ var DRAGGING_WINDOW_OPACITY = 100; const ICON_SIZE = 64; const ICON_OVERLAP = 0.7; +const ICON_TITLE_SPACING = 6; + var WindowPreviewLayout = GObject.registerClass({ Properties: { 'bounding-box': GObject.ParamSpec.boxed( @@ -325,10 +327,11 @@ var WindowPreview = GObject.registerClass({ source: this._windowContainer, coordinate: Clutter.BindCoordinate.X, })); + const iconBottomOverlap = ICON_SIZE * (1 - ICON_OVERLAP); this._title.add_constraint(new Clutter.BindConstraint({ source: this._windowContainer, coordinate: Clutter.BindCoordinate.Y, - offset: scaleFactor * ICON_SIZE * ICON_OVERLAP, + offset: scaleFactor * (iconBottomOverlap + ICON_TITLE_SPACING), })); this._title.add_constraint(new Clutter.AlignConstraint({ source: this._windowContainer, @@ -338,7 +341,7 @@ var WindowPreview = GObject.registerClass({ this._title.add_constraint(new Clutter.AlignConstraint({ source: this._windowContainer, align_axis: Clutter.AlignAxis.Y_AXIS, - pivot_point: new Graphene.Point({ x: -1, y: ICON_OVERLAP }), + pivot_point: new Graphene.Point({ x: -1, y: 0 }), factor: 1, })); this._title.clutter_text.ellipsize = Pango.EllipsizeMode.END; @@ -455,7 +458,7 @@ var WindowPreview = GObject.registerClass({ const [, titleHeight] = this._title.get_preferred_height(-1); const topOverlap = 0; - const bottomOverlap = titleHeight; + const bottomOverlap = ICON_TITLE_SPACING + titleHeight; return [topOverlap, bottomOverlap]; }