ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/background.C
(Generate patch)

Comparing rxvt-unicode/src/background.C (file contents):
Revision 1.202 by sf-exg, Sat Feb 25 22:20:47 2012 UTC vs.
Revision 1.204 by sf-exg, Tue Apr 10 15:19:22 2012 UTC

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
348bool 349bool
349rxvt_term::pixbuf_to_pixmap (GdkPixbuf *pixbuf, Pixmap pixmap, GC gc, 350rxvt_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
688void 689void
689rxvt_term::set_tint_shade_flags () 690rxvt_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
698bool
699rxvt_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
710bool
711rxvt_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;
831bool 829bool
832rxvt_term::tint_pixmap (Pixmap pixmap, Visual *visual, int width, int height) 830rxvt_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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines