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:
Matthias Clasen
2020-06-16 16:41:27 +00:00

View File

@@ -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 */