Diff

Differences From Artifact [9d62f352b9]:

To Artifact [bc16bea20a]:


38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
38
39
40
41
42
43
44

45
46
47
48
49
50
51







-







#define IDM_SAVEDSESS 0x0150

#define IDM_SAVED_MIN 0x1000
#define IDM_SAVED_MAX 0x2000

#define WM_IGNORE_SIZE (WM_XUSER + 1)
#define WM_IGNORE_CLIP (WM_XUSER + 2)
#define WM_IGNORE_KEYMENU (WM_XUSER + 3)

static LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam, unsigned char *output);
static void cfgtopalette(void);
static void init_palette(void);
static void init_fonts(int);

951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
950
951
952
953
954
955
956

957
958
959
960
961
962
963







-







}

static LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
                                 WPARAM wParam, LPARAM lParam) {
    HDC hdc;
    static int ignore_size = FALSE;
    static int ignore_clip = FALSE;
    static int ignore_keymenu = TRUE;
    static int just_reconfigged = FALSE;
    static int resizing = FALSE;

    switch (message) {
      case WM_TIMER:
	if (pending_netevent)
	    enact_pending_netevent();
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
975
976
977
978
979
980
981




982
983
984
985
986
987
988







-
-
-
-







	    DestroyWindow(hwnd);
	return 0;
      case WM_DESTROY:
	PostQuitMessage (0);
	return 0;
      case WM_SYSCOMMAND:
	switch (wParam & ~0xF) {       /* low 4 bits reserved to Windows */
          case SC_KEYMENU:
            if (ignore_keymenu)
                return 0;              /* don't put up system menu on Alt */
            break;
	  case IDM_SHOWLOG:
	    showeventlog(hwnd);
	    break;
	  case IDM_NEWSESS:
	  case IDM_DUPSESS:
	  case IDM_SAVEDSESS:
	    {
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1204
1205
1206
1207
1208
1209
1210



1211
1212
1213
1214
1215
1216
1217







-
-
-







	    term_mouse (b, MA_DRAG, TO_CHR_X(X_POS(lParam)),
			TO_CHR_Y(Y_POS(lParam)));
	}
	return 0;
      case WM_IGNORE_CLIP:
	ignore_clip = wParam;	       /* don't panic on DESTROYCLIPBOARD */
	break;
      case WM_IGNORE_KEYMENU:
	ignore_keymenu = wParam;       /* do or don't ignore SC_KEYMENU */
	break;
      case WM_DESTROYCLIPBOARD:
	if (!ignore_clip)
	    term_deselect();
	ignore_clip = FALSE;
	return 0;
      case WM_PAINT:
	{
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1819
1820
1821
1822
1823
1824
1825

1826

1827
1828
1829
1830
1831
1832
1833







-

-







            return 0;
        }
	if (left_alt && wParam == VK_F4 && cfg.alt_f4) {
            return -1;
	}
	if (left_alt && wParam == VK_SPACE && cfg.alt_space) {
            
            SendMessage (hwnd, WM_IGNORE_KEYMENU, FALSE, 0);
            SendMessage (hwnd, WM_SYSCOMMAND, SC_KEYMENU, 0);
            SendMessage (hwnd, WM_IGNORE_KEYMENU, TRUE, 0);
            return -1;
	}

	/* Nethack keypad */
	if (cfg.nethack_keypad && !left_alt) {
	   switch(wParam) {
	       case VK_NUMPAD1: *p++ = shift_state ? 'B': 'b'; return p-output;
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2062
2063
2064
2065
2066
2067
2068

2069
2070
2071
2072
2073

2074
2075
2076
2077
2078
2079
2080







-





-







	    keys[0] = 0;

	    return p-output;
	}
    }

    /* This stops ALT press-release doing a 'COMMAND MENU' function */
#if 0
    if (message == WM_SYSKEYUP && wParam == VK_MENU) 
    {
	keystate[VK_MENU] = 0;
	return 0;
    }
#endif

    return -1;
}

void set_title (char *title) {
    sfree (window_name);
    window_name = smalloc(1+strlen(title));