Evaluate [normalWindow styleMask] & NSWindowStyleMaskResizable instead.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
ui/cocoa.m | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 81de8d92669b..401ed0c3f1f5 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -103,7 +103,6 @@ static void cocoa_switch(DisplayChangeListener *dcl,
static int left_command_key_enabled = 1;
static bool swap_opt_cmd;
-static bool stretch_video;
static NSTextField *pauseLabel;
static bool allow_events;
@@ -533,7 +532,7 @@ - (void) resizeWindow
{
[[self window] setContentAspectRatio:NSMakeSize(screen.width, screen.height)];
- if (!stretch_video) {
+ if (!([[self window] styleMask] & NSWindowStyleMaskResizable)) {
[[self window] setContentSize:NSMakeSize(screen.width, screen.height)];
[[self window] center];
} else if ([[self window] styleMask] & NSWindowStyleMaskFullScreen) {
@@ -1296,7 +1295,7 @@ - (BOOL)windowShouldClose:(id)sender
- (NSSize) window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize
{
- if (stretch_video) {
+ if ([normalWindow styleMask] & NSWindowStyleMaskResizable) {
return [cocoaView fixZoomedFullScreenSize:proposedSize];
}
@@ -1377,8 +1376,7 @@ - (void)showQEMUDoc:(id)sender
/* Stretches video to fit host monitor size */
- (void)zoomToFit:(id) sender
{
- stretch_video = !stretch_video;
- if (stretch_video == true) {
+ if (([normalWindow styleMask] & NSWindowStyleMaskResizable) == 0) {
[normalWindow setStyleMask:[normalWindow styleMask] | NSWindowStyleMaskResizable];
[sender setState: NSControlStateValueOn];
} else {
@@ -1650,7 +1648,7 @@ static void create_initial_menus(void)
menu = [[NSMenu alloc] initWithTitle:@"View"];
[menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Enter Fullscreen" action:@selector(doToggleFullScreen:) keyEquivalent:@"f"] autorelease]]; // Fullscreen
menuItem = [[[NSMenuItem alloc] initWithTitle:@"Zoom To Fit" action:@selector(zoomToFit:) keyEquivalent:@""] autorelease];
- [menuItem setState: stretch_video ? NSControlStateValueOn : NSControlStateValueOff];
+ [menuItem setState: [normalWindow styleMask] & NSWindowStyleMaskResizable ? NSControlStateValueOn : NSControlStateValueOff];
[menu addItem: menuItem];
menuItem = [[[NSMenuItem alloc] initWithTitle:@"View" action:nil keyEquivalent:@""] autorelease];
[menuItem setSubmenu:menu];
@@ -2036,7 +2034,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts)
}
if (opts->u.cocoa.has_zoom_to_fit && opts->u.cocoa.zoom_to_fit) {
- stretch_video = true;
[normalWindow setStyleMask:[normalWindow styleMask] | NSWindowStyleMaskResizable];
}
--
2.43.1
On Sat, 17 Feb 2024 at 11:19, Akihiko Odaki <akihiko.odaki@daynix.com> wrote: > > Evaluate [normalWindow styleMask] & NSWindowStyleMaskResizable instead. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > --- > ui/cocoa.m | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/ui/cocoa.m b/ui/cocoa.m > index 81de8d92669b..401ed0c3f1f5 100644 > --- a/ui/cocoa.m > +++ b/ui/cocoa.m > @@ -103,7 +103,6 @@ static void cocoa_switch(DisplayChangeListener *dcl, > static int left_command_key_enabled = 1; > static bool swap_opt_cmd; > > -static bool stretch_video; > static NSTextField *pauseLabel; > > static bool allow_events; > @@ -533,7 +532,7 @@ - (void) resizeWindow > { > [[self window] setContentAspectRatio:NSMakeSize(screen.width, screen.height)]; > > - if (!stretch_video) { > + if (!([[self window] styleMask] & NSWindowStyleMaskResizable)) { > [[self window] setContentSize:NSMakeSize(screen.width, screen.height)]; > [[self window] center]; > } else if ([[self window] styleMask] & NSWindowStyleMaskFullScreen) { > @@ -1296,7 +1295,7 @@ - (BOOL)windowShouldClose:(id)sender > > - (NSSize) window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize > { > - if (stretch_video) { > + if ([normalWindow styleMask] & NSWindowStyleMaskResizable) { > return [cocoaView fixZoomedFullScreenSize:proposedSize]; > } > > @@ -1377,8 +1376,7 @@ - (void)showQEMUDoc:(id)sender > /* Stretches video to fit host monitor size */ > - (void)zoomToFit:(id) sender > { > - stretch_video = !stretch_video; > - if (stretch_video == true) { > + if (([normalWindow styleMask] & NSWindowStyleMaskResizable) == 0) { > [normalWindow setStyleMask:[normalWindow styleMask] | NSWindowStyleMaskResizable]; > [sender setState: NSControlStateValueOn]; > } else { > @@ -1650,7 +1648,7 @@ static void create_initial_menus(void) > menu = [[NSMenu alloc] initWithTitle:@"View"]; > [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Enter Fullscreen" action:@selector(doToggleFullScreen:) keyEquivalent:@"f"] autorelease]]; // Fullscreen > menuItem = [[[NSMenuItem alloc] initWithTitle:@"Zoom To Fit" action:@selector(zoomToFit:) keyEquivalent:@""] autorelease]; > - [menuItem setState: stretch_video ? NSControlStateValueOn : NSControlStateValueOff]; > + [menuItem setState: [normalWindow styleMask] & NSWindowStyleMaskResizable ? NSControlStateValueOn : NSControlStateValueOff]; > [menu addItem: menuItem]; > menuItem = [[[NSMenuItem alloc] initWithTitle:@"View" action:nil keyEquivalent:@""] autorelease]; > [menuItem setSubmenu:menu]; > @@ -2036,7 +2034,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts) > } > > if (opts->u.cocoa.has_zoom_to_fit && opts->u.cocoa.zoom_to_fit) { > - stretch_video = true; > [normalWindow setStyleMask:[normalWindow styleMask] | NSWindowStyleMaskResizable]; > } It's nice to get rid of the boolean, but [normalWindow styleMask] & NSWindowStyleMaskResizable feels a bit clunky -- maybe we should wrap it in a method with a suitable name ? (isZoomToFit, maybe? but I'm not too familiar with what cocoa function naming style is.) -- PMM
On 2024/02/23 1:53, Peter Maydell wrote: > On Sat, 17 Feb 2024 at 11:19, Akihiko Odaki <akihiko.odaki@daynix.com> wrote: >> >> Evaluate [normalWindow styleMask] & NSWindowStyleMaskResizable instead. >> >> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> >> --- >> ui/cocoa.m | 11 ++++------- >> 1 file changed, 4 insertions(+), 7 deletions(-) >> >> diff --git a/ui/cocoa.m b/ui/cocoa.m >> index 81de8d92669b..401ed0c3f1f5 100644 >> --- a/ui/cocoa.m >> +++ b/ui/cocoa.m >> @@ -103,7 +103,6 @@ static void cocoa_switch(DisplayChangeListener *dcl, >> static int left_command_key_enabled = 1; >> static bool swap_opt_cmd; >> >> -static bool stretch_video; >> static NSTextField *pauseLabel; >> >> static bool allow_events; >> @@ -533,7 +532,7 @@ - (void) resizeWindow >> { >> [[self window] setContentAspectRatio:NSMakeSize(screen.width, screen.height)]; >> >> - if (!stretch_video) { >> + if (!([[self window] styleMask] & NSWindowStyleMaskResizable)) { >> [[self window] setContentSize:NSMakeSize(screen.width, screen.height)]; >> [[self window] center]; >> } else if ([[self window] styleMask] & NSWindowStyleMaskFullScreen) { >> @@ -1296,7 +1295,7 @@ - (BOOL)windowShouldClose:(id)sender >> >> - (NSSize) window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize >> { >> - if (stretch_video) { >> + if ([normalWindow styleMask] & NSWindowStyleMaskResizable) { >> return [cocoaView fixZoomedFullScreenSize:proposedSize]; >> } >> >> @@ -1377,8 +1376,7 @@ - (void)showQEMUDoc:(id)sender >> /* Stretches video to fit host monitor size */ >> - (void)zoomToFit:(id) sender >> { >> - stretch_video = !stretch_video; >> - if (stretch_video == true) { >> + if (([normalWindow styleMask] & NSWindowStyleMaskResizable) == 0) { >> [normalWindow setStyleMask:[normalWindow styleMask] | NSWindowStyleMaskResizable]; >> [sender setState: NSControlStateValueOn]; >> } else { >> @@ -1650,7 +1648,7 @@ static void create_initial_menus(void) >> menu = [[NSMenu alloc] initWithTitle:@"View"]; >> [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Enter Fullscreen" action:@selector(doToggleFullScreen:) keyEquivalent:@"f"] autorelease]]; // Fullscreen >> menuItem = [[[NSMenuItem alloc] initWithTitle:@"Zoom To Fit" action:@selector(zoomToFit:) keyEquivalent:@""] autorelease]; >> - [menuItem setState: stretch_video ? NSControlStateValueOn : NSControlStateValueOff]; >> + [menuItem setState: [normalWindow styleMask] & NSWindowStyleMaskResizable ? NSControlStateValueOn : NSControlStateValueOff]; >> [menu addItem: menuItem]; >> menuItem = [[[NSMenuItem alloc] initWithTitle:@"View" action:nil keyEquivalent:@""] autorelease]; >> [menuItem setSubmenu:menu]; >> @@ -2036,7 +2034,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts) >> } >> >> if (opts->u.cocoa.has_zoom_to_fit && opts->u.cocoa.zoom_to_fit) { >> - stretch_video = true; >> [normalWindow setStyleMask:[normalWindow styleMask] | NSWindowStyleMaskResizable]; >> } > > It's nice to get rid of the boolean, but > [normalWindow styleMask] & NSWindowStyleMaskResizable > feels a bit clunky -- maybe we should wrap it in a method with > a suitable name ? (isZoomToFit, maybe? but I'm not too familiar > with what cocoa function naming style is.) I don't think we should have a method for this. It's verbose but the main reason of that is NSWindowStyleMaskResizable is wordy; otherwise it's quite a simple. There are few places that use this construct after all. In any case, I put a bit more effort to simplify style mask references with v12 so please check it out. Regards, Akihiko Odaki
On Sat, 24 Feb 2024, Akihiko Odaki wrote: > On 2024/02/23 1:53, Peter Maydell wrote: >> On Sat, 17 Feb 2024 at 11:19, Akihiko Odaki <akihiko.odaki@daynix.com> >> wrote: >>> >>> Evaluate [normalWindow styleMask] & NSWindowStyleMaskResizable instead. >>> >>> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> >>> --- >>> ui/cocoa.m | 11 ++++------- >>> 1 file changed, 4 insertions(+), 7 deletions(-) >>> >>> diff --git a/ui/cocoa.m b/ui/cocoa.m >>> index 81de8d92669b..401ed0c3f1f5 100644 >>> --- a/ui/cocoa.m >>> +++ b/ui/cocoa.m >>> @@ -103,7 +103,6 @@ static void cocoa_switch(DisplayChangeListener *dcl, >>> static int left_command_key_enabled = 1; >>> static bool swap_opt_cmd; >>> >>> -static bool stretch_video; >>> static NSTextField *pauseLabel; >>> >>> static bool allow_events; >>> @@ -533,7 +532,7 @@ - (void) resizeWindow >>> { >>> [[self window] setContentAspectRatio:NSMakeSize(screen.width, >>> screen.height)]; >>> >>> - if (!stretch_video) { >>> + if (!([[self window] styleMask] & NSWindowStyleMaskResizable)) { >>> [[self window] setContentSize:NSMakeSize(screen.width, >>> screen.height)]; >>> [[self window] center]; >>> } else if ([[self window] styleMask] & NSWindowStyleMaskFullScreen) >>> { >>> @@ -1296,7 +1295,7 @@ - (BOOL)windowShouldClose:(id)sender >>> >>> - (NSSize) window:(NSWindow *)window >>> willUseFullScreenContentSize:(NSSize)proposedSize >>> { >>> - if (stretch_video) { >>> + if ([normalWindow styleMask] & NSWindowStyleMaskResizable) { >>> return [cocoaView fixZoomedFullScreenSize:proposedSize]; >>> } >>> >>> @@ -1377,8 +1376,7 @@ - (void)showQEMUDoc:(id)sender >>> /* Stretches video to fit host monitor size */ >>> - (void)zoomToFit:(id) sender >>> { >>> - stretch_video = !stretch_video; >>> - if (stretch_video == true) { >>> + if (([normalWindow styleMask] & NSWindowStyleMaskResizable) == 0) { >>> [normalWindow setStyleMask:[normalWindow styleMask] | >>> NSWindowStyleMaskResizable]; >>> [sender setState: NSControlStateValueOn]; >>> } else { >>> @@ -1650,7 +1648,7 @@ static void create_initial_menus(void) >>> menu = [[NSMenu alloc] initWithTitle:@"View"]; >>> [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Enter >>> Fullscreen" action:@selector(doToggleFullScreen:) keyEquivalent:@"f"] >>> autorelease]]; // Fullscreen >>> menuItem = [[[NSMenuItem alloc] initWithTitle:@"Zoom To Fit" >>> action:@selector(zoomToFit:) keyEquivalent:@""] autorelease]; >>> - [menuItem setState: stretch_video ? NSControlStateValueOn : >>> NSControlStateValueOff]; >>> + [menuItem setState: [normalWindow styleMask] & >>> NSWindowStyleMaskResizable ? NSControlStateValueOn : >>> NSControlStateValueOff]; >>> [menu addItem: menuItem]; >>> menuItem = [[[NSMenuItem alloc] initWithTitle:@"View" action:nil >>> keyEquivalent:@""] autorelease]; >>> [menuItem setSubmenu:menu]; >>> @@ -2036,7 +2034,6 @@ static void cocoa_display_init(DisplayState *ds, >>> DisplayOptions *opts) >>> } >>> >>> if (opts->u.cocoa.has_zoom_to_fit && opts->u.cocoa.zoom_to_fit) { >>> - stretch_video = true; >>> [normalWindow setStyleMask:[normalWindow styleMask] | >>> NSWindowStyleMaskResizable]; >>> } >> >> It's nice to get rid of the boolean, but >> [normalWindow styleMask] & NSWindowStyleMaskResizable >> feels a bit clunky -- maybe we should wrap it in a method with >> a suitable name ? (isZoomToFit, maybe? but I'm not too familiar >> with what cocoa function naming style is.) > > I don't think we should have a method for this. It's verbose but the main > reason of that is NSWindowStyleMaskResizable is wordy; otherwise it's quite a > simple. There are few places that use this construct after all. If not a method how about a macro just to make it less long? But if Peter is otherwise happy with the current version just this does not need another version IMO. Regards, BALATON Zoltan
© 2016 - 2024 Red Hat, Inc.