Skip to content

Commit 27930e5

Browse files
authored
Merge branch 'main' into lenemter/gala-text
2 parents 35595d7 + 26a5c81 commit 27930e5

File tree

82 files changed

+1851
-2051
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1851
-2051
lines changed

.github/workflows/main.yml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Install Dependencies
3232
run: |
3333
apt update
34-
apt install -y gettext gsettings-desktop-schemas-dev libatk-bridge2.0-dev libcanberra-dev libclutter-1.0-dev libgee-0.8-dev libglib2.0-dev libgnome-desktop-3-dev libgranite-dev libgtk-3-dev ${{ matrix.mutter_pkg }} libxml2-utils libsqlite3-dev meson valac valadoc
34+
apt install -y gettext gsettings-desktop-schemas-dev libatk-bridge2.0-dev libcanberra-dev libclutter-1.0-dev libgee-0.8-dev libglib2.0-dev libgnome-desktop-3-dev libgranite-dev libgtk-3-dev ${{ matrix.mutter_pkg }} libsqlite3-dev meson valac valadoc
3535
- name: Build
3636
env:
3737
DESTDIR: out
@@ -50,16 +50,35 @@ jobs:
5050
- uses: actions/checkout@v4
5151
- name: Install Dependencies
5252
run: |
53-
dnf install -y desktop-file-utils gettext gsettings-desktop-schemas-devel atk-devel libcanberra-devel clutter-devel libgee-devel glib2-devel gnome-desktop3-devel granite-devel granite-7-devel gtk3-devel gtk4-devel libhandy-devel mutter-devel xml2 sqlite-devel meson valac valadoc
53+
dnf install -y desktop-file-utils gettext gsettings-desktop-schemas-devel atk-devel libcanberra-devel clutter-devel libgee-devel glib2-devel gnome-desktop3-devel granite-devel granite-7-devel gtk3-devel gtk4-devel libhandy-devel mutter-devel sqlite-devel meson valac valadoc
5454
- name: Build
5555
env:
5656
DESTDIR: out
5757
run: |
5858
meson build
5959
ninja -C build install
6060
61-
lint:
61+
open-suse-leap:
62+
runs-on: ubuntu-latest
63+
64+
container:
65+
image: opensuse/leap:latest
6266

67+
steps:
68+
- name: Install dependencies
69+
run: |
70+
zypper addrepo https://download.opensuse.org/repositories/X11:Pantheon/15.6/X11:Pantheon.repo
71+
zypper --gpg-auto-import-keys refresh
72+
zypper --non-interactive install tar git desktop-file-utils gsettings-desktop-schemas-devel libatk-1_0-0 libcanberra-devel clutter-devel libgee-devel glib2-devel libgnome-desktop-3-devel granite6-devel granite-devel gtk3-devel gtk4-devel libhandy-devel mutter-devel sqlite3-devel meson vala valadoc gcc
73+
- uses: actions/checkout@v4
74+
- name: Build
75+
env:
76+
DESTDIR: out
77+
run: |
78+
meson build
79+
ninja -C build install
80+
81+
lint:
6382
runs-on: ubuntu-latest
6483

6584
container:
@@ -70,6 +89,7 @@ jobs:
7089
- name: Lint
7190
run: |
7291
io.elementary.vala-lint -d daemon
92+
io.elementary.vala-lint -d daemon-gtk3
7393
io.elementary.vala-lint -d lib
7494
io.elementary.vala-lint -d plugins
7595
io.elementary.vala-lint -d src

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
if: github.event.pull_request.merged == true && true == contains(join(github.event.pull_request.labels.*.name), 'Release')
1212
steps:
1313
- uses: actions/checkout@v4
14-
- uses: elementary/actions/release@master
14+
- uses: elementary/actions/release@main
1515
env:
1616
GIT_USER_TOKEN: "${{ secrets.GIT_USER_TOKEN }}"
1717
GIT_USER_NAME: "elementaryBot"

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ You'll need the following dependencies:
1616
* libgranite-dev (>= 5.4.0)
1717
* libgtk-3-dev (>= 3.10.0)
1818
* libmutter-10-dev (>= 42.0) | libmutter-dev (>= 3.18.3)
19-
* libxml2-utils
2019
* meson (>= 0.59.0)
2120
* valac (>= 0.46.0)
2221

daemon-gtk3/BackgroundMenu.vala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*/
55

