diff --git a/SpacesRenamer/Info.plist b/SpacesRenamer/Info.plist index 922228f..7840770 100644 --- a/SpacesRenamer/Info.plist +++ b/SpacesRenamer/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.7.2 + 1.7.3 CFBundleVersion 1 LSMinimumSystemVersion diff --git a/build/spaces-renamer.zip b/build/spaces-renamer.zip index bef1f39..78b1d40 100644 Binary files a/build/spaces-renamer.zip and b/build/spaces-renamer.zip differ diff --git a/spaces-renamer/Info.plist b/spaces-renamer/Info.plist index 95fb99d..3a299d6 100755 --- a/spaces-renamer/Info.plist +++ b/spaces-renamer/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.7.2 + 1.7.3 CFBundleSignature ???? CFBundleVersion diff --git a/spaces-renamer/spacesRenamer.m b/spaces-renamer/spacesRenamer.m index 05bf0ce..c1781cc 100755 --- a/spaces-renamer/spacesRenamer.m +++ b/spaces-renamer/spacesRenamer.m @@ -13,7 +13,7 @@ static char OVERRIDDEN_STRING; static char OVERRIDDEN_WIDTH; static char OFFSET; -static char MOVED; +static char NEW_X; static char TYPE; #define customNamesPlist [@"~/Library/Containers/com.alexbeals.spacesrenamer/com.alexbeals.spacesrenamer.plist" stringByExpandingTildeInPath] @@ -186,42 +186,35 @@ static int getSelected(NSArray *views) { ZKSwizzleInterface(_SRCALayer, CALayer, CALayer); @implementation _SRCALayer -- (void)setBounds:(CGRect)arg1 { - - return ZKOrig(void, arg1); -} - (void)setFrame:(CGRect)arg1 { id possibleWidth = objc_getAssociatedObject(self, &OVERRIDDEN_WIDTH); if (possibleWidth && [possibleWidth isKindOfClass:[NSNumber class]] && self.class == NSClassFromString(@"CALayer")) { arg1.size.width = [possibleWidth doubleValue] + 20; } + + id possibleType = objc_getAssociatedObject(self, &TYPE); + if (possibleType == nil) { + return ZKOrig(void, arg1); + } - int textIndex = self.sublayers.lastObject.class == NSClassFromString(@"ECTextLayer") - ? (int)self.sublayers.count - 1 - : -1; - - if (textIndex != -1) { - id possibleWidth = objc_getAssociatedObject(self.sublayers[textIndex], &OVERRIDDEN_WIDTH); - if (possibleWidth && [possibleWidth isKindOfClass:[NSNumber class]]) { - arg1.size.width = [possibleWidth doubleValue]; - } - - id possibleType = objc_getAssociatedObject(self, &TYPE); - if (possibleType && [possibleType isEqualToString:@"expanded"]) { - // Always just center in the parent view - arg1.origin.x = self.superlayer.frame.size.width / 2 - arg1.size.width / 2; - } else { - id possibleOffset = objc_getAssociatedObject(self.sublayers[textIndex], &OFFSET); - id didMove = objc_getAssociatedObject(self, &MOVED); - // Only change the offsets once - if (possibleOffset && [possibleOffset isKindOfClass:[NSNumber class]] && (!didMove || ![didMove boolValue])) { - arg1.origin.x += [possibleOffset doubleValue]; + int textIndex = (int)self.sublayers.count - 1; + possibleWidth = objc_getAssociatedObject(self.sublayers[textIndex], &OVERRIDDEN_WIDTH); + if (possibleWidth && [possibleWidth isKindOfClass:[NSNumber class]]) { + arg1.size.width = [possibleWidth doubleValue]; + } - assign(self, &MOVED, [NSNumber numberWithBool:YES]); - } + if ([possibleType isEqualToString:@"expanded"]) { + // Always just center in the parent view + arg1.origin.x = self.superlayer.frame.size.width / 2 - arg1.size.width / 2; + } else if ([possibleType isEqualToString:@"unexpanded"]) { + id possibleOffset = objc_getAssociatedObject(self.sublayers[textIndex], &OFFSET); + id newX = objc_getAssociatedObject(self, &NEW_X); + // Only change the offsets once + if (possibleOffset && [possibleOffset isKindOfClass:[NSNumber class]] && (newX == nil || [newX doubleValue] != arg1.origin.x)) { + arg1.origin.x += [possibleOffset doubleValue]; + + assign(self, &NEW_X, @(arg1.origin.x)); } - - } return ZKOrig(void, arg1);