#include "version.h"
#include "command.h"
+#ifdef KEYSYM_RESOURCE
+# include "keyboard.h"
+#endif
+
#include <cwchar>
#include <csignal>
if (valid_keysym)
{
+#ifdef KEYSYM_RESOURCE
+ if (keyboard->dispatch (this, keysym, ev.state))
+ return;
+#endif
+
if (TermWin.saveLines)
{
#ifdef UNSHIFTED_SCROLLKEYS
if (keysym >= 0xFF00 && keysym <= 0xFFFF)
{
-#ifdef KEYSYM_RESOURCE
- if (!(shft | ctrl) && Keysym_map[keysym & 0xFF] != NULL)
- {
- unsigned int l;
- const unsigned char *kbuf0;
-
- kbuf0 = (Keysym_map[keysym & 0xFF]);
- l = (unsigned int)*kbuf0++;
-
- /* escape prefix */
- if (meta
-# ifdef META8_OPTION
- && meta_char == C0_ESC
-# endif
- )
- {
- const unsigned char ch = C0_ESC;
- tt_write (&ch, 1);
- }
-
- tt_write (kbuf0, l);
- return;
- }
- else
-#endif
{
newlen = 1;
switch (keysym)
break;
#undef FKEY
default:
- if (len == 0
- && (keysym & 0xfff0) != 0xff70
- && (keysym & 0xfff0) != 0xffe0)
- /* generate a keycode for every remaining keypress */
- sprintf ((char *)kbuf, "\033[%x;%xA", (unsigned char)ev.state, (unsigned short)keysym);
+ newlen = 0;
+ break;
}
if (newlen)
strcpy (kbuf, "\033[Z");
len = 3;
}
- else if (len == 0
- && (keysym & 0xffe0) != 0xfe00
- && (keysym < 0xfe50 || keysym > 0xfe6f))
- {
- /* generate a keycode for every remaining keypress */
- len = sprintf ((char *)kbuf, "\033[%x;%xA", (unsigned char)ev.state, (unsigned short)keysym);
- }
else
{
#ifdef META8_OPTION
}
/*}}} */
-#if (MENUBAR_MAX)
+#if MENUBAR_MAX || defined (KEYSYM_RESOURCE)
/*{{{ rxvt_cmd_write (), rxvt_cmd_getc () */
/* attempt to `write' count to the input buffer */
unsigned int
return 0;
}
-#endif /* MENUBAR_MAX */
+#endif
void
rxvt_term::flush ()
|| mouse_slip_wheel_speed < 0 ? scr_page (DN, -mouse_slip_wheel_speed)
: scr_page (UP, mouse_slip_wheel_speed))
{
+ if (TermWin.view_start == TermWin.nscrolled ||
+ TermWin.view_start == 0)
+ mouse_slip_wheel_speed = 0;
+
refresh_type |= SMOOTH_REFRESH;
want_refresh = 1;
w.start (w.at + SCROLLBAR_CONTINUOUS_DELAY);
if (! (options & Opt_pointerBlank))
return;
- XDefineCursor (display->display, TermWin.vt, blank_cursor);
+ XDefineCursor (display->display, TermWin.vt, display->blank_cursor);
XFlush (display->display);
hidden_pointer = 1;
/* allow meta + click to select rectangular areas */
/* should be done in screen.C */
#if ENABLE_FRILLS
- selection.rect = !! (ev.state & ModMetaMask);
+ selection.rect = !!(ev.state & ModMetaMask);
#else
selection.rect = false;
#endif
else
{
set_locale (str);
+ pty.set_utf8_mode (enc_utf8);
# ifdef USE_XIM
im_cb ();
# endif