66
public class Gala.Daemon.BackgroundMenu : Gtk.Menu {
7-
public const string ACTION_GROUP_PREFIX = "background-menu";
8-
public const string ACTION_PREFIX = ACTION_GROUP_PREFIX + ".";
7+
private const string ACTION_GROUP_PREFIX = "background-menu";
8+
private const string ACTION_PREFIX = ACTION_GROUP_PREFIX + ".";
99

1010
construct {
1111
var change_wallpaper = new Gtk.MenuItem.with_label (_("Change Wallpaper…")) {

daemon-gtk3/DBus.vala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ public class Gala.Daemon.DBus : GLib.Object {
9090
menu.attach_to_widget (window.content, null);
9191

9292
Gdk.Rectangle rect = {
93-
x,
94-
y,
93+
x / window.scale_factor,
94+
y / window.scale_factor,
9595
0,
9696
0
9797
};

daemon/MonitorLabel.vala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55

66
public class Gala.Daemon.MonitorLabel : Gtk.Window {
7-
private const int SPACING = 12;
87
private const string COLORED_STYLE_CSS = """
98
.%s {
109
background-color: alpha(%s, 0.8);

data/gala.gresource.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<gresource prefix="/io/elementary/desktop/gala">
2424
<file compressed="true">shaders/colorblindness-correction.vert</file>
2525
<file compressed="true">shaders/monochrome.vert</file>
26+
<file compressed="true">shaders/rounded-corners.vert</file>
2627
</gresource>
2728
<gresource prefix="/io/elementary/desktop/gala-daemon">
2829
<file compressed="true">gala-daemon.css</file>

data/shaders/colorblindness-correction.vert

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,16 @@
88
uniform sampler2D tex;
99
uniform int COLORBLIND_MODE;
1010
uniform float STRENGTH;
11+
uniform bool PAUSE_FOR_SCREENSHOT;
12+
1113
void main() {
1214
vec4 c = texture2D(tex, cogl_tex_coord0_in.xy);
1315

16+
if (PAUSE_FOR_SCREENSHOT) {
17+
cogl_color_out = c;
18+
return;
19+
}
20+
1421
// RGB to LMS matrix
1522
float L = (17.8824f * c.r) + (43.5161f * c.g) + (4.11935f * c.b);
1623
float M = (3.45565f * c.r) + (27.1554f * c.g) + (3.86714f * c.b);

data/shaders/monochrome.vert

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,16 @@
55

66
uniform sampler2D tex;
77
uniform float STRENGTH;
8+
uniform bool PAUSE_FOR_SCREENSHOT;
9+
810
void main() {
9-
vec2 uv = cogl_tex_coord0_in.xy;
10-
vec4 sample = texture2D (tex, uv);
11+
vec4 sample = texture2D (tex, cogl_tex_coord0_in.xy);
12+
13+
if (PAUSE_FOR_SCREENSHOT) {
14+
cogl_color_out = sample;
15+
return;
16+
}
17+
1118
vec3 luminance = vec3 (0.2126, 0.7512, 0.0722);
1219
float gray = luminance.r * sample.r + luminance.g * sample.g + luminance.b * sample.b;
1320
cogl_color_out = vec4 (

data/shaders/rounded-corners.vert

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* Copyright 2025 elementary, Inc. <https://elementary.io>
3+
* SPDX-License-Identifier: LGPL-3.0-or-later
4+
*/
5+
6+
// based on shader from mutter
7+
8+
uniform sampler2D tex;
9+
uniform float clip_radius;
10+
uniform vec2 actor_size;
11+
12+
float rounded_rect_coverage (vec2 p) {
13+
float center_left = clip_radius + 1.5;
14+
float center_right = actor_size.x - clip_radius - 0.55;
15+
float center_x;
16+
17+
if (p.x < center_left)
18+
center_x = center_left;
19+
else if (p.x >= center_right)
20+
center_x = center_right;
21+
else
22+
return 1.0;
23+
24+
float center_top = clip_radius + 1.5;
25+
float center_bottom = actor_size.y - clip_radius - 0.55;
26+
float center_y;
27+
28+
if (p.y < center_top)
29+
center_y = center_top;
30+
else if (p.y > center_bottom)
31+
center_y = center_bottom;
32+
else
33+
return 1.0;
34+
35+
vec2 delta = p - vec2 (center_x, center_y);
36+
float dist_squared = dot (delta, delta);
37+
38+
// Fully outside the circle
39+
float outer_radius = clip_radius + 0.5;
40+
if (dist_squared > (outer_radius * outer_radius))
41+
return 0.0;
42+
43+
// Fully inside the circle
44+
float inner_radius = clip_radius - 0.5;
45+
if (dist_squared <= (inner_radius * inner_radius))
46+
return 1.0;
47+
48+
// Only pixels on the edge of the curve need expensive antialiasing
49+
return smoothstep (outer_radius, inner_radius, sqrt (dist_squared));
50+
}
51+
52+
void main () {
53+
vec4 sample = texture2D (tex, cogl_tex_coord0_in.xy);
54+
55+
vec2 texture_coord = cogl_tex_coord0_in.xy * actor_size;
56+
float res = rounded_rect_coverage (texture_coord);
57+
58+
cogl_color_out = sample * cogl_color_in * res;
59+
}

0 commit comments

Comments
 (0)