mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-18 11:02:08 +00:00
Compare commits
4 Commits
fix/networ
...
nightly-bu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9ff15054f | ||
|
|
ddeaa4ba82 | ||
|
|
b333b04815 | ||
|
|
e5ca01ba9e |
File diff suppressed because one or more lines are too long
@@ -159,6 +159,12 @@ bool Layer::is_perimeter_compatible(const PrintRegion& a, const PrintRegion& b)
|
||||
&& config.detect_thin_wall == other_config.detect_thin_wall
|
||||
&& config.infill_wall_overlap == other_config.infill_wall_overlap
|
||||
&& config.top_bottom_infill_wall_overlap == other_config.top_bottom_infill_wall_overlap
|
||||
// Orca: these flags directly change the effective wall count produced by the perimeter
|
||||
// generator. If two regions disagree on any of them, merging their slices into one shared make_perimeters
|
||||
// call would silently use the first region's flag for both.
|
||||
&& config.only_one_wall_first_layer == other_config.only_one_wall_first_layer
|
||||
&& config.only_one_wall_top == other_config.only_one_wall_top
|
||||
&& config.min_width_top_surface == other_config.min_width_top_surface
|
||||
&& config.seam_slope_type == other_config.seam_slope_type
|
||||
&& config.seam_slope_conditional == other_config.seam_slope_conditional
|
||||
&& config.scarf_angle_threshold == other_config.scarf_angle_threshold
|
||||
|
||||
@@ -564,11 +564,6 @@ void DropDown::messureSize()
|
||||
subDropDown->use_content_width = true;
|
||||
subDropDown->Create(GetParent());
|
||||
#ifdef __WXGTK__
|
||||
// Orca: Keep the wx parent as the combobox so wxPopupTransientWindow installs
|
||||
// its capture handlers on the main dropdown, but make the native GTK
|
||||
// popup transient for the currently open popup to satisfy Wayland's
|
||||
// xdg-shell rule that a popup's parent must be the topmost mapped popup.
|
||||
gtk_window_set_transient_for(GTK_WINDOW(subDropDown->GetHandle()), GTK_WINDOW(GetHandle()));
|
||||
// Orca: On Wayland, while the sub holds an xdg_popup grab, motion events for
|
||||
// the cursor over main may not be delivered (Mutter drops motion
|
||||
// outside the grabbing surface). Poll on idle and synthesize a
|
||||
@@ -636,8 +631,11 @@ void DropDown::autoPosition()
|
||||
// may exceed
|
||||
auto drect = wxDisplay(GetParent()).GetGeometry();
|
||||
if (GetPosition().y + size.y + 10 > drect.GetBottom()) {
|
||||
int available_height = drect.GetBottom() - GetPosition().y - 10;
|
||||
if (available_height < rowSize.y * 2)
|
||||
return;
|
||||
if (use_content_width && count <= 15) size.x += 6;
|
||||
size.y = drect.GetBottom() - GetPosition().y - 10;
|
||||
size.y = available_height;
|
||||
wxWindow::SetSize(size);
|
||||
if (selection >= 0) {
|
||||
if (offset.y + rowSize.y * (selection + 1) > size.y)
|
||||
@@ -727,6 +725,13 @@ void DropDown::mouseMove(wxMouseEvent &event)
|
||||
drop.group = items[-index - 2].group_key;
|
||||
drop.need_sync = true;
|
||||
drop.messureSize();
|
||||
#ifdef __WXGTK__
|
||||
// wxGTK wraps popup contents in a native GtkWindow. Make the submenu
|
||||
// transient for the currently mapped parent popup window before
|
||||
// positioning/showing it, so wlroots/Hyprland sees the topmost parent.
|
||||
if (m_widget && drop.m_widget)
|
||||
gtk_window_set_transient_for(GTK_WINDOW(drop.m_widget), GTK_WINDOW(m_widget));
|
||||
#endif
|
||||
drop.autoPosition();
|
||||
drop.paintNow();
|
||||
if (!drop.IsShown())
|
||||
|
||||
Reference in New Issue
Block a user