Removed unneccesary code lines. Fixed mousename bug. Added lacking code in mousebutton
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403168
This commit is contained in:
parent
f3a0aca8ff
commit
96e1657806
3 changed files with 47 additions and 10 deletions
|
@ -54,6 +54,17 @@ typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */
|
||||||
*/
|
*/
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumMice(void);
|
extern DECLSPEC int SDLCALL SDL_GetNumMice(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn char* SDL_GetMouseName(int index)
|
||||||
|
*
|
||||||
|
* \brief Gets the name of a mouse with the given index.
|
||||||
|
*
|
||||||
|
* \param index is the index of the mouse, which name is to be returned.
|
||||||
|
*
|
||||||
|
* \return the name of the mouse with the specified index
|
||||||
|
*/
|
||||||
|
extern DECLSPEC char *SDLCALL SDL_GetMouseName(int index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \fn int SDL_SelectMouse(int index)
|
* \fn int SDL_SelectMouse(int index)
|
||||||
*
|
*
|
||||||
|
@ -206,13 +217,35 @@ extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
|
||||||
Button 3: Right mouse button
|
Button 3: Right mouse button
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* FIXME: Where do these functions go in this header?
|
/**
|
||||||
Also, add doxygen documentation for these...
|
* \fn int SDL_GetCursorsNumber(int index)
|
||||||
*/
|
*
|
||||||
extern DECLSPEC char *SDLCALL SDL_GetMouseName(int index);
|
* \brief Gets the number of cursors a pointing device supports.
|
||||||
|
* Useful for tablet users. Useful only under Windows.
|
||||||
|
*
|
||||||
|
* \param index is the index of the pointing device, which number of cursors we
|
||||||
|
* want to receive.
|
||||||
|
*
|
||||||
|
* \return the number of cursors supported by the pointing device. On Windows
|
||||||
|
* if a device is a tablet it returns a number >=1. Normal mice always return 1.
|
||||||
|
* On Linux every device reports one cursor.
|
||||||
|
*/
|
||||||
extern DECLSPEC int SDLCALL SDL_GetCursorsNumber(int index);
|
extern DECLSPEC int SDLCALL SDL_GetCursorsNumber(int index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn int SDL_GetCurrentCursor(int index)
|
||||||
|
*
|
||||||
|
* \brief Returns the index of the current cursor used by a specific pointing
|
||||||
|
* device. Useful only under Windows.
|
||||||
|
*
|
||||||
|
* \param index is the index of the pointing device, which cursor index we want
|
||||||
|
* to receive.
|
||||||
|
*
|
||||||
|
* \return the index of the cursor currently used by a specific pointing device.
|
||||||
|
* Always 0 under Linux. On Windows if the device isn't a tablet it returns 0.
|
||||||
|
* If the device is the tablet it returns the cursor index.
|
||||||
|
* 0 - stylus, 1 - eraser, 2 - cursor.
|
||||||
|
*/
|
||||||
extern DECLSPEC int SDLCALL SDL_GetCurrentCursor(int index);
|
extern DECLSPEC int SDLCALL SDL_GetCurrentCursor(int index);
|
||||||
|
|
||||||
#define SDL_BUTTON(X) (1 << ((X)-1))
|
#define SDL_BUTTON(X) (1 << ((X)-1))
|
||||||
|
|
|
@ -116,8 +116,8 @@ SDL_AddMouse(const SDL_Mouse * mouse, int index, char *name, int pressure_max,
|
||||||
/* we're setting the mouse properties */
|
/* we're setting the mouse properties */
|
||||||
length = 0;
|
length = 0;
|
||||||
length = SDL_strlen(name);
|
length = SDL_strlen(name);
|
||||||
SDL_mice[index]->name = SDL_malloc((length + 1) * sizeof(char));
|
SDL_mice[index]->name = SDL_malloc((length + 2) * sizeof(char));
|
||||||
SDL_strlcpy(SDL_mice[index]->name, name, length);
|
SDL_strlcpy(SDL_mice[index]->name, name, length+1);
|
||||||
SDL_mice[index]->pressure_max = pressure_max;
|
SDL_mice[index]->pressure_max = pressure_max;
|
||||||
SDL_mice[index]->pressure_min = pressure_min;
|
SDL_mice[index]->pressure_min = pressure_min;
|
||||||
SDL_mice[index]->cursor_shown = SDL_TRUE;
|
SDL_mice[index]->cursor_shown = SDL_TRUE;
|
||||||
|
@ -512,6 +512,10 @@ SDL_SendMouseButton(int id, Uint8 state, Uint8 button)
|
||||||
mouse->buttonstate |= SDL_BUTTON(button);
|
mouse->buttonstate |= SDL_BUTTON(button);
|
||||||
break;
|
break;
|
||||||
case SDL_RELEASED:
|
case SDL_RELEASED:
|
||||||
|
if(!(mouse->buttonstate & SDL_BUTTON(button))) {
|
||||||
|
/* Ignore this event, no state change */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
type = SDL_MOUSEBUTTONUP;
|
type = SDL_MOUSEBUTTONUP;
|
||||||
mouse->buttonstate &= ~SDL_BUTTON(button);
|
mouse->buttonstate &= ~SDL_BUTTON(button);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -483,7 +483,6 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
Uint32 fevent = 0;
|
Uint32 fevent = 0;
|
||||||
pXGetICValues(((SDL_WindowData *) window->driverdata)->ic,
|
pXGetICValues(((SDL_WindowData *) window->driverdata)->ic,
|
||||||
XNFilterEvents, &fevent, NULL);
|
XNFilterEvents, &fevent, NULL);
|
||||||
XMapWindow(data->display, w);
|
|
||||||
XSelectInput(data->display, w,
|
XSelectInput(data->display, w,
|
||||||
(FocusChangeMask | EnterWindowMask | LeaveWindowMask |
|
(FocusChangeMask | EnterWindowMask | LeaveWindowMask |
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask |
|
ExposureMask | ButtonPressMask | ButtonReleaseMask |
|
||||||
|
@ -492,13 +491,14 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
KeymapStateMask | fevent));
|
KeymapStateMask | fevent));
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
XMapWindow(data->display, w);
|
{
|
||||||
XSelectInput(data->display, w,
|
XSelectInput(data->display, w,
|
||||||
(FocusChangeMask | EnterWindowMask | LeaveWindowMask |
|
(FocusChangeMask | EnterWindowMask | LeaveWindowMask |
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask |
|
ExposureMask | ButtonPressMask | ButtonReleaseMask |
|
||||||
PointerMotionMask | KeyPressMask | KeyReleaseMask |
|
PointerMotionMask | KeyPressMask | KeyReleaseMask |
|
||||||
PropertyChangeMask | StructureNotifyMask |
|
PropertyChangeMask | StructureNotifyMask |
|
||||||
KeymapStateMask));
|
KeymapStateMask));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* we're informing the display what extension events we want to receive from it */
|
/* we're informing the display what extension events we want to receive from it */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue