Skip to content

Commit fb8297a

Browse files
author
overtake
committed
Merge branch 'beta' into video-calls
# Conflicts: # Telegram-Mac/Info.plist # TelegramShare/Info.plist
2 parents 6f61001 + 9cd1d3b commit fb8297a

File tree

7 files changed

+44
-17
lines changed

7 files changed

+44
-17
lines changed

‎Telegram-Mac.xcworkspace/xcuserdata/keepcoder.xcuserdatad/xcdebugger/Expressions.xcexplist

+8
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@
4343
<ContextState
4444
contextName = "closure #6 in DiceCache.init(postbox:network:):DiceCache.swift">
4545
</ContextState>
46+
<ContextState
47+
contextName = "MagnifyView.contentSize.didset:MagnifyView.swift">
48+
<PersistentStrings>
49+
<PersistentString
50+
value = "self.contentSize">
51+
</PersistentString>
52+
</PersistentStrings>
53+
</ContextState>
4654
<ContextState
4755
contextName = "TableView.merge(with:):TableView.swift">
4856
</ContextState>

‎Telegram-Mac/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
</dict>
3737
</array>
3838
<key>CFBundleVersion</key>
39-
<string>202704</string>
39+
<string>202742</string>
4040
<key>LSApplicationCategoryType</key>
4141
<string>public.app-category.social-networking</string>
4242
<key>LSFileQuarantineEnabled</key>

