MCPcopy Create free account
hub / github.com/NetHack/NetHack / ec_key

Function ec_key

win/X11/winmisc.c:1792–1902  ·  view source on GitHub ↗

ARGSUSED */

Source from the content-addressed store, hash-verified

1790
1791/* ARGSUSED */
1792void
1793ec_key(Widget w, XEvent *event, String *params, Cardinal *num_params)
1794{
1795 char ch;
1796 int i, pass;
1797 float shown, top;
1798 Arg arg[2];
1799 Widget hbar, vbar;
1800 XKeyEvent *xkey = (XKeyEvent *) event;
1801
1802 nhUse(params);
1803 nhUse(num_params);
1804
1805 ch = key_event_to_char(xkey);
1806
1807 if (ch == '\0') { /* don't accept nul char/modifier event */
1808 /* don't beep */
1809 return;
1810 } else if (ch == '?') {
1811 extend_help((Widget) 0, (XtPointer) 0, (XtPointer) 0);
1812 return;
1813 } else if (strchr("\033\n\r", ch)) {
1814 if (ch == '\033') {
1815 /* unselect while still visible */
1816 if (extended_cmd_selected >= 0)
1817 swap_fg_bg(extended_commands[extended_cmd_selected]);
1818 extended_cmd_selected = -1; /* dismiss */
1819 }
1820
1821 nh_XtPopdown(extended_command_popup);
1822 /* unselect while invisible */
1823 if (extended_cmd_selected >= 0)
1824 swap_fg_bg(extended_commands[extended_cmd_selected]);
1825
1826 exit_x_event = TRUE; /* leave event loop */
1827 ec_active = FALSE;
1828 return;
1829 } else if (ch == MENU_FIRST_PAGE || ch == MENU_LAST_PAGE) {
1830 find_scrollbars(w, (Widget) 0, &hbar, &vbar);
1831 if (vbar) {
1832 top = (ch == MENU_FIRST_PAGE) ? 0.0 : 1.0;
1833 XtCallCallbacks(vbar, XtNjumpProc, &top);
1834 }
1835 return;
1836 } else if (ch == MENU_NEXT_PAGE || ch == MENU_PREVIOUS_PAGE) {
1837 find_scrollbars(w, (Widget) 0, &hbar, &vbar);
1838 if (vbar) {
1839 XtSetArg(arg[0], nhStr(XtNshown), &shown);
1840 XtSetArg(arg[1], nhStr(XtNtopOfThumb), &top);
1841 XtGetValues(vbar, arg, TWO);
1842 top += ((ch == MENU_NEXT_PAGE) ? shown : -shown);
1843 XtCallCallbacks(vbar, XtNjumpProc, &top);
1844 }
1845 return;
1846 }
1847
1848 /*
1849 * If too much time has elapsed, treat current key as starting a new

Callers

nothing calls this directly

Calls 6

key_event_to_charFunction · 0.85
extend_helpFunction · 0.85
swap_fg_bgFunction · 0.85
nh_XtPopdownFunction · 0.85
find_scrollbarsFunction · 0.85
ec_scroll_to_viewFunction · 0.85

Tested by

no test coverage detected