projects
/
freeglut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Updating the ChangeLog and TODO files in preparation for the upcoming release
[freeglut]
/
src
/
freeglut_window.c
diff --git
a/src/freeglut_window.c
b/src/freeglut_window.c
index
cd9b029
..
811f329
100644
(file)
--- a/
src/freeglut_window.c
+++ b/
src/freeglut_window.c
@@
-350,7
+350,7
@@
void fgOpenWindow( SFG_Window* window, const char* title,
mask = CWBackPixmap | CWBorderPixel | CWColormap | CWEventMask;
mask = CWBackPixmap | CWBorderPixel | CWColormap | CWEventMask;
- if( window->IsMenu )
+ if( window->IsMenu || ( gameMode == GL_TRUE ) )
{
winAttr.override_redirect = True;
mask |= CWOverrideRedirect;
{
winAttr.override_redirect = True;
mask |= CWOverrideRedirect;
@@
-678,6
+678,32
@@
int FGAPIENTRY glutCreateSubWindow( int parentID, int x, int y, int w, int h )
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateSubWindow" );
parent = fgWindowByID( parentID );
freeglut_return_val_if_fail( parent != NULL, 0 );
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateSubWindow" );
parent = fgWindowByID( parentID );
freeglut_return_val_if_fail( parent != NULL, 0 );
+ if ( x < 0 )
+ {
+ x = parent->State.Width + x ;
+ if ( w >= 0 ) x -= w ;
+ }
+
+ if ( w < 0 ) w = parent->State.Width - x + w ;
+ if ( w < 0 )
+ {
+ x += w ;
+ w = -w ;
+ }
+
+ if ( y < 0 )
+ {
+ y = parent->State.Height + y ;
+ if ( h >= 0 ) y -= h ;
+ }
+
+ if ( h < 0 ) h = parent->State.Height - y + h ;
+ if ( h < 0 )
+ {
+ y += h ;
+ h = -h ;
+ }
+
window = fgCreateWindow( parent, "", x, y, w, h, GL_FALSE, GL_FALSE );
ret = window->ID;
window = fgCreateWindow( parent, "", x, y, w, h, GL_FALSE, GL_FALSE );
ret = window->ID;