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

Comparing rxvt-unicode/src/rxvttoolkit.C (file contents):
Revision 1.15 by root, Wed Jul 13 00:51:25 2005 UTC vs.
Revision 1.21 by root, Sun Jan 8 07:55:36 2006 UTC

150 { 150 {
151 val = rxvt_malloc (5 + strlen (id) + 1); 151 val = rxvt_malloc (5 + strlen (id) + 1);
152 strcpy (val, "unix/"); 152 strcpy (val, "unix/");
153 strcat (val, id); 153 strcat (val, id);
154 display = XOpenDisplay (val); 154 display = XOpenDisplay (val);
155 printf ("OD %s => %p\n", val, display);//D
156 free (val); 155 free (val);
157 } 156 }
158 else 157 else
159#endif 158#endif
160 display = 0; 159 display = 0;
161 160
162 if (!display) 161 if (!display)
163 display = XOpenDisplay (id); 162 display = XOpenDisplay (id);
164 printf ("O2 %s => %p\n", id, display);//D
165 163
166 if (!display) 164 if (!display)
167 return false; 165 return false;
168 166
169 screen = DefaultScreen (display); 167 screen = DefaultScreen (display);
173 depth = DefaultDepth (display, screen); 171 depth = DefaultDepth (display, screen);
174 172
175 int fd = XConnectionNumber (display); 173 int fd = XConnectionNumber (display);
176 174
177#ifndef NO_SLOW_LINK_SUPPORT 175#ifndef NO_SLOW_LINK_SUPPORT
178 // try to detetc wether we have a local connection. 176 // try to detect wether we have a local connection.
179 // assume unix domains socket == local, everything else not 177 // assume unix domains socket == local, everything else not
180 // TODO: might want to check for inet/127.0.0.1 178 // TODO: might want to check for inet/127.0.0.1
181 is_local = 0; 179 is_local = 0;
182 sockaddr_un sa; 180 sockaddr_un sa;
183 socklen_t sl = sizeof (sa); 181 socklen_t sl = sizeof (sa);
229 return true; 227 return true;
230} 228}
231 229
232rxvt_display::~rxvt_display () 230rxvt_display::~rxvt_display ()
233{ 231{
232#ifdef POINTER_BLANK
233 XFreeCursor (display, blank_cursor);
234#endif
234 x_ev.stop (); 235 x_ev.stop ();
235#ifdef USE_XIM 236#ifdef USE_XIM
236 xims.clear (); 237 xims.clear ();
237#endif 238#endif
238 239
281 XNextEvent (display, &xev); 282 XNextEvent (display, &xev);
282 283
283#ifdef USE_XIM 284#ifdef USE_XIM
284 if (!XFilterEvent (&xev, None)) 285 if (!XFilterEvent (&xev, None))
285 { 286 {
286
287 if (xev.type == PropertyNotify 287 if (xev.type == PropertyNotify
288 && xev.xany.window == root 288 && xev.xany.window == root
289 && xev.xproperty.atom == xa_xim_servers) 289 && xev.xproperty.atom == xa_xim_servers)
290 im_change_check (); 290 im_change_check ();
291#endif 291#endif
476} 476}
477 477
478rxvt_color 478rxvt_color
479rxvt_color::fade (rxvt_display *display, int percent) 479rxvt_color::fade (rxvt_display *display, int percent)
480{ 480{
481 percent = 100 - percent;
482
481 unsigned short cr, cg, cb; 483 unsigned short cr, cg, cb;
482 rxvt_color faded; 484 rxvt_color faded;
483 485
484 get (display, cr, cg, cb); 486 get (display, cr, cg, cb);
487
485 faded.set (display, 488 faded.set (
489 display,
486 cr * percent / 100, 490 cr * percent / 100,
487 cg * percent / 100, 491 cg * percent / 100,
488 cb * percent / 100); 492 cb * percent / 100
493 );
489 494
490 return faded; 495 return faded;
491} 496}
492 497
498#define LERP(a,b,p) (a * p + b * (100 - p)) / 100
499
500rxvt_color
501rxvt_color::fade (rxvt_display *display, int percent, rxvt_color &fadeto)
502{
503 percent = 100 - percent;
504
505 unsigned short cr, cg, cb;
506 unsigned short fcr, fcg, fcb;
507 rxvt_color faded;
508
509 get (display, cr, cg, cb);
510 fadeto.get(display, fcr, fcg, fcb);
511
512 faded.set (
513 display,
514 LERP (cr, fcr, percent),
515 LERP (cg, fcg, percent),
516 LERP (cb, fcb, percent)
517 );
518
519 return faded;
520}
521

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines