summaryrefslogtreecommitdiffstats
path: root/swaybg
diff options
context:
space:
mode:
authorLibravatar Christoph Gysin <christoph.gysin@gmail.com>2015-11-25 21:07:34 +0200
committerLibravatar Christoph Gysin <christoph.gysin@gmail.com>2015-11-25 22:31:39 +0200
commit8630bc37524434096165acff5493eff399387df2 (patch)
tree89745b29083e0f8f9b29024b5153dbd3b496a153 /swaybg
parentswaybg: implement scaling mode "center" (diff)
downloadsway-8630bc37524434096165acff5493eff399387df2.tar.gz
sway-8630bc37524434096165acff5493eff399387df2.tar.zst
sway-8630bc37524434096165acff5493eff399387df2.zip
swaybg: implement scaling mode "tile"
Diffstat (limited to 'swaybg')
-rw-r--r--swaybg/main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/swaybg/main.c b/swaybg/main.c
index 481fdf9a..7cfe1320 100644
--- a/swaybg/main.c
+++ b/swaybg/main.c
@@ -16,6 +16,7 @@ enum scaling_mode_t {
16 SCALING_MODE_STRETCH, 16 SCALING_MODE_STRETCH,
17 SCALING_MODE_FILL, 17 SCALING_MODE_FILL,
18 SCALING_MODE_CENTER, 18 SCALING_MODE_CENTER,
19 SCALING_MODE_TILE,
19}; 20};
20 21
21void sway_terminate(void) { 22void sway_terminate(void) {
@@ -67,6 +68,8 @@ int main(int argc, const char **argv) {
67 scaling_mode = SCALING_MODE_FILL; 68 scaling_mode = SCALING_MODE_FILL;
68 } else if (strcmp(scaling_mode_str, "center") == 0) { 69 } else if (strcmp(scaling_mode_str, "center") == 0) {
69 scaling_mode = SCALING_MODE_CENTER; 70 scaling_mode = SCALING_MODE_CENTER;
71 } else if (strcmp(scaling_mode_str, "tile") == 0) {
72 scaling_mode = SCALING_MODE_TILE;
70 } else { 73 } else {
71 sway_abort("Unsupported scaling mode: %s", scaling_mode_str); 74 sway_abort("Unsupported scaling mode: %s", scaling_mode_str);
72 } 75 }
@@ -107,6 +110,13 @@ int main(int argc, const char **argv) {
107 (double) window->width/2 - width/2, 110 (double) window->width/2 - width/2,
108 (double) window->height/2 - height/2); 111 (double) window->height/2 - height/2);
109 break; 112 break;
113 case SCALING_MODE_TILE:
114 {
115 cairo_pattern_t *pattern = cairo_pattern_create_for_surface(image);
116 cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
117 cairo_set_source(window->cairo, pattern);
118 }
119 break;
110 default: 120 default:
111 sway_abort("Scaling mode '%s' not implemented yet!", scaling_mode_str); 121 sway_abort("Scaling mode '%s' not implemented yet!", scaling_mode_str);
112 } 122 }