projects
/
freeglut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixing the build after Diederick Niehorster's full screen fixes: they are only valid...
[freeglut]
/
src
/
freeglut_spaceball.c
diff --git
a/src/freeglut_spaceball.c
b/src/freeglut_spaceball.c
index
a2e70ed
..
89655f4
100644
(file)
--- a/
src/freeglut_spaceball.c
+++ b/
src/freeglut_spaceball.c
@@
-10,6
+10,8
@@
#include <GL/freeglut.h>
\r
#include "freeglut_internal.h"
\r
\r
#include <GL/freeglut.h>
\r
#include "freeglut_internal.h"
\r
\r
+/* -- PRIVATE FUNCTIONS --------------------------------------------------- */
\r
+
\r
#if TARGET_HOST_POSIX_X11
\r
#include <X11/Xlib.h>
\r
\r
#if TARGET_HOST_POSIX_X11
\r
#include <X11/Xlib.h>
\r
\r
@@
-50,12
+52,17
@@
static int spnav_remove_events(int type);
static SFG_Window *spnav_win;
\r
#endif
\r
\r
static SFG_Window *spnav_win;
\r
#endif
\r
\r
-static int sball_initialized;
\r
+/* Flag telling whether we have a spaceball:
\r
+ * 0 - haven't tried initializing
\r
+ * 1 - have successfully initialized
\r
+ * -1 - have tried to initialize but not succeeded
\r
+ */
\r
+static int sball_initialized = 0;
\r
\r
\r
void fgInitialiseSpaceball(void)
\r
{
\r
\r
\r
void fgInitialiseSpaceball(void)
\r
{
\r
- if(sball_initialized) {
\r
+ if(sball_initialized != 0) {
\r
return;
\r
}
\r
\r
return;
\r
}
\r
\r
@@
-64,10
+71,15
@@
void fgInitialiseSpaceball(void)
Window w;
\r
\r
if(!fgStructure.CurrentWindow)
\r
Window w;
\r
\r
if(!fgStructure.CurrentWindow)
\r
+ {
\r
+ sball_initialized = -1;
\r
return;
\r
return;
\r
+ }
\r
\r
w = fgStructure.CurrentWindow->Window.Handle;
\r
\r
w = fgStructure.CurrentWindow->Window.Handle;
\r
- if(spnav_x11_open(fgDisplay.Display, w) == -1) {
\r
+ if(spnav_x11_open(fgDisplay.Display, w) == -1)
\r
+ {
\r
+ sball_initialized = -1;
\r
return;
\r
}
\r
}
\r
return;
\r
}
\r
}
\r
@@
-85,9
+97,9
@@
void fgSpaceballClose(void)
\r
int fgHasSpaceball(void)
\r
{
\r
\r
int fgHasSpaceball(void)
\r
{
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized == 0) {
\r
fgInitialiseSpaceball();
\r
fgInitialiseSpaceball();
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized != 1) {
\r
fgWarning("fgInitialiseSpaceball failed\n");
\r
return 0;
\r
}
\r
fgWarning("fgInitialiseSpaceball failed\n");
\r
return 0;
\r
}
\r
@@
-105,9
+117,9
@@
int fgHasSpaceball(void)
\r
int fgSpaceballNumButtons(void)
\r
{
\r
\r
int fgSpaceballNumButtons(void)
\r
{
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized == 0) {
\r
fgInitialiseSpaceball();
\r
fgInitialiseSpaceball();
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized != 1) {
\r
fgWarning("fgInitialiseSpaceball failed\n");
\r
return 0;
\r
}
\r
fgWarning("fgInitialiseSpaceball failed\n");
\r
return 0;
\r
}
\r
@@
-122,9
+134,9
@@
int fgSpaceballNumButtons(void)
\r
void fgSpaceballSetWindow(SFG_Window *window)
\r
{
\r
\r
void fgSpaceballSetWindow(SFG_Window *window)
\r
{
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized == 0) {
\r
fgInitialiseSpaceball();
\r
fgInitialiseSpaceball();
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized != 1) {
\r
return;
\r
}
\r
}
\r
return;
\r
}
\r
}
\r
@@
-148,7
+160,7
@@
int fgIsSpaceballXEvent(const XEvent *xev)
fgSpaceballSetWindow(fgStructure.CurrentWindow);
\r
}
\r
\r
fgSpaceballSetWindow(fgStructure.CurrentWindow);
\r
}
\r
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized != 1) {
\r
return 0;
\r
}
\r
\r
return 0;
\r
}
\r
\r
@@
-159,9
+171,9
@@
void fgSpaceballHandleXEvent(const XEvent *xev)
{
\r
spnav_event sev;
\r
\r
{
\r
spnav_event sev;
\r
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized == 0) {
\r
fgInitialiseSpaceball();
\r
fgInitialiseSpaceball();
\r
- if(!sball_initialized) {
\r
+ if(sball_initialized != 1) {
\r
return;
\r
}
\r
}
\r
return;
\r
}
\r
}
\r
@@
-218,7
+230,7
@@
OF SUCH DAMAGE.
#include <stdlib.h>
\r
#include <string.h>
\r
\r
#include <stdlib.h>
\r
#include <string.h>
\r
\r
-#if HAVE_ERRNO_H
\r
+#ifdef HAVE_ERRNO_H
\r
#include <errno.h>
\r
#endif
\r
\r
#include <errno.h>
\r
#endif
\r
\r