obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
58.89k stars 7.84k forks source link

[BUG] Copy and Paste menu items disabled in Settings and other windows in macOS #2893

Open unknowndomain opened 4 years ago

unknowndomain commented 4 years ago

Platform

Operating system and version: macOS Catalina 10.15.4 (It affects all macOS versions) OBS Studio version: 25.0.8 (It affects all OBS versions)

Current Behavior

The macOS version of OBS treats the menu bar like a Windows menu bar, i.e. that it's attached to each window and contextual to that window, however this doesn't really work for macOS as the menu bar is supposed to be contextual for each window of the application.

To get around this the menu bar only works for the main windows and is simply disabled whenever a modal window, sheet, or utility window are popped up, for example warning prompts, settings, properties, autoconfiguration, etc...

The issue with this is that OBS breaks many common macOS patterns that less techie users would be familiar with i.e. copy and paste, this comes up on a regular basis on Discord.

Expected Behavior

That OBS would retain at least some of the basic window specific commands and their shortcuts such as:

Copy - Command + C (Normally in the Edit menu) Paste - Command + P (Normally in the Edit menu) Close window - Command + W (Normally in the File menu) Minimise window - Command + M (Normally in the Window menu)

Screenshot 2020-05-09 at 15 16 23 Screenshot 2020-05-09 at 15 16 31

Steps to Reproduce

  1. Launch OBS on macOS
  2. Go to settings
  3. Click on a text field
  4. In the menu bar click Edit > Copy

You can't do this because it's disabled, the same is true for Edit > Paste.

Example support issues

They all revolve around pasting the stream key but I could imagine the same issue with browser source URLs.

https://discordapp.com/channels/348973006581923840/636682784156549152/708674403348774943

https://discordapp.com/channels/348973006581923840/636682784156549152/701123168034750575

https://discordapp.com/channels/348973006581923840/636682784156549152/689842647472537705

PatTheMav commented 4 years ago

The macOS version of OBS treats the menu bar like a Windows menu bar

If I'm not mistaken that's exactly how Qt treats it which then also leads to the idiosyncrasies you mentioned. I agree that there are quite a few tweaks that are necessary to make the App feel more at home on macOS (on top of all the other little UI quirks on all platforms), but ultimately Qt will be the defining factor here.

If you're willing, you're more than welcome to investigate Qt's (v5.14.1) compatibility with regards to Apple's interface guidelines (https://developer.apple.com/design/human-interface-guidelines/macos/overview/themes/) and check if there are quick wins for the project.

WizardCM commented 3 years ago

Qt documents how this is supposed to be done here - https://doc.qt.io/qt-5/macos-issues.html#menu-bar

If the window has a QMenuBar, then it is used. If the window is modal, then its menu bar is used. If no menu bar is specified, then a default menu bar is used (as documented below).

Other standard menu items such as Cut, Copy, Paste and Select All are applicable both in your application and in some native dialogs such as QFileDialog. It's important that you create these menu items with the standard shortcuts so that the corresponding editing features will be enabled in the dialogs.

My suggestion would be to create a second QMenuBar (our default one is in OBSBasic.ui) that can be set for dialogs, including Properties and Settings. It'd include the usual Copy/Paste etc.