Windowsでマウスクリックが動いている
This commit is contained in:
@@ -102,7 +102,13 @@ HexEditor::HexEditor(const std::string &filename)
|
|||||||
start_color();
|
start_color();
|
||||||
|
|
||||||
// マウス対応
|
// マウス対応
|
||||||
|
#ifdef _WIN32
|
||||||
|
mousemask(ALL_MOUSE_EVENTS, nullptr);
|
||||||
|
mouse_set(ALL_MOUSE_EVENTS);
|
||||||
|
request_mouse_pos();
|
||||||
|
#else
|
||||||
mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, nullptr);
|
mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, nullptr);
|
||||||
|
#endif
|
||||||
isMouse = true;
|
isMouse = true;
|
||||||
|
|
||||||
init_pair(1, COLOR_BLACK, COLOR_WHITE); // カーソル
|
init_pair(1, COLOR_BLACK, COLOR_WHITE); // カーソル
|
||||||
@@ -764,17 +770,24 @@ void HexEditor::handleReplace() {
|
|||||||
|
|
||||||
void HexEditor::handleMouse() {
|
void HexEditor::handleMouse() {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (getmouse() == 0) return;
|
request_mouse_pos();
|
||||||
|
|
||||||
int mx = Mouse_status.x;
|
int mx = Mouse_status.x;
|
||||||
int my = Mouse_status.y;
|
int my = Mouse_status.y;
|
||||||
|
|
||||||
if (!(Mouse_status.button[0] & BUTTON1_PRESSED)
|
bool click = false;
|
||||||
|| (Mouse_status.changes & 0x01)) return;
|
for (int i = 0; i < 3; ++i) {
|
||||||
|
if ((Mouse_status.button[i] & BUTTON1_PRESSED)
|
||||||
|
|| (Mouse_status.button[i] & BUTTON1_CLICKED)) {
|
||||||
|
click = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!click) return;
|
||||||
#else
|
#else
|
||||||
MEVENT event;
|
MEVENT event;
|
||||||
if (getmouse(&event) != OK) return;
|
if (getmouse(&event) != OK) return;
|
||||||
if (!(event.bstate & BUTTON1_PRESSED)) return;
|
if (!(event.bstate & (BUTTON1_PRESSED | BUTTON1_CLICKED))) return;
|
||||||
|
|
||||||
int mx = event.x;
|
int mx = event.x;
|
||||||
int my = event.y;
|
int my = event.y;
|
||||||
|
|||||||
Reference in New Issue
Block a user