Merge branch 'gtk-application-quartz' into 'gtk-3-24'
quartz: Bugfix - Add openFiles delegate to gtk_application (#463) See merge request GNOME/gtk!2098
This commit is contained in:
@@ -64,6 +64,7 @@ G_DEFINE_TYPE (GtkApplicationImplQuartz, gtk_application_impl_quartz, GTK_TYPE_A
|
||||
|
||||
- (id)initWithImpl:(GtkApplicationImplQuartz*)impl;
|
||||
- (NSApplicationTerminateReply) applicationShouldTerminate:(NSApplication *)sender;
|
||||
- (void)application:(NSApplication *)theApplication openFiles:(NSArray *)filenames;
|
||||
@end
|
||||
|
||||
@implementation GtkApplicationQuartzDelegate
|
||||
@@ -84,6 +85,35 @@ G_DEFINE_TYPE (GtkApplicationImplQuartz, gtk_application_impl_quartz, GTK_TYPE_A
|
||||
*/
|
||||
return quartz->quit_inhibit == 0 ? NSTerminateNow : NSTerminateCancel;
|
||||
}
|
||||
|
||||
-(void)application:(NSApplication *)theApplication openFiles:(NSArray *)filenames
|
||||
{
|
||||
GFile **files;
|
||||
gint i;
|
||||
GApplicationFlags flags;
|
||||
|
||||
flags = g_application_get_flags (G_APPLICATION (quartz->impl.application));
|
||||
|
||||
if (~flags & G_APPLICATION_HANDLES_OPEN)
|
||||
{
|
||||
[theApplication replyToOpenOrPrint:NSApplicationDelegateReplyFailure];
|
||||
return;
|
||||
}
|
||||
|
||||
files = g_new (GFile *, [filenames count]);
|
||||
|
||||
for (i = 0; i < [filenames count]; i++)
|
||||
files[i] = g_file_new_for_path ([(NSString *)[filenames objectAtIndex:i] UTF8String]);
|
||||
|
||||
g_application_open (G_APPLICATION (quartz->impl.application), files, [filenames count], "");
|
||||
|
||||
for (i = 0; i < [filenames count]; i++)
|
||||
g_object_unref (files[i]);
|
||||
|
||||
g_free (files);
|
||||
|
||||
[theApplication replyToOpenOrPrint:NSApplicationDelegateReplySuccess];
|
||||
}
|
||||
@end
|
||||
|
||||
/* these exist only for accel handling */
|
||||
|
||||
Reference in New Issue
Block a user