diff --git a/extras/Introjucer/Source/Application/jucer_MainWindow.cpp b/extras/Introjucer/Source/Application/jucer_MainWindow.cpp index 7dc9a4c4e5..9fcd804e18 100644 --- a/extras/Introjucer/Source/Application/jucer_MainWindow.cpp +++ b/extras/Introjucer/Source/Application/jucer_MainWindow.cpp @@ -107,8 +107,8 @@ void MainWindow::createProjectContentCompIfNeeded() void MainWindow::makeVisible() { setVisible (true); + addToDesktop(); // (must add before restoring size so that fullscreen will work) restoreWindowPosition(); - addToDesktop(); getContentComponent()->grabKeyboardFocus(); } diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h index b9a476a8a0..b0e66ebeb7 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h @@ -389,6 +389,9 @@ private: if (getSetting ("UIStatusBarHidden").getValue()) addPlistDictionaryKeyBool (dict, "UIStatusBarHidden", true); + for (int i = 0; i < xcodeExtraPListEntries.size(); ++i) + dict->addChildElement (new XmlElement (xcodeExtraPListEntries.getReference(i))); + MemoryOutputStream mo; plist.writeToStream (mo, ""); diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h index 3787916322..816823951f 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h @@ -131,6 +131,7 @@ public: bool xcodeIsBundle, xcodeCreatePList, xcodeCanUseDwarf; StringArray xcodeFrameworks; Array xcodeExtraLibrariesDebug, xcodeExtraLibrariesRelease; + Array xcodeExtraPListEntries; //============================================================================== String makefileTargetSuffix; diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp index 03b4f3baf5..e9e586b0d4 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp @@ -292,6 +292,24 @@ public: exporter.xcodeProductType = "com.apple.product-type.bundle"; exporter.xcodeProductInstallPath = "$(HOME)/Library/Internet Plug-Ins//"; + { + XmlElement mimeTypesKey ("key"); + mimeTypesKey.setText ("WebPluginMIMETypes"); + + XmlElement mimeTypesEntry ("dict"); + const String exeName (exporter.getProject().getProjectFilenameRoot().toLowerCase()); + mimeTypesEntry.createNewChildElement ("key")->setText ("application/" + exeName + "-plugin"); + XmlElement* d = mimeTypesEntry.createNewChildElement ("dict"); + d->createNewChildElement ("key")->setText ("WebPluginExtensions"); + d->createNewChildElement ("array") + ->createNewChildElement ("string")->setText (exeName); + d->createNewChildElement ("key")->setText ("WebPluginTypeDescription"); + d->createNewChildElement ("string")->setText (exporter.getProject().getProjectName().toString()); + + exporter.xcodeExtraPListEntries.add (mimeTypesKey); + exporter.xcodeExtraPListEntries.add (mimeTypesEntry); + } + exporter.msvcTargetSuffix = ".dll"; exporter.msvcIsDLL = true; diff --git a/extras/browser plugin demo/build/mac/Info.plist b/extras/browser plugin demo/build/mac/Info.plist index 9517839fe5..aa85a81c1a 100644 --- a/extras/browser plugin demo/build/mac/Info.plist +++ b/extras/browser plugin demo/build/mac/Info.plist @@ -28,5 +28,17 @@ JuceBrowserPlugin_Version WebPluginName JuceBrowserPlugin_Name + WebPluginMIMETypes + + application/npjucedemo-plugin + + WebPluginExtensions + + jucedemo + + WebPluginTypeDescription + Juce Demo + +