私はバッファ内のある点の座標を持っています: x,y ウィンドウの先頭に対して相対的に; これらの相対座標でテキスト位置 (バッファの先頭のオフセット) を取得するにはどうすればよいですか?
すなわち:
--------------- バッファの開始
sdfv efrv s
======================================== <-- ウィンドウ開始境界
s!df verg 34v dc
sd sdf
======================================== <-- ウィンドウ終了境界
ポイントが感嘆符の位置にある場合は、x = 1、y = 0、位置 = 13 になります。(x,y)=(1,0) がわかったので、位置を取得するにはどうすればよいですか?
編集(Stefan への返信) :
この座標は、mause-1 ダウンのフェアリング イベントからのものです。関数から取得しますtmm-menubar-mouse
。イベント全体は次のようになります。
(mouse-1 (nil メニューバー (45 . 0) 15023 nil 2924 (45 . 0) nil (0 . 0) (1 . 0)))
問題は、バグが原因で一部の座標が正しく計算されず、それらを再計算することですが、新しいイベントを に送信するためにテキスト位置を取得する必要があることmouse-drag-region
です。でウィンドウを取得しwindow-at
、絶対座標を再計算して、それらからウィンドウの左上角度を相対的に減算します。