neilalexander / seaglass

A truly native Matrix client for macOS - written in Swift/Cocoa, with E2E encryption support
Other
529 stars 34 forks source link

Support for macOS versions below 10.13 #49

Open rodneyrod opened 6 years ago

neilalexander commented 6 years ago

I'll need to look into this, but it's likely to be low priority.

The requirement for High Sierra is born out of the UI constraints - I think Seaglass uses some types of constraints that were only added in High Sierra. It may be possible to replace them with something else but don't know how complicated it will be to do.

Are you using pre-10.13 due to hardware that is no longer supported, or some other reason?

yangm97 commented 6 years ago

The supported hardware list from High Sierra is the same as Sierra, and Sierra dropped a few models from El Capitan.

Sierra's support was narrower than the five previous iterations of OS X, the former name of the Mac's operating system. 2011's OS X Lion, 2012's Mountain Lion, 2013's Mavericks, 2014's Yosemite and last year's El Capitan ran on the same set of systems: iMacs from mid-2007 on; MacBooks as old as late 2008, MacBook Pros from as long ago as late 2007; MacBook Airs from late 2008; Mac Minis from mid-2009; and Mac Pro desktops from early 2008 and later.

Apple dropped support for all Mac models that debuted in 2007 and 2008, as well as the heart of its notebook line -- MacBook Airs and MacBook Pros -- launched in 2009.

So if you're going to support "something bellow 10.13" aim for El Capitan 10.11.

rodneyrod commented 6 years ago

Yeah El Capitan was the last release for a bunch of Macs, it would make sense to make that the minimum required OS.

neilalexander commented 6 years ago

The gist of this problem is that High Sierra introduced automatic row heights in NSTableView, which Seaglass makes use of. This means that the varying heights of the messages are automatically managed by auto layout.

For versions of macOS before High Sierra that can't work out the cell heights using auto layout, you need to implement the tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat function to tell Cocoa how big each table row should be.

At the moment Seaglass doesn't really do anything in this function - I am not sure how to work out how tall the cell should be based on the text field yet. Once I figure out how to do this then I am fairly sure this will fix the Seaglass room view on older macOS versions.