… | |
… | |
201 | x = y = 0; |
201 | x = y = 0; |
202 | geom_flags = WidthValue|HeightValue|XValue|YValue; |
202 | geom_flags = WidthValue|HeightValue|XValue|YValue; |
203 | } |
203 | } |
204 | else if (!strcasecmp (arr[i], "style=aspect-stretched")) |
204 | else if (!strcasecmp (arr[i], "style=aspect-stretched")) |
205 | { |
205 | { |
206 | new_flags = BG_PROP_SCALE; |
206 | new_flags = BG_KEEP_ASPECT; |
207 | w = h = windowScale; |
207 | w = h = windowScale; |
208 | x = y = centerAlign; |
208 | x = y = centerAlign; |
209 | geom_flags = WidthValue|HeightValue|XValue|YValue; |
209 | geom_flags = WidthValue|HeightValue|XValue|YValue; |
210 | } |
210 | } |
211 | else if (!strcasecmp (arr[i], "style=stretched")) |
211 | else if (!strcasecmp (arr[i], "style=stretched")) |
… | |
… | |
227 | w = h = noScale; |
227 | w = h = noScale; |
228 | geom_flags = WidthValue|HeightValue; |
228 | geom_flags = WidthValue|HeightValue; |
229 | } |
229 | } |
230 | else if (!strcasecmp (arr[i], "op=tile")) |
230 | else if (!strcasecmp (arr[i], "op=tile")) |
231 | new_flags |= BG_TILE; |
231 | new_flags |= BG_TILE; |
232 | else if (!strcasecmp (arr[i], "op=pscale")) |
232 | else if (!strcasecmp (arr[i], "op=keep-aspect")) |
233 | new_flags |= BG_PROP_SCALE; |
233 | new_flags |= BG_KEEP_ASPECT; |
234 | else if (!strcasecmp (arr[i], "op=root")) |
234 | else if (!strcasecmp (arr[i], "op=root-align")) |
235 | new_flags |= BG_ROOT_ALIGN; |
235 | new_flags |= BG_ROOT_ALIGN; |
236 | |
236 | |
237 | // deprecated |
237 | // deprecated |
238 | else if (!strcasecmp (arr[i], "tile")) |
238 | else if (!strcasecmp (arr[i], "tile")) |
239 | { |
239 | { |
… | |
… | |
241 | w = h = noScale; |
241 | w = h = noScale; |
242 | geom_flags |= WidthValue|HeightValue; |
242 | geom_flags |= WidthValue|HeightValue; |
243 | } |
243 | } |
244 | else if (!strcasecmp (arr[i], "propscale")) |
244 | else if (!strcasecmp (arr[i], "propscale")) |
245 | { |
245 | { |
246 | new_flags |= BG_PROP_SCALE; |
246 | new_flags |= BG_KEEP_ASPECT; |
|
|
247 | w = h = windowScale; |
|
|
248 | geom_flags |= WidthValue|HeightValue; |
247 | } |
249 | } |
248 | else if (!strcasecmp (arr[i], "hscale")) |
250 | else if (!strcasecmp (arr[i], "hscale")) |
249 | { |
251 | { |
250 | new_flags |= BG_TILE; |
252 | new_flags |= BG_TILE; |
251 | w = windowScale; |
253 | w = windowScale; |
… | |
… | |
322 | int target_height = szHint.height; |
324 | int target_height = szHint.height; |
323 | |
325 | |
324 | w = h_scale * target_width / 100; |
326 | w = h_scale * target_width / 100; |
325 | h = v_scale * target_height / 100; |
327 | h = v_scale * target_height / 100; |
326 | |
328 | |
327 | if (bg_flags & BG_PROP_SCALE) |
329 | if (bg_flags & BG_KEEP_ASPECT) |
328 | { |
330 | { |
329 | float scale = (float)w / image_width; |
331 | float scale = (float)w / image_width; |
330 | min_it (scale, (float)h / image_height); |
332 | min_it (scale, (float)h / image_height); |
331 | w = image_width * scale + 0.5; |
333 | w = image_width * scale + 0.5; |
332 | h = image_height * scale + 0.5; |
334 | h = image_height * scale + 0.5; |
… | |
… | |
1275 | bg_pmap_width = window_width; |
1277 | bg_pmap_width = window_width; |
1276 | bg_pmap_height = window_height; |
1278 | bg_pmap_height = window_height; |
1277 | } |
1279 | } |
1278 | |
1280 | |
1279 | /* straightforward pixmap copy */ |
1281 | /* straightforward pixmap copy */ |
1280 | while (sx < 0) sx += root_width; |
1282 | while (sx < 0) sx += root_pmap_width; |
1281 | while (sy < 0) sy += root_height; |
1283 | while (sy < 0) sy += root_pmap_height; |
1282 | |
1284 | |
1283 | gcv.tile = recoded_root_pmap; |
1285 | gcv.tile = recoded_root_pmap; |
1284 | gcv.fill_style = FillTiled; |
1286 | gcv.fill_style = FillTiled; |
1285 | gcv.ts_x_origin = -sx; |
1287 | gcv.ts_x_origin = -sx; |
1286 | gcv.ts_y_origin = -sy; |
1288 | gcv.ts_y_origin = -sy; |