From ab7628ac765dd9e9d5a7f6aea1e29856665fa2f1 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Tue, 2 Aug 2022 10:46:35 +0800 Subject: [PATCH] FIX: Let setBezelStyle: be called for color_picker of filament Change-Id: I22a6985c793b62f0e4e7a4c7dcb3a06c3efd9620 --- src/slic3r/GUI/PresetComboBoxes.cpp | 8 ++++++-- src/slic3r/Utils/MacDarkMode.mm | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 21e6963e4..6e65e9520 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -892,10 +892,14 @@ void PlaterPresetComboBox::update() // BBS wxColor clr(filament_color); clr_picker->SetBackgroundColour(clr); - auto style = clr_picker->GetWindowStyle() & ~(wxBORDER_NONE | wxBORDER_SIMPLE); auto diff_clr = different_color(clr); - clr_picker->SetWindowStyle(clr.Red() > 224 && clr.Blue() > 224 && clr.Green() > 224 ? (style | wxBORDER_SIMPLE) : (style | wxBORDER_NONE)); clr_picker->SetForegroundColour(diff_clr); + auto style = clr_picker->GetWindowStyle() & ~(wxBORDER_NONE | wxBORDER_SIMPLE); + style = clr.Red() > 224 && clr.Blue() > 224 && clr.Green() > 224 ? (style | wxBORDER_SIMPLE) : (style | wxBORDER_NONE); + clr_picker->SetWindowStyle(style); +#ifdef __WXOSX__ + clr_picker->SetLabel(clr_picker->GetLabel()); // Let setBezelStyle: be called +#endif selected_filament_preset = m_collection->find_preset(m_preset_bundle->filament_presets[m_filament_idx]); if (!selected_filament_preset) { //can not find this filament, should be caused by project embedded presets, will be updated later diff --git a/src/slic3r/Utils/MacDarkMode.mm b/src/slic3r/Utils/MacDarkMode.mm index d09247cd4..23c6cf006 100644 --- a/src/slic3r/Utils/MacDarkMode.mm +++ b/src/slic3r/Utils/MacDarkMode.mm @@ -115,6 +115,20 @@ void set_miniaturizable(void * window) [attrTitle release]; } +- (void)setBezelStyle2:(NSBezelStyle)bezelStyle +{ + if (bezelStyle != NSBezelStyleShadowlessSquare) + [self setBordered: YES]; + [self setBezelStyle2: bezelStyle]; +} + ++ (void) load +{ + Method setBezelStyle = class_getInstanceMethod([NSButton class], @selector(setBezelStyle:)); + Method setBezelStyle2 = class_getInstanceMethod([NSButton class], @selector(setBezelStyle2:)); + method_exchangeImplementations(setBezelStyle, setBezelStyle2); +} + @end /* edit column for wxTableView */