10 Commits

Author SHA1 Message Date
Tomáš Znamenáček f743bdaa5b Release 2.3.6 2016-10-30 09:51:39 +01:00
Tomáš Znamenáček 6444d3f9a2 Fix wrong header import 2016-10-28 15:10:19 +02:00
Tomáš Znamenáček e7f7ee50a6 Using numerical value instead of the __MAC_10_12 symbol 2016-10-28 15:05:17 +02:00
Tomáš Znamenáček 7dfde95369 Key mask conditional compilation fix #2 2016-10-28 14:59:31 +02:00
Tomáš Znamenáček 0d54ede869 Trying to fix conditional key mask definition on 10.12 2016-10-28 14:52:37 +02:00
Tomáš Znamenáček f12ed861b0 Use modern key mask constants instead of the ones deprecated in 10.12
See #99 for details.
2016-10-28 14:40:32 +02:00
Tomáš Znamenáček bf4329178d Update build warnings as suggested by Xcode 8 2016-10-28 13:10:58 +02:00
Tomáš Znamenáček 0e0bc77433 Release 2.3.5 2016-09-07 08:56:18 +02:00
Tomáš Znamenáček 37b480f32a Improve Italian localization 2016-09-07 08:53:17 +02:00
Tomáš Znamenáček 2d1bb41d0c Link to a commit message writing guide 2016-08-12 11:53:26 +02:00
12 changed files with 69 additions and 27 deletions
+6
View File
@@ -1,3 +1,9 @@
2.3.6 2016/10/30
- Improve compatibility with the 10.12 SDK [thanks to Clemens Schulz]
2.3.5 2016/9/7
- Improve Italian localization [zoul]
2.3.4 2016/8/12
- Simplified and traditional Chinese localization [MichaelRow]
- Add Korean, Dutch, Polish, Russian & update Spanish localizations [Radek Pietruszewski]
+2 -2
View File
@@ -4,7 +4,7 @@ Please note that this framework supports older OS X versions down to 10.6. When
# Commit Messages
Please use descriptive commit message. As an example, _Bug fix_ commit message doesnt say much, while _Fixed a memory-management bug in formatting code_ works much better.
Please use descriptive commit message. As an example, _Bug fix_ commit message doesnt say much, while _Fix a memory-management bug in formatting code_ works much better. A [nice detailed article about writing commit messages](http://chris.beams.io/posts/git-commit/) is also available.
# How to Release a New Version
@@ -26,4 +26,4 @@ Now push both the commits and tags (`--tags`) to GitHub and push the new podspec
This will run sanity checks on the podspec and fail if the spec does not validate.
Thats it. Go have a beer or a cup of tea to celebrate.
Thats it. Go have a beer or a cup of tea to celebrate.
+1 -1
View File
@@ -83,7 +83,7 @@ static void *MASObservingContext = &MASObservingContext;
- (void) setHardcodedShortcutEnabled: (BOOL) enabled
{
MASShortcut *shortcut = [MASShortcut shortcutWithKeyCode:kVK_F2 modifierFlags:NSCommandKeyMask];
MASShortcut *shortcut = [MASShortcut shortcutWithKeyCode:kVK_F2 modifierFlags:NSEventModifierFlagCommand];
if (enabled) {
[[MASShortcutMonitor sharedMonitor] registerShortcut:shortcut withAction:^{
[self playShortcutFeedback];
+2 -2
View File
@@ -15,9 +15,9 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.3.4</string>
<string>2.3.6</string>
<key>CFBundleVersion</key>
<string>2.3.4</string>
<string>2.3.6</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © Vadim Shpakovski. All rights reserved.</string>
</dict>
+6 -5
View File
@@ -1,5 +1,6 @@
#import <Carbon/Carbon.h>
#import <AppKit/AppKit.h>
#import "MASKeyMasks.h"
// These glyphs are missed in Carbon.h
enum {
@@ -30,14 +31,14 @@ NS_INLINE NSString* NSStringFromMASKeyCode(unsigned short ch)
NS_INLINE NSUInteger MASPickCocoaModifiers(NSUInteger flags)
{
return (flags & (NSControlKeyMask | NSShiftKeyMask | NSAlternateKeyMask | NSCommandKeyMask));
return (flags & (NSEventModifierFlagControl | NSEventModifierFlagShift | NSEventModifierFlagOption | NSEventModifierFlagCommand));
}
NS_INLINE UInt32 MASCarbonModifiersFromCocoaModifiers(NSUInteger cocoaFlags)
{
return
(cocoaFlags & NSCommandKeyMask ? cmdKey : 0)
| (cocoaFlags & NSAlternateKeyMask ? optionKey : 0)
| (cocoaFlags & NSControlKeyMask ? controlKey : 0)
| (cocoaFlags & NSShiftKeyMask ? shiftKey : 0);
(cocoaFlags & NSEventModifierFlagCommand ? cmdKey : 0)
| (cocoaFlags & NSEventModifierFlagOption ? optionKey : 0)
| (cocoaFlags & NSEventModifierFlagControl ? controlKey : 0)
| (cocoaFlags & NSEventModifierFlagShift ? shiftKey : 0);
}
+18
View File
@@ -0,0 +1,18 @@
#import <Availability.h>
// https://github.com/shpakovski/MASShortcut/issues/99
//
// Long story short: NSControlKeyMask and friends were replaced with NSEventModifierFlagControl
// and similar in macOS Sierra. The project builds fine & clean, but including MASShortcut in
// a project with deployment target set to 10.12 results in several deprecation warnings because
// of the control masks. Simply replacing the old symbols with the new ones isnt an option,
// since it breaks the build on older SDKs in Travis, for example.
//
// It should be safe to remove this whole thing once the 10.12 SDK is ubiquitous.
#if __MAC_OS_X_VERSION_MAX_ALLOWED < 101200
#define NSEventModifierFlagCommand NSCommandKeyMask
#define NSEventModifierFlagControl NSControlKeyMask
#define NSEventModifierFlagOption NSAlternateKeyMask
#define NSEventModifierFlagShift NSShiftKeyMask
#endif
+2 -1
View File
@@ -1,7 +1,8 @@
#import "MASKeyMasks.h"
#import "MASShortcut.h"
#import "MASShortcutValidator.h"
#import "MASShortcutMonitor.h"
#import "MASShortcutBinder.h"
#import "MASDictionaryTransformer.h"
#import "MASShortcutView.h"
#import "MASShortcutView+Bindings.h"
#import "MASShortcutView+Bindings.h"
+2 -2
View File
@@ -1,7 +1,7 @@
# coding: utf-8
Pod::Spec.new do |s|
s.name = 'MASShortcut'
s.version = '2.3.4'
s.version = '2.3.6'
s.summary = 'Modern framework for managing global keyboard shortcuts compatible with Mac App Store'
s.homepage = 'https://github.com/shpakovski/MASShortcut'
s.license = 'BSD 2-clause'
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
s.platform = :osx
s.osx.deployment_target = "10.6"
s.source = { :git => 'https://github.com/shpakovski/MASShortcut.git', :tag => '2.3.4' }
s.source = { :git => 'https://github.com/shpakovski/MASShortcut.git', :tag => '2.3.6' }
s.source_files = 'Framework/*.{h,m}'
s.exclude_files = 'Framework/*Tests.m'
s.osx.frameworks = 'Carbon', 'AppKit'
+17 -1
View File
@@ -33,6 +33,7 @@
0D827D9F19911A190010B8EF /* MASShortcutValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D827D9D19911A190010B8EF /* MASShortcutValidator.m */; };
0D827DA519912D240010B8EF /* MASShortcutMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D827DA319912D240010B8EF /* MASShortcutMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; };
0D827DAD199132840010B8EF /* MASShortcutBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D827DAB199132840010B8EF /* MASShortcutBinder.h */; settings = {ATTRIBUTES = (Public, ); }; };
0DA8BCFC1DC37D8000C96EB9 /* MASKeyMasks.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DA8BCFB1DC37D8000C96EB9 /* MASKeyMasks.h */; settings = {ATTRIBUTES = (Public, ); }; };
0DC2F17619922798003A0131 /* MASHotKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DC2F17419922798003A0131 /* MASHotKey.h */; };
0DC2F17719922798003A0131 /* MASHotKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DC2F17519922798003A0131 /* MASHotKey.m */; };
0DC2F17C199232EA003A0131 /* MASShortcutMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D827DA419912D240010B8EF /* MASShortcutMonitor.m */; };
@@ -114,6 +115,7 @@
0D827DA419912D240010B8EF /* MASShortcutMonitor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASShortcutMonitor.m; path = Framework/MASShortcutMonitor.m; sourceTree = "<group>"; };
0D827DAB199132840010B8EF /* MASShortcutBinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MASShortcutBinder.h; path = Framework/MASShortcutBinder.h; sourceTree = "<group>"; };
0D827DAC199132840010B8EF /* MASShortcutBinder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASShortcutBinder.m; path = Framework/MASShortcutBinder.m; sourceTree = "<group>"; };
0DA8BCFB1DC37D8000C96EB9 /* MASKeyMasks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MASKeyMasks.h; path = Framework/MASKeyMasks.h; sourceTree = "<group>"; };
0DC2F17419922798003A0131 /* MASHotKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MASHotKey.h; path = Framework/MASHotKey.h; sourceTree = "<group>"; };
0DC2F17519922798003A0131 /* MASHotKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASHotKey.m; path = Framework/MASHotKey.m; sourceTree = "<group>"; };
0DC2F18819925F8F003A0131 /* MASShortcutBinderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASShortcutBinderTests.m; path = Framework/MASShortcutBinderTests.m; sourceTree = "<group>"; };
@@ -237,6 +239,7 @@
0D827DA019912A660010B8EF /* Model */ = {
isa = PBXGroup;
children = (
0DA8BCFB1DC37D8000C96EB9 /* MASKeyMasks.h */,
0D827D9619910FF70010B8EF /* MASKeyCodes.h */,
0D827D1B1990D55E0010B8EF /* MASShortcut.h */,
0D827D1C1990D55E0010B8EF /* MASShortcut.m */,
@@ -293,6 +296,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
0DA8BCFC1DC37D8000C96EB9 /* MASKeyMasks.h in Headers */,
0D827D9719910FF70010B8EF /* MASKeyCodes.h in Headers */,
0D827D2B1990D55E0010B8EF /* MASShortcutView.h in Headers */,
0D827D99199110F60010B8EF /* Prefix.pch in Headers */,
@@ -371,7 +375,7 @@
0D827CCA1990D4420010B8EF /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0730;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Vadim Shpakovski";
TargetAttributes = {
0D827D8219910AFF0010B8EF = {
@@ -533,6 +537,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -542,14 +547,19 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -573,6 +583,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -582,14 +593,19 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
+11 -11
View File
@@ -2,13 +2,13 @@
"Cancel" = "Annulla";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Click to record new shortcut";
"Click to record new shortcut" = "Cliccare per registrare una nuova combinazione";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Delete shortcut";
"Delete shortcut" = "Cancella scorciatoia";
/* VoiceOver title */
"keyboard shortcut" = "keyboard shortcut";
"keyboard shortcut" = "Scorciatoia da tastiera";
/* Alert button when shortcut is already used */
"OK" = "OK";
@@ -17,31 +17,31 @@
"Record Shortcut" = "Registra scorciatoia";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Shortcut cleared";
"Shortcut cleared" = "Scorciatoia rimossa";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Shortcut set";
"Shortcut set" = "Scorciatoia impostata";
/* Shortcut glyph name for SPACE key */
"Space" = "Spazio";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "The key combination %@ cannot be used";
"The key combination %@ cannot be used" = "Questa combinazione %@ di tasti non può essere usata";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences.";
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Questa combinazione di tasti non può essere usata perchè è già usata da una scorciatoia da tastiera a livello di Sistema.\nSe volete davvero usare questa combinazione di tasti, la maggior parte delle scorciatoie possono essere cambiate nel pannello Tastiera e Mouse delle Preferenze di Sistema.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "This shortcut cannot be used because it is already used by the menu item %@.";
"This shortcut cannot be used because it is already used by the menu item %@." = "Questa combinazione di tasti non può essere usata perchè è già usata dalla voce di menù %@.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut.";
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Per registrare una nuova scorciatoia, cliccare su questo pulsante e poi inserire la muova scorciatoia o premere cancella per resettare una scorciatoia esistente.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Digita scorciatoia";
"Type New Shortcut" = "Digita nuova";
/* Empty shortcut button in recording state */
"Type Shortcut" = "Digita scorciatoia";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Use Old Shortcut";
"Use Old Shortcut" = "Usare vecchia";