Mercurial > sdl-ios-xcode
comparison src/video/cocoa/SDL_cocoawindow.m @ 1937:05e88d266921
Fixed Objective-C memory leaks
Send an SDL quit event when Command-Q is pressed.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 25 Jul 2006 06:59:14 +0000 |
parents | 83946ee0ff1f |
children | 7177581dc9fa |
comparison
equal
deleted
inserted
replaced
1936:83946ee0ff1f | 1937:05e88d266921 |
---|---|
417 } | 417 } |
418 | 418 |
419 void | 419 void |
420 Cocoa_SetWindowTitle(_THIS, SDL_Window * window) | 420 Cocoa_SetWindowTitle(_THIS, SDL_Window * window) |
421 { | 421 { |
422 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
422 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 423 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
423 NSString *string; | 424 NSString *string; |
424 | 425 |
425 string = [[NSString alloc] initWithUTF8String:window->title]; | 426 string = [[NSString alloc] initWithUTF8String:window->title]; |
426 [nswindow setTitle:string]; | 427 [nswindow setTitle:string]; |
427 [nswindow setMiniwindowTitle:string]; | 428 [nswindow setMiniwindowTitle:string]; |
428 [string release]; | 429 [string release]; |
430 [pool release]; | |
429 } | 431 } |
430 | 432 |
431 void | 433 void |
432 Cocoa_SetWindowPosition(_THIS, SDL_Window * window) | 434 Cocoa_SetWindowPosition(_THIS, SDL_Window * window) |
433 { | 435 { |
436 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
434 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 437 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
435 NSRect rect; | 438 NSRect rect; |
436 | 439 |
437 rect.origin.x = window->x; | 440 rect.origin.x = window->x; |
438 rect.origin.y = window->y; | 441 rect.origin.y = window->y; |
439 rect.size.width = window->w; | 442 rect.size.width = window->w; |
440 rect.size.height = window->h; | 443 rect.size.height = window->h; |
441 ConvertNSRect(&rect); | 444 ConvertNSRect(&rect); |
442 rect = [nswindow frameRectForContentRect:rect]; | 445 rect = [nswindow frameRectForContentRect:rect]; |
443 [nswindow setFrameOrigin:rect.origin]; | 446 [nswindow setFrameOrigin:rect.origin]; |
447 [pool release]; | |
444 } | 448 } |
445 | 449 |
446 void | 450 void |
447 Cocoa_SetWindowSize(_THIS, SDL_Window * window) | 451 Cocoa_SetWindowSize(_THIS, SDL_Window * window) |
448 { | 452 { |
453 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
449 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 454 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
450 NSSize size; | 455 NSSize size; |
451 | 456 |
452 size.width = window->w; | 457 size.width = window->w; |
453 size.height = window->h; | 458 size.height = window->h; |
454 [nswindow setContentSize:size]; | 459 [nswindow setContentSize:size]; |
460 [pool release]; | |
455 } | 461 } |
456 | 462 |
457 void | 463 void |
458 Cocoa_ShowWindow(_THIS, SDL_Window * window) | 464 Cocoa_ShowWindow(_THIS, SDL_Window * window) |
459 { | 465 { |
466 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
460 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 467 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
461 | 468 |
462 [nswindow makeKeyAndOrderFront:nil]; | 469 [nswindow makeKeyAndOrderFront:nil]; |
470 [pool release]; | |
463 } | 471 } |
464 | 472 |
465 void | 473 void |
466 Cocoa_HideWindow(_THIS, SDL_Window * window) | 474 Cocoa_HideWindow(_THIS, SDL_Window * window) |
467 { | 475 { |
471 } | 479 } |
472 | 480 |
473 void | 481 void |
474 Cocoa_RaiseWindow(_THIS, SDL_Window * window) | 482 Cocoa_RaiseWindow(_THIS, SDL_Window * window) |
475 { | 483 { |
484 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
476 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 485 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
477 | 486 |
478 [nswindow makeKeyAndOrderFront:nil]; | 487 [nswindow makeKeyAndOrderFront:nil]; |
488 [pool release]; | |
479 } | 489 } |
480 | 490 |
481 void | 491 void |
482 Cocoa_MaximizeWindow(_THIS, SDL_Window * window) | 492 Cocoa_MaximizeWindow(_THIS, SDL_Window * window) |
483 { | 493 { |
494 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
484 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 495 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
485 | 496 |
486 [nswindow performZoom:nil]; | 497 [nswindow performZoom:nil]; |
498 [pool release]; | |
487 } | 499 } |
488 | 500 |
489 void | 501 void |
490 Cocoa_MinimizeWindow(_THIS, SDL_Window * window) | 502 Cocoa_MinimizeWindow(_THIS, SDL_Window * window) |
491 { | 503 { |
504 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
492 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; | 505 NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; |
493 | 506 |
494 [nswindow performMiniaturize:nil]; | 507 [nswindow performMiniaturize:nil]; |
508 [pool release]; | |
495 } | 509 } |
496 | 510 |
497 void | 511 void |
498 Cocoa_RestoreWindow(_THIS, SDL_Window * window) | 512 Cocoa_RestoreWindow(_THIS, SDL_Window * window) |
499 { | 513 { |
514 } | 528 } |
515 | 529 |
516 void | 530 void |
517 Cocoa_DestroyWindow(_THIS, SDL_Window * window) | 531 Cocoa_DestroyWindow(_THIS, SDL_Window * window) |
518 { | 532 { |
533 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; | |
519 SDL_WindowData *data = (SDL_WindowData *) window->driverdata; | 534 SDL_WindowData *data = (SDL_WindowData *) window->driverdata; |
520 | 535 |
521 if (data) { | 536 if (data) { |
522 NSAutoreleasePool *pool; | |
523 #ifdef SDL_VIDEO_OPENGL | 537 #ifdef SDL_VIDEO_OPENGL |
524 if (window->flags & SDL_WINDOW_OPENGL) { | 538 if (window->flags & SDL_WINDOW_OPENGL) { |
525 Cocoa_GL_CleanupWindow(_this, window); | 539 Cocoa_GL_CleanupWindow(_this, window); |
526 } | 540 } |
527 #endif | 541 #endif |
528 pool = [[NSAutoreleasePool alloc] init]; | |
529 [data->listener close]; | 542 [data->listener close]; |
530 [data->listener release]; | 543 [data->listener release]; |
531 if (data->created) { | 544 if (data->created) { |
532 [data->window close]; | 545 [data->window close]; |
533 } | 546 } |
534 SDL_free(data); | 547 SDL_free(data); |
535 [pool release]; | 548 } |
536 } | 549 [pool release]; |
537 } | 550 } |
538 | 551 |
539 SDL_bool | 552 SDL_bool |
540 Cocoa_GetWindowWMInfo(_THIS, SDL_Window * window, SDL_SysWMinfo * info) | 553 Cocoa_GetWindowWMInfo(_THIS, SDL_Window * window, SDL_SysWMinfo * info) |
541 { | 554 { |