‎Telegram-Mac/MGalleryItem.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ class MGalleryItem: NSObject, Comparable, Identifiable {
353353

354354
var disableAnimations: Bool = false
355355

356-
private(set) var modifiedSize: NSSize? = nil
356+
var modifiedSize: NSSize? = nil
357357

358358
private(set) var magnifyValue:CGFloat = 1.0
359359
var stableId: AnyHashable {
@@ -466,7 +466,7 @@ class MGalleryItem: NSObject, Comparable, Identifiable {
466466
// }
467467
// } else {
468468
var size = magnify.contentSize
469-
if self is MGalleryPhotoItem || self is MGalleryPeerPhotoItem, !first {
469+
if self is MGalleryPhotoItem || self is MGalleryPeerPhotoItem, let modifiedSize = self.modifiedSize {
470470
// if magnify.magnify > 1 {
471471
if value.rotation == nil {
472472
size = value.size?.aspectFitted(size) ?? size

‎Telegram-Mac/MGalleryPhotoItem.swift

+11-2
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,19 @@ class MGalleryPhotoItem: MGalleryItem {
133133

134134
let (size, orientation) = data
135135
return chatGalleryPhoto(account: context.account, imageReference: entry.imageReference(media), scale: System.backingScale, secureIdAccessContext: secureIdAccessContext, synchronousLoad: true)
136-
|> map { transform in
136+
|> map { [weak self] transform in
137137

138-
let size = NSMakeSize(ceil(size.width * magnify), ceil(size.height * magnify))
138+
var size = NSMakeSize(ceil(size.width * magnify), ceil(size.height * magnify))
139139
let image = transform(TransformImageArguments(corners: ImageCorners(), imageSize: size, boundingSize: size, intrinsicInsets: NSEdgeInsets()))
140+
141+
if let image = image, orientation == nil {
142+
let newSize = image.size.aspectFitted(size)
143+
if newSize != size {
144+
size = newSize
145+
self?.modifiedSize = image.size
146+
}
147+
}
148+
140149
if let orientation = orientation {
141150
let transformed = image?.createMatchingBackingDataWithImage(orienation: orientation)
142151
if let transformed = transformed {

‎Telegram-Mac/MediaUtils.swift

+15-8
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ func chatGalleryPhoto(account: Account, imageReference: ImageMediaReference, toR
287287

288288
let options = NSMutableDictionary()
289289

290-
options.setValue(max(fittedSize.width * scale, fittedSize.height * scale) as NSNumber, forKey: kCGImageSourceThumbnailMaxPixelSize as String)
290+
options.setValue(max(fittedSize.width, fittedSize.height) as NSNumber, forKey: kCGImageSourceThumbnailMaxPixelSize as String)
291291
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailFromImageAlways as String)
292292
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCache as String)
293293
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCacheImmediately as String)
@@ -365,8 +365,8 @@ func chatMessagePhoto(account: Account, imageReference: ImageMediaReference, toR
365365
options.setValue(max(fittedSize.width * context.scale, fittedSize.height * context.scale) as NSNumber, forKey: kCGImageSourceThumbnailMaxPixelSize as String)
366366
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCache as String)
367367

368-
// options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailFromImageAlways as String)
369-
if let imageSource = CGImageSourceCreateWithData(fullSizeData as CFData, nil), let image = CGImageSourceCreateImageAtIndex(imageSource, 0, options as CFDictionary) {
368+
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailFromImageAlways as String)
369+
if let imageSource = CGImageSourceCreateWithData(fullSizeData as CFData, nil), let image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options as CFDictionary) {
370370
fullSizeImage = image
371371
}
372372

@@ -386,7 +386,7 @@ func chatMessagePhoto(account: Account, imageReference: ImageMediaReference, toR
386386
options[kCGImageSourceShouldCache as NSString] = false as NSNumber
387387

388388
var thumbnailImage: CGImage?
389-
if let thumbnailData = thumbnailData, let imageSource = CGImageSourceCreateWithData(thumbnailData as CFData, options), let image = CGImageSourceCreateImageAtIndex(imageSource, 0, options) {
389+
if let thumbnailData = thumbnailData, let imageSource = CGImageSourceCreateWithData(thumbnailData as CFData, options), let image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options) {
390390
thumbnailImage = image
391391
}
392392

@@ -2442,11 +2442,14 @@ func chatMessageImageFile(account: Account, fileReference: FileMediaReference, p
24422442

24432443
if let fullSizeData = data.fullSizeData {
24442444
let options = NSMutableDictionary()
2445+
// options.setValue(max(fittedSize.width * 3, fittedSize.height * 3) as NSNumber, forKey: kCGImageSourceThumbnailMaxPixelSize as String)
24452446
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailFromImageAlways as String)
2447+
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCache as String)
2448+
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCacheImmediately as String)
24462449
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailWithTransform as String)
2447-
options[kCGImageSourceShouldCache as NSString] = false as NSNumber
2450+
24482451
if let imageSource = CGImageSourceCreateWithData(fullSizeData as CFData, options) {
2449-
if let image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options) {
2452+
if let image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options as CFDictionary) {
24502453
fullSizeImage = image
24512454
} else if let image = CGImageSourceCreateImageAtIndex(imageSource, 0, options) {
24522455
fullSizeImage = image
@@ -2455,11 +2458,15 @@ func chatMessageImageFile(account: Account, fileReference: FileMediaReference, p
24552458
}
24562459

24572460
let options = NSMutableDictionary()
2458-
options[kCGImageSourceShouldCache as NSString] = false as NSNumber
2461+
// options.setValue(max(fittedSize.width * 3, fittedSize.height * 3) as NSNumber, forKey: kCGImageSourceThumbnailMaxPixelSize as String)
2462+
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailFromImageAlways as String)
2463+
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCache as String)
2464+
options.setValue(false as NSNumber, forKey: kCGImageSourceShouldCacheImmediately as String)
2465+
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailWithTransform as String)
24592466

24602467

24612468
var thumbnailImage: CGImage?
2462-
if let thumbnailData = data.thumbnailData, let imageSource = CGImageSourceCreateWithData(thumbnailData as CFData, options), let image = CGImageSourceCreateImageAtIndex(imageSource, 0, options) {
2469+
if let thumbnailData = data.thumbnailData, let imageSource = CGImageSourceCreateWithData(thumbnailData as CFData, options), let image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options) {
24632470
thumbnailImage = image
24642471
}
24652472

‎Telegram-Mac/SenderController.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ class Sender: NSObject {
100100

101101
let options = NSMutableDictionary()
102102
options.setValue(320 as NSNumber, forKey: kCGImageDestinationImageMaxPixelSize as String)
103-
103+
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailWithTransform as String)
104+
104105
let colorQuality: Float = 0.3
105106
options.setObject(colorQuality as NSNumber, forKey: kCGImageDestinationLossyCompressionQuality as NSString)
106107

@@ -131,11 +132,13 @@ class Sender: NSObject {
131132

132133
let colorQuality: Float = 0.7
133134
options.setObject(colorQuality as NSNumber, forKey: kCGImageDestinationLossyCompressionQuality as NSString)
134-
135+
options.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailWithTransform as String)
136+
135137
let sourceOptions = NSMutableDictionary()
136138
sourceOptions.setValue(320 as NSNumber, forKey: kCGImageSourceThumbnailMaxPixelSize as String)
137139
sourceOptions.setObject(true as NSNumber, forKey: kCGImageSourceCreateThumbnailFromImageAlways as NSString)
138-
140+
sourceOptions.setValue(true as NSNumber, forKey: kCGImageSourceCreateThumbnailWithTransform as String)
141+
139142
if let imageSource = CGImageSourceCreateWithData(thumbData as CFData, sourceOptions) {
140143
let image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, sourceOptions)
141144
if let image = image {

‎TelegramShare/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<key>CFBundleShortVersionString</key>
2222
<string>6.2.3</string>
2323
<key>CFBundleVersion</key>
24-
<string>202704</string>
24+
<string>202742</string>
2525
<key>LSMinimumSystemVersion</key>
2626
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
2727
<key>NSExtension</key>

0 commit comments

Comments
 (0)