FIX:fixed crash when creat projecy in full screen mode on mac

Change-Id: I029bf52e805d699a5d6de4e3a049954b09e58255
This commit is contained in:
tao wang 2022-10-09 15:48:55 +08:00 committed by Lane.Wei
parent fd0f22b771
commit e325214cb6
4 changed files with 47 additions and 7 deletions

View file

@ -11,7 +11,8 @@ extern bool mac_dark_mode();
extern double mac_max_scaling_factor();
extern void set_miniaturizable(void * window);
void WKWebView_evaluateJavaScript(void * web, wxString const & script, void (*callback)(wxString const &));
void set_title_colour_after_set_title();
void set_tag_when_enter_full_screen(bool isfullscreen);
void set_title_colour_after_set_title(void * window);
void initGestures(void * view, wxEvtHandler * handler);
#endif

View file

@ -20,6 +20,7 @@ namespace Slic3r {
namespace GUI {
NSTextField* mainframe_text_field = nil;
bool is_in_full_screen_mode = false;
bool mac_dark_mode()
{
@ -60,11 +61,25 @@ void set_miniaturizable(void * window)
}
}
void set_title_colour_after_set_title()
void set_tag_when_enter_full_screen(bool isfullscreen)
{
if(mainframe_text_field){
[(NSTextField*)mainframe_text_field setTextColor : NSColor.whiteColor];
is_in_full_screen_mode = isfullscreen;
}
void set_title_colour_after_set_title(void * window)
{
NSEnumerator *viewEnum = [[[[[[[(NSView*) window window] contentView] superview] titlebarViewController] view] subviews] objectEnumerator];
NSView *viewObject;
while(viewObject = (NSView *)[viewEnum nextObject]) {
if([viewObject class] == [NSTextField self]) {
[(NSTextField*)viewObject setTextColor : NSColor.whiteColor];
mainframe_text_field = viewObject;
}
}
if (mainframe_text_field) {
[(NSTextField*)mainframe_text_field setTextColor : NSColor.whiteColor];
}
}
void WKWebView_evaluateJavaScript(void * web, wxString const & script, void (*callback)(wxString const &))
@ -90,7 +105,11 @@ void WKWebView_evaluateJavaScript(void * web, wxString const & script, void (*ca
if (Slic3r::GUI::mainframe_text_field != self){
[self setTextColor2: textColor];
}else{
[self setTextColor2 : NSColor.whiteColor];
if(Slic3r::GUI::is_in_full_screen_mode){
[self setTextColor2 : NSColor.darkGrayColor];
}else{
[self setTextColor2 : NSColor.whiteColor];
}
}
}