From 4171a6a80d9f662537e4f955f7a55ee8d7e542a1 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 2 Oct 2019 13:05:34 +0200 Subject: [PATCH] Improvements for https://github.com/prusa3d/PrusaSlicer/commit/15902766d051315d8efe7a5e2771b28af45a69ba --- src/slic3r/GUI/GUI_ObjectList.cpp | 14 ++++++-------- src/slic3r/GUI/wxExtensions.hpp | 9 +++++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 3e0d6dd8f..f8e708200 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -839,7 +839,8 @@ void ObjectList::list_manipulation(bool evt_context_menu/* = false*/) fix_through_netfabb(); } } - else if (/*wxOSX &&*/evt_context_menu && title == _("Extruder")) + // workaround for extruder editing under OSX + else if (wxOSX && evt_context_menu && title == _("Extruder")) extruder_editing(); #ifndef __WXMSW__ @@ -895,15 +896,12 @@ void ObjectList::extruder_editing() const int column_width = GetColumn(colExtruder)->GetWidth(); wxPoint pos = get_mouse_position_in_control(); - - pos.y -= 2*GetTextExtent("m").y; - - wxWindow* parent = this;//this->GetMainWindow(); + pos.x = GetColumn(colName)->GetWidth() + GetColumn(colPrint)->GetWidth(); +// pos.y -= 2*GetTextExtent("m").y; if (!m_extruder_editor) - m_extruder_editor = new wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, - pos, wxSize(column_width, -1), - 0, nullptr, wxCB_READONLY); + m_extruder_editor = new wxBitmapComboBox(this, wxID_ANY, wxEmptyString, pos, wxSize(column_width, -1), + 0, nullptr, wxCB_READONLY); else { m_extruder_editor->SetPosition(pos); diff --git a/src/slic3r/GUI/wxExtensions.hpp b/src/slic3r/GUI/wxExtensions.hpp index 1ba55c4b5..d4d5e7998 100644 --- a/src/slic3r/GUI/wxExtensions.hpp +++ b/src/slic3r/GUI/wxExtensions.hpp @@ -580,8 +580,13 @@ private: class BitmapChoiceRenderer : public wxDataViewCustomRenderer { public: - BitmapChoiceRenderer(wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int align = wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL + BitmapChoiceRenderer(wxDataViewCellMode mode = +#ifdef __WXOSX__ + wxDATAVIEW_CELL_INERT +#else + wxDATAVIEW_CELL_EDITABLE +#endif + ,int align = wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ) : wxDataViewCustomRenderer(wxT("DataViewBitmapText"), mode, align) {} bool SetValue(const wxVariant& value);