XQuartz: Set can_quit to true during a Sparkle-initiated relaunch.

(cherry picked from commit b2e9a77111d4572402d8ca95e3368db97ba7d598)
This commit is contained in:
Jeremy Huddleston 2009-07-21 00:22:12 -07:00
parent 7ff84d350b
commit 171409cecb
3 changed files with 16 additions and 7 deletions

View File

@ -970,7 +970,7 @@ void X11ApplicationMain (int argc, char **argv, char **envp) {
fprintf(stderr, "Error initializing xpbproxy\n"); fprintf(stderr, "Error initializing xpbproxy\n");
#if XQUARTZ_SPARKLE #if XQUARTZ_SPARKLE
[[X11App controller] set_check_for_updates_menu_item]; [[X11App controller] setup_sparkle];
[[SUUpdater sharedUpdater] resetUpdateCycle]; [[SUUpdater sharedUpdater] resetUpdateCycle];
// [[SUUpdater sharedUpdater] checkForUpdates:X11App]; // [[SUUpdater sharedUpdater] checkForUpdates:X11App];
#endif #endif

View File

@ -39,6 +39,10 @@
#include "sanitizedCocoa.h" #include "sanitizedCocoa.h"
#include "xpr/x-list.h" #include "xpr/x-list.h"
#ifdef XQUARTZ_SPARKLE
#include <Sparkle/SUUpdater.h>
#endif
@interface X11Controller : NSObject @interface X11Controller : NSObject
{ {
IBOutlet NSPanel *prefs_panel; IBOutlet NSPanel *prefs_panel;
@ -91,7 +95,8 @@
- (void) set_window_menu_check:(NSNumber *)n; - (void) set_window_menu_check:(NSNumber *)n;
- (void) set_apps_menu:(NSArray *)list; - (void) set_apps_menu:(NSArray *)list;
#ifdef XQUARTZ_SPARKLE #ifdef XQUARTZ_SPARKLE
- (void) set_check_for_updates_menu_item; - (void) setup_sparkle;
- (void) updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update;
#endif #endif
- (void) set_can_quit:(OSX_BOOL)state; - (void) set_can_quit:(OSX_BOOL)state;
- (void) server_ready; - (void) server_ready;

View File

@ -53,10 +53,6 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
#ifdef XQUARTZ_SPARKLE
#include <Sparkle/SUUpdater.h>
#endif
BOOL xquartz_resetenv_display = NO; BOOL xquartz_resetenv_display = NO;
@implementation X11Controller @implementation X11Controller
@ -317,7 +313,7 @@ BOOL xquartz_resetenv_display = NO;
} }
#ifdef XQUARTZ_SPARKLE #ifdef XQUARTZ_SPARKLE
- (void) set_check_for_updates_menu_item { - (void) setup_sparkle {
if(check_for_updates_item) if(check_for_updates_item)
return; // already did it... return; // already did it...
@ -330,7 +326,15 @@ BOOL xquartz_resetenv_display = NO;
[check_for_updates_item setTarget:[SUUpdater sharedUpdater]]; [check_for_updates_item setTarget:[SUUpdater sharedUpdater]];
[check_for_updates_item setEnabled:YES]; [check_for_updates_item setEnabled:YES];
// Set X11Controller as the delegate for the updater.
[[SUUpdater sharedUpdater] setDelegate:self];
} }
// Sent immediately before installing the specified update.
- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update {
[self set_can_quit:YES];
}
#endif #endif
- (void) launch_client:(NSString *)filename - (void) launch_client:(NSString *)filename