diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llwindow/llopenglview-objc.h | 1 | ||||
| -rw-r--r-- | indra/llwindow/llopenglview-objc.mm | 67 | ||||
| -rw-r--r-- | indra/llwindow/llwindowmacosx-objc.mm | 6 | ||||
| -rw-r--r-- | indra/newview/llappdelegate-objc.mm | 10 | 
4 files changed, 54 insertions, 30 deletions
| diff --git a/indra/llwindow/llopenglview-objc.h b/indra/llwindow/llopenglview-objc.h index 1592e6e01d..cc1618b3bc 100644 --- a/indra/llwindow/llopenglview-objc.h +++ b/indra/llwindow/llopenglview-objc.h @@ -14,7 +14,6 @@  @interface LLOpenGLView : NSOpenGLView  { -	NSPoint mousePos;  	std::string mLastDraggedUrl;  } diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm index 763cf0c981..b79b7b3fa5 100644 --- a/indra/llwindow/llopenglview-objc.mm +++ b/indra/llwindow/llopenglview-objc.mm @@ -294,37 +294,48 @@  - (void) keyDown:(NSEvent *)theEvent  { -	callKeyDown([theEvent keyCode], mModifiers); -	NSLog(@"Keycode: %hu", [theEvent keyCode]); -	NSString *chars = [theEvent characters]; -	for (uint i = 0; i < [chars length]; i++) -	{ -		// Enter and Return are special cases. -		unichar returntest = [chars characterAtIndex:i]; -		if ((returntest == NSCarriageReturnCharacter || returntest == NSEnterCharacter) && -			!([theEvent modifierFlags] & NSCommandKeyMask) && -			!([theEvent modifierFlags] & NSAlternateKeyMask) && -			!([theEvent modifierFlags] & NSControlKeyMask)) -		{ -			callUnicodeCallback(13, 0); -		} else { -			// The command key being pressed is also a special case. -			// Control + <character> produces an ASCII control character code. -			// Command + <character> produces just the character's code. -			// Check to see if the command key is pressed, then filter through the different character ranges that are relevant to control characters, and subtract the appropriate range. -			if ([theEvent modifierFlags] & NSCommandKeyMask) -			{ -				if (returntest >= 64 && returntest <= 95) -				{ -					callUnicodeCallback(returntest - 63, mModifiers); -				} else if (returntest >= 97 && returntest <= 122) +	uint keycode = [theEvent keyCode]; +	 +	switch (keycode) { +		case 0x7b: +		case 0x7c: +		case 0x7d: +		case 0x7e: +			callKeyDown(keycode, mModifiers); +			break; +			 +		default: +			callKeyDown(keycode, mModifiers); +			NSString *chars = [theEvent characters]; +			for (uint i = 0; i < [chars length]; i++) { +				// Enter and Return are special cases. +				unichar returntest = [chars characterAtIndex:i]; +				if ((returntest == NSCarriageReturnCharacter || returntest == NSEnterCharacter) && +					!([theEvent modifierFlags] & NSCommandKeyMask) && +					!([theEvent modifierFlags] & NSAlternateKeyMask) && +					!([theEvent modifierFlags] & NSControlKeyMask))  				{ -					callUnicodeCallback(returntest - 96, mModifiers); +					callUnicodeCallback(13, 0); +				} else { +					// The command key being pressed is also a special case. +					// Control + <character> produces an ASCII control character code. +					// Command + <character> produces just the character's code. +					// Check to see if the command key is pressed, then filter through the different character ranges that are relevant to control characters, and subtract the appropriate range. +					if ([theEvent modifierFlags] & NSCommandKeyMask) +					{ +						if (returntest >= 64 && returntest <= 95) +						{ +							callUnicodeCallback(returntest - 63, mModifiers); +						} else if (returntest >= 97 && returntest <= 122) +						{ +							callUnicodeCallback(returntest - 96, mModifiers); +						} +					} else { +						callUnicodeCallback(returntest, mModifiers); +					}  				} -			} else { -				callUnicodeCallback(returntest, mModifiers);  			} -		} +			break;  	}  } diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm index 7867226476..b123ba0711 100644 --- a/indra/llwindow/llwindowmacosx-objc.mm +++ b/indra/llwindow/llwindowmacosx-objc.mm @@ -64,11 +64,12 @@ void setupCocoa()  bool copyToPBoard(const unsigned short *str, unsigned int len)  { +	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];  	NSPasteboard *pboard = [NSPasteboard generalPasteboard];  	[pboard clearContents];  	NSArray *contentsToPaste = [[NSArray alloc] initWithObjects:[NSString stringWithCharacters:str length:len], nil]; -	 +	[pool release];  	return [pboard writeObjects:contentsToPaste];  } @@ -80,6 +81,7 @@ bool pasteBoardAvailable()  const unsigned short *copyFromPBoard()  { +	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];  	NSPasteboard *pboard = [NSPasteboard generalPasteboard];  	NSArray *classArray = [NSArray arrayWithObject:[NSString class]];  	NSString *str = NULL; @@ -91,6 +93,7 @@ const unsigned short *copyFromPBoard()  	}  	unichar* temp = (unichar*)calloc([str length], sizeof(unichar));  	[str getCharacters:temp]; +	[pool release];  	return temp;  } @@ -312,6 +315,7 @@ void convertWindowToScreen(NSWindowRef window, float *coord)  void closeWindow(NSWindowRef window)  {  	[(LLNSWindow*)window close]; +	[(LLNSWindow*)window release];  }  void removeGLView(GLViewRef view) diff --git a/indra/newview/llappdelegate-objc.mm b/indra/newview/llappdelegate-objc.mm index f5143d7578..9bb10f3204 100644 --- a/indra/newview/llappdelegate-objc.mm +++ b/indra/newview/llappdelegate-objc.mm @@ -29,6 +29,16 @@  	}  } +- (void) applicationDidBecomeActive:(NSNotification *)notification +{ +	 +} + +- (void) applicationDidResignActive:(NSNotification *)notification +{ +	 +} +  - (NSApplicationDelegateReply) applicationShouldTerminate:(NSApplication *)sender  {  	if (!runMainLoop()) | 
