mirror of
https://github.com/HEYAHONG/PDCurses.git
synced 2025-05-08 13:36:23 +08:00
Return proper coordinates instead of -1,-1 for DOS/SDL/X11. To Do: test.
This commit is contained in:
parent
5596bd765c
commit
7b22dfa982
@ -211,14 +211,8 @@ static int _process_mouse_events(void)
|
||||
{
|
||||
SP->mouse_status.changes = mouse_scroll & 0x80 ?
|
||||
PDC_MOUSE_WHEEL_UP : PDC_MOUSE_WHEEL_DOWN;
|
||||
|
||||
SP->mouse_status.x = -1;
|
||||
SP->mouse_status.y = -1;
|
||||
|
||||
return KEY_MOUSE;
|
||||
}
|
||||
|
||||
if (mouse_moved)
|
||||
else if (mouse_moved)
|
||||
{
|
||||
SP->mouse_status.changes = PDC_MOUSE_MOVED;
|
||||
|
||||
|
@ -246,12 +246,13 @@ static int _process_mouse_event(void)
|
||||
BUTTON_PRESSED : BUTTON_RELEASED;
|
||||
Uint8 btn = event.button.button;
|
||||
|
||||
SP->mouse_status.x = (event.button.x - pdc_xoffset) / pdc_fwidth;
|
||||
SP->mouse_status.y = (event.button.y - pdc_yoffset) / pdc_fheight;
|
||||
|
||||
/* handle scroll wheel */
|
||||
|
||||
if ((btn >= 4 && btn <= 7) && action == BUTTON_RELEASED)
|
||||
{
|
||||
SP->mouse_status.x = SP->mouse_status.y = -1;
|
||||
|
||||
switch (btn)
|
||||
{
|
||||
case 4:
|
||||
@ -291,9 +292,6 @@ static int _process_mouse_event(void)
|
||||
}
|
||||
}
|
||||
|
||||
SP->mouse_status.x = (event.button.x - pdc_xoffset) / pdc_fwidth;
|
||||
SP->mouse_status.y = (event.button.y - pdc_yoffset) / pdc_fheight;
|
||||
|
||||
btn--;
|
||||
|
||||
SP->mouse_status.button[btn] = action | shift_flags;
|
||||
|
@ -319,13 +319,13 @@ static int _process_mouse_event(void)
|
||||
if (keymods & KMOD_ALT)
|
||||
shift_flags |= BUTTON_ALT;
|
||||
|
||||
SP->mouse_status.x = (event.motion.x - pdc_xoffset) / pdc_fwidth;
|
||||
SP->mouse_status.y = (event.motion.y - pdc_yoffset) / pdc_fheight;
|
||||
|
||||
if (event.type == SDL_MOUSEMOTION)
|
||||
{
|
||||
int i;
|
||||
|
||||
SP->mouse_status.x = (event.motion.x - pdc_xoffset) / pdc_fwidth;
|
||||
SP->mouse_status.y = (event.motion.y - pdc_yoffset) / pdc_fheight;
|
||||
|
||||
if (!event.motion.state ||
|
||||
(SP->mouse_status.x == old_mouse_status.x &&
|
||||
SP->mouse_status.y == old_mouse_status.y))
|
||||
@ -344,8 +344,6 @@ static int _process_mouse_event(void)
|
||||
}
|
||||
else if (event.type == SDL_MOUSEWHEEL)
|
||||
{
|
||||
SP->mouse_status.x = SP->mouse_status.y = -1;
|
||||
|
||||
if (event.wheel.y > 0)
|
||||
SP->mouse_status.changes = PDC_MOUSE_WHEEL_UP;
|
||||
else if (event.wheel.y < 0)
|
||||
@ -386,9 +384,6 @@ static int _process_mouse_event(void)
|
||||
}
|
||||
}
|
||||
|
||||
SP->mouse_status.x = (event.button.x - pdc_xoffset) / pdc_fwidth;
|
||||
SP->mouse_status.y = (event.button.y - pdc_yoffset) / pdc_fheight;
|
||||
|
||||
btn--;
|
||||
|
||||
SP->mouse_status.button[btn] = action | shift_flags;
|
||||
|
@ -350,7 +350,7 @@ static unsigned long _process_mouse_event(XEvent *event)
|
||||
the event. The following code is designed to cater for this
|
||||
situation. */
|
||||
|
||||
SP->mouse_status.changes = 0;
|
||||
memset(&SP->mouse_status, 0, sizeof(SP->mouse_status));
|
||||
|
||||
SP->mouse_status.x = event->xbutton.x / pdc_fwidth;
|
||||
SP->mouse_status.y = event->xbutton.y / pdc_fheight;
|
||||
@ -368,8 +368,6 @@ static unsigned long _process_mouse_event(XEvent *event)
|
||||
{
|
||||
/* Send the KEY_MOUSE to curses program */
|
||||
|
||||
memset(&SP->mouse_status, 0, sizeof(SP->mouse_status));
|
||||
|
||||
switch(button_no)
|
||||
{
|
||||
case 4:
|
||||
@ -385,8 +383,6 @@ static unsigned long _process_mouse_event(XEvent *event)
|
||||
SP->mouse_status.changes = PDC_MOUSE_WHEEL_RIGHT;
|
||||
}
|
||||
|
||||
SP->mouse_status.x = SP->mouse_status.y = -1;
|
||||
|
||||
SP->key_code = TRUE;
|
||||
return KEY_MOUSE;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user