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

Comparing rxvt-unicode/src/command.C (file contents):
Revision 1.441 by root, Tue Mar 30 23:54:29 2010 UTC vs.
Revision 1.445 by sf-exg, Fri Apr 2 13:52:30 2010 UTC

198 198
199 int width = 0; 199 int width = 0;
200 fname = rxvt_temp_buf<wchar_t *> (len); 200 fname = rxvt_temp_buf<wchar_t *> (len);
201 for (int i = 0; i < len; i++) 201 for (int i = 0; i < len; i++)
202 { 202 {
203 rxvt_font *f = (*fs)[fs->find_font (chr[i])]; 203 rxvt_font *f = (*fs)[fs->find_font_idx (chr[i])];
204 fname[i] = rxvt_utf8towcs (f->name); 204 fname[i] = rxvt_utf8towcs (f->name);
205 max_it (width, wcswidth (fname[i], wcslen (fname[i]))); 205 max_it (width, wcswidth (fname[i], wcslen (fname[i])));
206 } 206 }
207 207
208 max_it (width, 8+5); // for char + hex 208 max_it (width, 8+5); // for char + hex
288} 288}
289 289
290static int 290static int
291hex_keyval (XKeyEvent &ev) 291hex_keyval (XKeyEvent &ev)
292{ 292{
293 // check wether this event corresponds to a hex digit 293 // check whether this event corresponds to a hex digit
294 // if the modifiers had not been pressed. 294 // if the modifiers had not been pressed.
295 for (int index = 0; index < 8; index++) 295 for (int index = 0; index < 8; index++)
296 { 296 {
297 KeySym k = XLookupKeysym (&ev, index); 297 KeySym k = XLookupKeysym (&ev, index);
298 298
421 * Always permit `shift' to override the current setting 421 * Always permit `shift' to override the current setting
422 */ 422 */
423 shft = ev.state & ShiftMask; 423 shft = ev.state & ShiftMask;
424 ctrl = ev.state & ControlMask; 424 ctrl = ev.state & ControlMask;
425 meta = ev.state & ModMetaMask; 425 meta = ev.state & ModMetaMask;
426
427 if (numlock_state || (ev.state & ModNumLockMask))
428 {
429 numlock_state = (ev.state & ModNumLockMask);
430 set_privmode (PrivMode_aplKP, !numlock_state);
431 }
432 426
433 kbuf[0] = 0; 427 kbuf[0] = 0;
434 428
435#ifdef USE_XIM 429#ifdef USE_XIM
436 if (Input_Context) 430 if (Input_Context)
653 if (keysym >= 0xFF00 && keysym <= 0xFFFF) 647 if (keysym >= 0xFF00 && keysym <= 0xFFFF)
654 { 648 {
655 bool kp = priv_modes & PrivMode_aplKP ? !shft : shft; 649 bool kp = priv_modes & PrivMode_aplKP ? !shft : shft;
656 unsigned int newlen = 1; 650 unsigned int newlen = 1;
657 651
652 if (ev.state & ModNumLockMask)
653 kp = false;
658 switch (translate_keypad (keysym, kp)) 654 switch (translate_keypad (keysym, kp))
659 { 655 {
660#ifndef NO_BACKSPACE_KEY 656#ifndef NO_BACKSPACE_KEY
661 case XK_BackSpace: 657 case XK_BackSpace:
662 if (priv_modes & PrivMode_HaveBackSpace) 658 if (priv_modes & PrivMode_HaveBackSpace)
1033 } 1029 }
1034 1030
1035 display->flush (); 1031 display->flush ();
1036} 1032}
1037 1033
1038/* checks wether a refresh is requested and starts the refresh timer */ 1034/* checks whether a refresh is requested and starts the refresh timer */
1039void 1035void
1040rxvt_term::refresh_check () 1036rxvt_term::refresh_check ()
1041{ 1037{
1042 if (want_refresh && !flush_ev.is_active ()) 1038 if (want_refresh && !flush_ev.is_active ())
1043 flush_ev.start (1. / 60.); // refresh at max. 60 Hz normally 1039 flush_ev.start (1. / 60.); // refresh at max. 60 Hz normally
1137 // this should really be sched_yield(), but the linux guys thought 1133 // this should really be sched_yield(), but the linux guys thought
1138 // that giving a process calling sched_yield () less cpu time than 1134 // that giving a process calling sched_yield () less cpu time than
1139 // ones with high nice levels is a useful thing to do. It surely is is 1135 // ones with high nice levels is a useful thing to do. It surely is is
1140 // allowed by the sus... as is returning ENOSYS. 1136 // allowed by the sus... as is returning ENOSYS.
1141 // since the linux guys additionally thought that breaking the only 1137 // since the linux guys additionally thought that breaking the only
1142 // known workaroudn against their unusable sched_yield hack is cool, 1138 // known workaround against their unusable sched_yield hack is cool,
1143 // we just nanosleep a bit and hope for the best. 1139 // we just nanosleep a bit and hope for the best.
1144 1140
1145 struct timespec ts = { 0, 1000 }; 1141 struct timespec ts = { 0, 1000 };
1146 nanosleep (&ts, 0); 1142 nanosleep (&ts, 0);
1147 1143

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines