[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur
From: |
Roman Bolshakov |
Subject: |
Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur |
Date: |
Sat, 9 Jan 2021 00:09:01 +0300 |
On Fri, Jan 08, 2021 at 03:00:07PM +0000, Peter Maydell wrote:
> On Fri, 8 Jan 2021 at 13:50, Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > On Sat, 2 Jan 2021 at 15:14, Roman Bolshakov <r.bolshakov@yadro.com> wrote:
> > >
> > > ui/cocoa.m:1188:44: warning: 'openFile:' is deprecated: first deprecated
> > > in macOS 11.0 - Use -[NSWorkspace openURL:] instead.
> > > [-Wdeprecated-declarations]
> > > if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] ==
> > > YES) {
> > > ^
> > > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWorkspace.h:350:1:
> > > note:
> > > 'openFile:' has been explicitly marked deprecated here
> > > - (BOOL)openFile:(NSString *)fullPath API_DEPRECATED("Use -[NSWorkspace
> > > openURL:] instead.", macos(10.0, 11.0));
> > > ^
> > >
> > > Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
> > > ---
> >
> > Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>
>
> So I was just trying to test this patch, and I found that at least
> for me the osx menu bar has stopped working in QEMU -- keyboard
> shortcuts to it still work but none of the menu buttons respond
> to the mouse. Does that happen for anybody else?
>
There's an old bug when QEMU menu bar is not responsive because it's not
properly activated. If you click off qemu and click on the qemu dock
icon then it "gets fixed" (cmd-tab works too). Do you hit the issue as
described in the article [1]? The code in the article does exactly the
same what I'm doing manually. I wanted to fix it but somehow it got
postponed for like a whole year :) I might try to make a fix this but
note, the issue is not related to the patch.
> Also, the "bring up the docs" help option (which is what this
> patch is changing) doesn't seem to work when QEMU is run from
> the source tree and the docs haven't been installed to the
> locations where it expects it might find them. Probably the
> code needs updating to work with qemu_find_file() or some
> variant on it.
>
If I add:
diff --git a/ui/cocoa.m b/ui/cocoa.m
index ea3b845b53..4772b7f981 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -1189,6 +1189,7 @@ - (void) openDocumentation: (NSString *) filename
path_array[index], filename];
full_file_url = [NSURL fileURLWithPath: full_file_path
isDirectory: false];
+ NSLog(@"%@", full_file_url);
if ([[NSWorkspace sharedWorkspace] openURL: full_file_url] == YES) {
return;
}
And click "Help"->"QEMU Documentation". I get the following logs:
2021-01-08 23:14:15.288 qemu-system-x86_64[46165:12969383]
file:///Users/roolebo/dev/qemu/apple-silicon/build/../share/doc/qemu/index.html
2021-01-08 23:14:15.288 qemu-system-x86_64[46165:12969383]
file:///Users/roolebo/dev/qemu/apple-silicon/build/../doc/qemu/index.html
2021-01-08 23:14:15.288 qemu-system-x86_64[46165:12969383]
file:///Users/roolebo/dev/qemu/apple-silicon/build/../docs/index.html
In order to get documentation on macOS. sphinx-doc has to be installed
from homebrew. The package is keg-only so sphinx-build has to be added
to PATH.
Then you can build with --enable-docs. Generated documentation resides
in the build tree after the QEMU has been switched to meson:
find . -name index.html
./build/meson-private/temp/sphinx/out/index.html
./build/docs/devel/index.html
./build/docs/tools/index.html
./build/docs/index.html
./build/docs/specs/index.html
./build/docs/interop/index.html
./build/docs/user/index.html
./build/docs/system/index.html
The problem is that the paths above don't point to docs in build tree.
The patch only fixes a warning and doesn't break existing path
resolution. The fix for out-of-tree docs is trivial:
diff --git a/ui/cocoa.m b/ui/cocoa.m
index ea3b845b53..13fba8103e 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -1176,7 +1176,7 @@ - (void)toggleFullScreen:(id)sender
- (void) openDocumentation: (NSString *) filename
{
/* Where to look for local files */
- NSString *path_array[] = {@"../share/doc/qemu/", @"../doc/qemu/",
@"../docs/"};
+ NSString *path_array[] = {@"../share/doc/qemu/", @"../doc/qemu/",
@"docs/"};
NSString *full_file_path;
NSURL *full_file_url;
I'll add it as a separate patch to v2.
1.
https://ar.al/2018/09/17/workaround-for-unclickable-app-menu-bug-with-window.makekeyandorderfront-and-nsapp.activate-on-macos/
Regards,
Roman
- [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, Roman Bolshakov, 2021/01/02
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur,
Roman Bolshakov <=
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, BALATON Zoltan, 2021/01/08
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, Christian Schoenebeck, 2021/01/09
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, Roman Bolshakov, 2021/01/09
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, Roman Bolshakov, 2021/01/09
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, BALATON Zoltan, 2021/01/09
- Re: [PATCH v2] ui/cocoa: Fix openFile: deprecation on Big Sur, Roman Bolshakov, 2021/01/09