• R/O
  • SSH
  • HTTPS

q2ch: 提交


Commit MetaInfo

修訂2650 (tree)
時間2010-05-02 05:17:23
作者ystm

Log Message

* nEdit.cpp (caret_point_to_caret): 名前行、日付行のテキスト選択時、選択開始が実際のクリック位置とずれていたので修正
WM_LBUTTONDOWNメッセージハンドル時にコンテキストメニュー用の処理を追加

Change Summary

差異

--- q2chwm/trunk/q2chwm/nEdit.cpp (revision 2649)
+++ q2chwm/trunk/q2chwm/nEdit.cpp (revision 2650)
@@ -1757,8 +1757,9 @@
17571757
17581758 // q2ch拡張
17591759 // 色変更のための拡張文字を考慮
1760- if (VISIBLECHAR(*(index_to_char(bf, j))) == FALSE) {
1761- return j + 1;
1760+ TCHAR *lpszLine = index_to_char(bf, line_get(bf, index_to_line(bf, j)));
1761+ if (VISIBLECHAR(*lpszLine) == FALSE) {
1762+ return j + 2;
17621763 }
17631764 // q2ch拡張ここまで
17641765 return j;
@@ -2515,8 +2516,35 @@
25152516 ShowCaret(hWnd);
25162517 return DefWindowProc(hWnd, msg, wParam, lParam);
25172518
2519+ case WM_LBUTTONDOWN:
2520+ {
2521+ SHRGINFO info;
2522+ info.cbSize = sizeof(SHRGINFO);
2523+ info.hwndClient = hWnd;
2524+ info.ptDown.x = LOWORD(lParam);
2525+ info.ptDown.y = HIWORD(lParam);
2526+ info.dwFlags = SHRG_RETURNCMD;
2527+
2528+ if (SHRecognizeGesture(&info) == GN_CONTEXTMENU) {
2529+ if ((bf = (BUFFER *)GetWindowLong(hWnd, GWL_USERDATA)) == NULL) {
2530+ break;
2531+ }
2532+ DWORD cp = caret_point_to_caret(bf, (short)LOWORD(lParam), (short)HIWORD(lParam));
2533+ if (bf->sp != bf->cp && bf->sp <= cp && bf->cp >= cp) {
2534+ // 選択範囲内でコンテキストメニューなので選択範囲そのまま
2535+ } else {
2536+ // 選択範囲外でコンテキストメニューなので選択範囲リセット
2537+ bf->cp = caret_point_to_caret(bf, (short)LOWORD(lParam), (short)HIWORD(lParam));
2538+ bf->sp = bf->cp;
2539+ if (sp != bf->sp) {
2540+ line_refresh(hWnd, bf, cp, sp);
2541+ }
2542+ line_refresh(hWnd, bf, cp, bf->cp);
2543+ }
2544+ break;
2545+ }
2546+ }
25182547 case WM_MOUSEMOVE:
2519- case WM_LBUTTONDOWN:
25202548 case WM_LBUTTONUP:
25212549 if ((bf = (BUFFER *)GetWindowLong(hWnd, GWL_USERDATA)) == NULL) {
25222550 break;
Show on old repository browser