git.y1.nz

SameBoy

Accurate GB/GBC emulator
download: https://git.y1.nz/archives/sameboy.tar.gz
README | Files | Log | Refs | LICENSE

commit 8d2e01c4b667f95033e554e3ab55fddd20586161
parent 9208f82d093e5107bd7601f49f1106fb08f7a04a
Author: Lior Halphon <LIJI32@gmail.com>
Date:   Fri,  9 Sep 2022 15:52:04 +0300

Fix memory viewer Go To being broken

Diffstat:
MCocoa/Document.m22+++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/Cocoa/Document.m b/Cocoa/Document.m @@ -1092,7 +1092,9 @@ static bool is_path_writeable(const char *path) } GB_load_battery(&gb, self.savPath.UTF8String); GB_load_cheats(&gb, self.chtPath.UTF8String); - [self.cheatWindowController cheatsUpdated]; + dispatch_async(dispatch_get_main_queue(), ^{ + [self.cheatWindowController cheatsUpdated]; + }); GB_debugger_load_symbol_file(&gb, [[[NSBundle mainBundle] pathForResource:@"registers" ofType:@"sym"] UTF8String]); GB_debugger_load_symbol_file(&gb, [[fileName stringByDeletingPathExtension] stringByAppendingPathExtension:@"sym"].UTF8String); }]; @@ -1650,9 +1652,17 @@ static bool is_path_writeable(const char *path) GB_log(&gb, "Value $%04x is out of range.\n", addr); return; } - [hex_controller setSelectedContentsRanges:@[[HFRangeWrapper withRange:HFRangeMake(addr, 0)]]]; - [hex_controller _ensureVisibilityOfLocation:addr]; - [self.memoryWindow makeFirstResponder:self.memoryView.subviews[0].subviews[0]]; + + dispatch_async(dispatch_get_main_queue(), ^{ + [hex_controller setSelectedContentsRanges:@[[HFRangeWrapper withRange:HFRangeMake(addr, 0)]]]; + [hex_controller _ensureVisibilityOfLocation:addr]; + for (HFRepresenter *representer in hex_controller.representers) { + if ([representer isKindOfClass:[HFHexTextRepresenter class]]) { + [self.memoryWindow makeFirstResponder:representer.view]; + break; + } + } + }); }]; if (error) { NSBeep(); @@ -1700,7 +1710,9 @@ static bool is_path_writeable(const char *path) [sender setStringValue:[NSString stringWithFormat:@"$%x", bank]]; [(GBMemoryByteArray *)(hex_controller.byteArray) setSelectedBank:bank]; - [hex_controller reloadData]; + dispatch_async(dispatch_get_main_queue(), ^{ + [hex_controller reloadData]; + }); }]; if (error && !ignore_errors) {

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.