1 | /*--------------------------------*-C-*---------------------------------* |
1 | /*--------------------------------*-C-*---------------------------------* |
2 | * File: command.c |
2 | * File: command.c |
3 | *----------------------------------------------------------------------* |
3 | *----------------------------------------------------------------------* |
4 | * $Id: command.C,v 1.22 2003/12/18 13:33:02 pcg Exp $ |
4 | * $Id: command.C,v 1.26 2003/12/24 06:26:52 pcg Exp $ |
5 | * |
5 | * |
6 | * All portions of code are copyright by their respective author/s. |
6 | * All portions of code are copyright by their respective author/s. |
7 | * Copyright (c) 1992 John Bovey, University of Kent at Canterbury <jdb@ukc.ac.uk> |
7 | * Copyright (c) 1992 John Bovey, University of Kent at Canterbury <jdb@ukc.ac.uk> |
8 | * - original version |
8 | * - original version |
9 | * Copyright (c) 1994 Robert Nation <nation@rocket.sanders.lockheed.com> |
9 | * Copyright (c) 1994 Robert Nation <nation@rocket.sanders.lockheed.com> |
… | |
… | |
64 | KeySym keysym; |
64 | KeySym keysym; |
65 | #ifdef DEBUG_CMD |
65 | #ifdef DEBUG_CMD |
66 | static int debug_key = 1; /* accessible by a debugger only */ |
66 | static int debug_key = 1; /* accessible by a debugger only */ |
67 | #endif |
67 | #endif |
68 | int valid_keysym; |
68 | int valid_keysym; |
69 | unsigned char *kbuf = R->kbuf; |
69 | unsigned char kbuf[KBUFSZ]; |
70 | |
70 | |
71 | /* |
71 | /* |
72 | * use Num_Lock to toggle Keypad on/off. If Num_Lock is off, allow an |
72 | * use Num_Lock to toggle Keypad on/off. If Num_Lock is off, allow an |
73 | * escape sequence to toggle the Keypad. |
73 | * escape sequence to toggle the Keypad. |
74 | * |
74 | * |
… | |
… | |
90 | if (R->Input_Context) |
90 | if (R->Input_Context) |
91 | { |
91 | { |
92 | Status status_return; |
92 | Status status_return; |
93 | |
93 | |
94 | #ifdef X_HAVE_UTF8_STRING |
94 | #ifdef X_HAVE_UTF8_STRING |
95 | if (R->enc_utf8) |
95 | if (R->enc_utf8 && 0) |
96 | len = Xutf8LookupString (R->Input_Context, ev, (char *)kbuf, |
96 | len = Xutf8LookupString (R->Input_Context, ev, (char *)kbuf, |
97 | KBUFSZ, &keysym, &status_return); |
97 | KBUFSZ, &keysym, &status_return); |
98 | else |
98 | else |
99 | #endif |
99 | #endif |
100 | { |
100 | { |
… | |
… | |
635 | for (i = 0, p = kbuf; i < len; i++, p++) |
635 | for (i = 0, p = kbuf; i < len; i++, p++) |
636 | fprintf(stderr, (*p >= ' ' && *p < '\177' ? "%c" : "\\%03o"), *p); |
636 | fprintf(stderr, (*p >= ' ' && *p < '\177' ? "%c" : "\\%03o"), *p); |
637 | fprintf(stderr, "'\n"); |
637 | fprintf(stderr, "'\n"); |
638 | } |
638 | } |
639 | #endif /* DEBUG_CMD */ |
639 | #endif /* DEBUG_CMD */ |
640 | R->tt_write(kbuf, (unsigned int)len); |
640 | R->tt_write (kbuf, (unsigned int)len); |
641 | } |
641 | } |
642 | /*}}} */ |
642 | /*}}} */ |
643 | |
643 | |
644 | #if (MENUBAR_MAX) |
644 | #if (MENUBAR_MAX) |
645 | /*{{{ rxvt_cmd_write(), rxvt_cmd_getc() */ |
645 | /*{{{ rxvt_cmd_write(), rxvt_cmd_getc() */ |
… | |
… | |
695 | rxvt_IMSendSpot (this); |
695 | rxvt_IMSendSpot (this); |
696 | #endif |
696 | #endif |
697 | } |
697 | } |
698 | |
698 | |
699 | XFlush (Xdisplay); |
699 | XFlush (Xdisplay); |
700 | #if 0 |
|
|
701 | if (XPending (Xdisplay)) process_x_events (); |
|
|
702 | if (XPending (Xdisplay)) process_x_events (); |
|
|
703 | #endif |
|
|
704 | } |
700 | } |
705 | |
701 | |
706 | void |
702 | void |
707 | rxvt_term::check_cb (check_watcher &w) |
703 | rxvt_term::check_cb (check_watcher &w) |
708 | { |
704 | { |
… | |
… | |
1530 | |
1526 | |
1531 | /* INTPROTO */ |
1527 | /* INTPROTO */ |
1532 | void |
1528 | void |
1533 | rxvt_button_press(pR_ XButtonEvent *ev) |
1529 | rxvt_button_press(pR_ XButtonEvent *ev) |
1534 | { |
1530 | { |
1535 | int reportmode = 0, clickintime; |
1531 | int reportmode = 0, clickintime; |
1536 | |
1532 | |
1537 | R->bypass_keystate = ev->state & (R->ModMetaMask | ShiftMask); |
1533 | R->bypass_keystate = ev->state & (R->ModMetaMask | ShiftMask); |
1538 | if (!R->bypass_keystate) |
1534 | if (!R->bypass_keystate) |
1539 | reportmode = !!(R->PrivateModes & PrivMode_mouse_report); |
1535 | reportmode = !!(R->PrivateModes & PrivMode_mouse_report); |
1540 | /* |
1536 | /* |
… | |
… | |
1588 | R->MEvent.clicks = 0; |
1584 | R->MEvent.clicks = 0; |
1589 | switch (ev->button) |
1585 | switch (ev->button) |
1590 | { |
1586 | { |
1591 | case Button1: |
1587 | case Button1: |
1592 | /* allow shift+left click to extend selection */ |
1588 | /* allow shift+left click to extend selection */ |
1593 | if (ev->state & ShiftMask) |
1589 | if (ev->state & ShiftMask && !(R->PrivateModes & PrivMode_mouse_report)) |
1594 | { |
1590 | { |
1595 | if (R->MEvent.button == Button1 && clickintime) |
1591 | if (R->MEvent.button == Button1 && clickintime) |
1596 | R->selection_rotate (ev->x, ev->y); |
1592 | R->selection_rotate (ev->x, ev->y); |
1597 | else |
1593 | else |
1598 | R->selection_extend (ev->x, ev->y, 1); |
1594 | R->selection_extend (ev->x, ev->y, 1); |