Changeset 3868
- Timestamp:
- 2005年09月14日 19時52分51秒 (3 years ago)
- Files:
-
- trunk/src/ChangeLog.Meadow (modified) (1 diff)
- trunk/src/mw32fns.c (modified) (6 diffs)
- trunk/src/mw32ime.c (modified) (6 diffs)
- trunk/src/mw32term.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/ChangeLog.Meadow
r3863 r3868 1 2005-09-14 Kyotaro HORIGUCHI <horiguti@meadowy.org> 2 3 * mw32fns.c (mw32_WndProc<WM_EMACS_SETCARET>): Bug fix. Cope with 4 sudden switch of frame without WM_KILLFOCUS and occalsional 5 failure of ShowCaret (). 6 Fixed ticket:151 7 8 * mw32term.h (TOBESHOWN_CARET): Ditto, New symbol. 9 10 * mw32ime.c: Fix type of return values. 11 1 12 2005-09-10 MIYOSHI Masanori <miyoshi@meadowy.org> 2 13 trunk/src/mw32fns.c
r3816 r3868 2324 2324 static int last_cursor_width; 2325 2325 static int last_cursor_height; 2326 static struct frame *last_cursor_frame = NULL; 2326 2327 static HBITMAP last_bitmap; 2327 2328 struct window *w = XWINDOW (f->selected_window); 2328 2329 int count; 2329 2330 int caret_spec_changed = 0; 2331 2332 if (last_cursor_frame 2333 && last_cursor_frame != f 2334 && MW32_FRAME_CARET_STATE2 (last_cursor_frame) != NO_CARET) 2335 { 2336 /* Destroy caret in previous frame on sudden switch of 2337 message frame. */ 2338 DestroyCaret (); 2339 MW32_FRAME_CARET_STATE (last_cursor_frame) = NO_CARET; 2340 } 2341 last_cursor_frame = f; 2330 2342 2331 2343 if (last_phys_cursor_height != w->phys_cursor_height … … 2340 2352 w = XWINDOW (echo_area_window); 2341 2353 2342 if (f != FRAME_MW32_DISPLAY_INFO (f)->mw32_focus_frame || 2343 ! w->phys_cursor_on_p) 2354 /* Force to hide when defocused */ 2355 if (MW32_FRAME_CARET_STATE (f) != NO_CARET && 2356 (f != FRAME_MW32_DISPLAY_INFO (f)->mw32_focus_frame || 2357 ! w->phys_cursor_on_p )) 2344 2358 { 2345 2359 if (MW32_FRAME_CARET_BLOCKED (f) && wParam == UNBLOCK_CARET) … … 2351 2365 if (wParam == BLOCK_CARET) 2352 2366 { 2353 MW32_FRAME_CARET_BLOCKED (f) = 1; 2354 if (MW32_FRAME_CARET_SHOWN (f)) HideCaret (hwnd); 2367 MW32_FRAME_CARET_BLOCKED (f) = TRUE; 2368 2369 if (MW32_FRAME_CARET_STATE (f) == SHOWN_CARET) 2370 HideCaret (hwnd); 2371 else if (MW32_FRAME_CARET_STATE (f) == TOBESHOWN_CARET) 2372 MW32_FRAME_CARET_STATE (f) = SHOWN_CARET; 2373 2355 2374 break; 2356 2375 } … … 2358 2377 if (wParam == UNBLOCK_CARET) 2359 2378 { 2360 MW32_FRAME_CARET_BLOCKED (f) = 0; 2361 if (MW32_FRAME_CARET_SHOWN (f)) ShowCaret (hwnd); 2379 MW32_FRAME_CARET_BLOCKED (f) = FALSE; 2380 2381 if (MW32_FRAME_CARET_SHOWN (f) 2382 || MW32_FRAME_CARET_STATE (f) == TOBESHOWN_CARET) 2383 { 2384 if (ShowCaret (hwnd) == 0) 2385 MW32_FRAME_CARET_STATE (f) = TOBESHOWN_CARET; 2386 else 2387 MW32_FRAME_CARET_STATE (f) = SHOWN_CARET; 2388 } 2362 2389 break; 2363 2390 } … … 2389 2416 caret_height); 2390 2417 MW32_FRAME_CARET_STATE (f) = HIDDEN_CARET; 2391 MW32_FRAME_CARET_BLOCKED (f) = 0;2418 MW32_FRAME_CARET_BLOCKED (f) = FALSE; 2392 2419 last_phys_cursor_height = w->phys_cursor_height; 2393 2420 last_cursor_width = FRAME_CURSOR_WIDTH (f); … … 2399 2426 2400 2427 if (MW32_FRAME_CARET_SHOWN (f)) break; 2401 if (!MW32_FRAME_CARET_BLOCKED (f)) ShowCaret (hwnd);2402 2403 2428 MW32_FRAME_CARET_STATE (f) = SHOWN_CARET; 2429 if (! MW32_FRAME_CARET_BLOCKED (f)) 2430 { 2431 if (ShowCaret (hwnd) == 0) 2432 MW32_FRAME_CARET_STATE (f) = TOBESHOWN_CARET; 2433 } 2434 2404 2435 } 2405 2436 else 2406 2437 { 2407 if (! MW32_FRAME_CARET_SHOWN (f)) break; 2408 if (! MW32_FRAME_CARET_BLOCKED (f)) HideCaret (hwnd); 2409 2410 MW32_FRAME_CARET_STATE (f) = HIDDEN_CARET; 2438 if (MW32_FRAME_CARET_SHOWN (f)) 2439 { 2440 if (! MW32_FRAME_CARET_BLOCKED (f)) HideCaret (hwnd); 2441 MW32_FRAME_CARET_STATE (f) = HIDDEN_CARET; 2442 } 2411 2443 } 2412 2444 } trunk/src/mw32ime.c
r3801 r3868 109 109 (HIMC, DWORD, LPVOID, DWORD); 110 110 IMMGETCOMPOSITIONSTRINGPROC ImmGetCompositionStringProc; 111 typedef LONG(WINAPI *IMMSETCOMPOSITIONSTRINGPROC)111 typedef BOOL (WINAPI *IMMSETCOMPOSITIONSTRINGPROC) 112 112 (HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); 113 113 IMMSETCOMPOSITIONSTRINGPROC ImmSetCompositionStringProc; … … 120 120 typedef BOOL (WINAPI *IMMSETCONVERSIONSTATUSPROC)(HIMC, DWORD, DWORD); 121 121 IMMSETCONVERSIONSTATUSPROC ImmSetConversionStatusProc; 122 typedef BOOL(WINAPI *IMMGETCONVERSIONLISTPROC)122 typedef DWORD (WINAPI *IMMGETCONVERSIONLISTPROC) 123 123 (HKL, HIMC, LPCTSTR, LPCANDIDATELIST, DWORD, UINT); 124 124 IMMGETCONVERSIONLISTPROC ImmGetConversionListProc; … … 133 133 typedef BOOL (WINAPI *IMMDESTROYCONTEXTPROC)(HIMC); 134 134 IMMDESTROYCONTEXTPROC ImmDestroyContextProc; 135 typedef BOOL(WINAPI *IMMASSOCIATECONTEXTPROC) (HWND, HIMC);135 typedef HIMC (WINAPI *IMMASSOCIATECONTEXTPROC) (HWND, HIMC); 136 136 IMMASSOCIATECONTEXTPROC ImmAssociateContextProc; 137 typedef BOOL(WINAPI *IMMGETCANDIDATELISTPROC)137 typedef DWORD (WINAPI *IMMGETCANDIDATELISTPROC) 138 138 (HIMC, DWORD, LPCANDIDATELIST, DWORD); 139 139 IMMGETCANDIDATELISTPROC ImmGetCandidateListProc; 140 typedef BOOL(WINAPI *IMMGETCANDIDATELISTCOUNTPROC) (HIMC, LPDWORD);140 typedef DWORD (WINAPI *IMMGETCANDIDATELISTCOUNTPROC) (HIMC, LPDWORD); 141 141 IMMGETCANDIDATELISTCOUNTPROC ImmGetCandidateListCountProc; 142 typedef BOOL(WINAPI *IMMGETHOTKEYPROC)(DWORD , LPUINT, LPUINT, LPHKL);142 typedef DWORD (WINAPI *IMMGETHOTKEYPROC)(DWORD , LPUINT, LPUINT, LPHKL); 143 143 IMMGETHOTKEYPROC ImmGetHotKeyProc; 144 144 … … 540 540 return agent[XFASTINT (context)].himc; 541 541 else 542 return (( ((unsigned long) (XCONS (context)->car)) << 16) |543 (((unsigned long) (XCONS (context)->cdr)) & 0xffff));542 return ((HIMC)((((unsigned long) (XCONS (context)->car)) << 16) | 543 (((unsigned long) (XCONS (context)->cdr)) & 0xffff))); 544 544 } 545 545 … … 555 555 himc = (ImmCreateContextProc) (); 556 556 holdimc = (ImmAssociateContextProc) (hwnd, himc); 557 SetWindowLong (hwnd, 0, himc);558 SetWindowLong (hwnd, 4, holdimc);557 SetWindowLong (hwnd, 0, (LONG)himc); 558 SetWindowLong (hwnd, 4, (LONG)holdimc); 559 559 break; 560 560 561 561 case WM_DESTROY: 562 holdimc = GetWindowLong (hwnd, 4);562 holdimc = (HIMC)GetWindowLong (hwnd, 4); 563 563 himc = (ImmAssociateContextProc) (hwnd, holdimc); 564 564 (ImmDestroyContextProc) (himc); … … 1091 1091 hwnd = (HWND) msg.wParam; 1092 1092 agent[i].hwnd = hwnd; 1093 agent[i].himc = GetWindowLong (hwnd, 0);1093 agent[i].himc = (HIMC)GetWindowLong (hwnd, 0); 1094 1094 1095 1095 /* ShowWindow (hwnd, SW_SHOW); */ trunk/src/mw32term.h
r3801 r3868 43 43 BLOCK_CARET, /* (NOT STATUS) lock caret to be hidden */ 44 44 HIDDEN_CARET, /* system caret is not shown */ 45 TOBESHOWN_CARET, /* system caret is not shown but to be shown */ 45 46 SHOWN_CARET, /* system caret is sohwn */ 46 47 UNBLOCK_CARET /* (NOT STATUS) unlock blocked state of caret */
