… | |
… | |
334 | { |
334 | { |
335 | x = make_align_position (h_align, target_width, w); |
335 | x = make_align_position (h_align, target_width, w); |
336 | y = make_align_position (v_align, target_height, h); |
336 | y = make_align_position (v_align, target_height, h); |
337 | } |
337 | } |
338 | |
338 | |
339 | bg_flags &= ~BG_IS_SIZE_SENSITIVE; |
|
|
340 | if (!(bg_flags & BG_TILE) |
339 | if (!(bg_flags & BG_TILE) |
341 | || h_scale || v_scale |
340 | || h_scale || v_scale |
342 | || (!(bg_flags & BG_ROOT_ALIGN) && (h_align || v_align)) |
341 | || (!(bg_flags & BG_ROOT_ALIGN) && (h_align || v_align)) |
343 | || w > target_width || h > target_height) |
342 | || image_width > target_width || image_height > target_height) |
344 | bg_flags |= BG_IS_SIZE_SENSITIVE; |
343 | bg_flags |= BG_IS_SIZE_SENSITIVE; |
|
|
344 | else |
|
|
345 | bg_flags &= ~BG_IS_SIZE_SENSITIVE; |
345 | } |
346 | } |
346 | |
347 | |
347 | # ifdef HAVE_PIXBUF |
348 | # ifdef HAVE_PIXBUF |
348 | bool |
349 | bool |
349 | rxvt_term::pixbuf_to_pixmap (GdkPixbuf *pixbuf, Pixmap pixmap, GC gc, |
350 | rxvt_term::pixbuf_to_pixmap (GdkPixbuf *pixbuf, Pixmap pixmap, GC gc, |
… | |
… | |
675 | { |
676 | { |
676 | changed = true; |
677 | changed = true; |
677 | v_blurRadius = vr; |
678 | v_blurRadius = vr; |
678 | } |
679 | } |
679 | |
680 | |
680 | if (h_blurRadius == 0 || v_blurRadius == 0) |
681 | if (h_blurRadius && v_blurRadius) |
|
|
682 | bg_flags |= BG_NEEDS_BLUR; |
|
|
683 | else |
681 | bg_flags &= ~BG_NEEDS_BLUR; |
684 | bg_flags &= ~BG_NEEDS_BLUR; |
682 | else |
|
|
683 | bg_flags |= BG_NEEDS_BLUR; |
|
|
684 | |
685 | |
685 | return changed; |
686 | return changed; |
686 | } |
687 | } |
687 | |
688 | |
688 | void |
689 | void |
689 | rxvt_term::set_tint_shade_flags () |
690 | rxvt_term::set_tint_shade_flags () |
690 | { |
691 | { |
|
|
692 | if (shade != 100 || (bg_flags & BG_TINT_SET)) |
|
|
693 | bg_flags |= BG_NEEDS_TINT; |
|
|
694 | else |
|
|
695 | bg_flags &= ~BG_NEEDS_TINT; |
|
|
696 | } |
|
|
697 | |
|
|
698 | bool |
|
|
699 | rxvt_term::bg_set_tint (rxvt_color &new_tint) |
|
|
700 | { |
|
|
701 | if (!(bg_flags & BG_TINT_SET) || tint != new_tint) |
|
|
702 | { |
|
|
703 | tint = new_tint; |
|
|
704 | bg_flags |= BG_TINT_SET; |
|
|
705 | |
691 | rgba c; |
706 | rgba c; |
692 | bool has_shade = shade != 100; |
|
|
693 | |
|
|
694 | bg_flags &= ~BG_TINT_FLAGS; |
|
|
695 | |
|
|
696 | if (bg_flags & BG_TINT_SET) |
|
|
697 | { |
|
|
698 | tint.get (c); |
707 | tint.get (c); |
699 | if (!has_shade |
|
|
700 | && (c.r <= 0x00ff || c.r >= 0xff00) |
708 | if ((c.r <= 0x00ff || c.r >= 0xff00) |
701 | && (c.g <= 0x00ff || c.g >= 0xff00) |
709 | && (c.g <= 0x00ff || c.g >= 0xff00) |
702 | && (c.b <= 0x00ff || c.b >= 0xff00)) |
710 | && (c.b <= 0x00ff || c.b >= 0xff00)) |
703 | bg_flags |= BG_TINT_BITAND; |
711 | bg_flags |= BG_TINT_BITAND; |
704 | } |
712 | else |
705 | |
|
|
706 | if (has_shade || (bg_flags & BG_TINT_SET)) |
|
|
707 | bg_flags |= BG_NEEDS_TINT; |
|
|
708 | } |
|
|
709 | |
|
|
710 | bool |
|
|
711 | rxvt_term::bg_set_tint (rxvt_color &new_tint) |
|
|
712 | { |
|
|
713 | if (!(bg_flags & BG_TINT_SET) || tint != new_tint) |
|
|
714 | { |
|
|
715 | tint = new_tint; |
|
|
716 | bg_flags |= BG_TINT_SET; |
713 | bg_flags &= ~BG_TINT_BITAND; |
|
|
714 | |
717 | set_tint_shade_flags (); |
715 | set_tint_shade_flags (); |
718 | return true; |
716 | return true; |
719 | } |
717 | } |
720 | |
718 | |
721 | return false; |
719 | return false; |
… | |
… | |
831 | bool |
829 | bool |
832 | rxvt_term::tint_pixmap (Pixmap pixmap, Visual *visual, int width, int height) |
830 | rxvt_term::tint_pixmap (Pixmap pixmap, Visual *visual, int width, int height) |
833 | { |
831 | { |
834 | bool ret = false; |
832 | bool ret = false; |
835 | |
833 | |
836 | if (bg_flags & BG_TINT_BITAND) |
834 | if (shade == 100 && (bg_flags & BG_TINT_BITAND)) |
837 | { |
835 | { |
838 | XGCValues gcv; |
836 | XGCValues gcv; |
839 | GC gc; |
837 | GC gc; |
840 | |
838 | |
841 | /* In this case we can tint image server-side getting significant |
839 | /* In this case we can tint image server-side getting significant |