Publish 0.14.2 (#670)
* Fix window resize bug introduced in `0.14.1`. * tweak plot demo layout to allow more narrow window * Release 0.14.2 - Window resize fix
This commit is contained in:
parent
1fbce6b2c3
commit
776770cdcd
9 changed files with 53 additions and 57 deletions
|
@ -8,6 +8,12 @@ NOTE: [`eframe`](eframe/CHANGELOG.md), [`egui_web`](egui_web/CHANGELOG.md) and [
|
|||
## Unreleased
|
||||
|
||||
|
||||
## 0.14.2 - 2021-08-28 - Window resize fix
|
||||
|
||||
### Fixed 🐛
|
||||
* Fix window resize bug introduced in `0.14.1`.
|
||||
|
||||
|
||||
## 0.14.1 - 2021-08-28 - Layout bug fixes
|
||||
|
||||
### Added ⭐
|
||||
|
|
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -788,7 +788,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui"
|
||||
version = "0.14.1"
|
||||
version = "0.14.2"
|
||||
dependencies = [
|
||||
"epaint",
|
||||
"ron",
|
||||
|
|
|
@ -1375,56 +1375,56 @@ async function init(input) {
|
|||
var ret = wasm.memory;
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2074 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_30);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2075 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_30);
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_33);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2076 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_33);
|
||||
imports.wbg.__wbindgen_closure_wrapper2077 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_36);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2078 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_36);
|
||||
imports.wbg.__wbindgen_closure_wrapper2079 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_39);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2080 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_39);
|
||||
imports.wbg.__wbindgen_closure_wrapper2081 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_42);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2082 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_42);
|
||||
imports.wbg.__wbindgen_closure_wrapper2084 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_45);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2085 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_45);
|
||||
imports.wbg.__wbindgen_closure_wrapper2086 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_48);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2087 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_48);
|
||||
imports.wbg.__wbindgen_closure_wrapper2088 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_51);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2089 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_51);
|
||||
imports.wbg.__wbindgen_closure_wrapper2090 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_54);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2091 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_54);
|
||||
imports.wbg.__wbindgen_closure_wrapper2092 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_57);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2093 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 664, __wbg_adapter_57);
|
||||
imports.wbg.__wbindgen_closure_wrapper2152 = function(arg0, arg1, arg2) {
|
||||
var ret = makeClosure(arg0, arg1, 720, __wbg_adapter_60);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2153 = function(arg0, arg1, arg2) {
|
||||
var ret = makeClosure(arg0, arg1, 721, __wbg_adapter_60);
|
||||
imports.wbg.__wbindgen_closure_wrapper2154 = function(arg0, arg1, arg2) {
|
||||
var ret = makeClosure(arg0, arg1, 720, __wbg_adapter_63);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper2155 = function(arg0, arg1, arg2) {
|
||||
var ret = makeClosure(arg0, arg1, 721, __wbg_adapter_63);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper3335 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 747, __wbg_adapter_66);
|
||||
imports.wbg.__wbindgen_closure_wrapper3334 = function(arg0, arg1, arg2) {
|
||||
var ret = makeMutClosure(arg0, arg1, 746, __wbg_adapter_66);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "egui"
|
||||
version = "0.14.1"
|
||||
version = "0.14.2"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Simple, portable immediate mode GUI library for Rust"
|
||||
edition = "2018"
|
||||
|
|
|
@ -339,11 +339,9 @@ impl Prepared {
|
|||
|
||||
// Important check - don't try to move e.g. a combobox popup!
|
||||
if movable {
|
||||
if let Some(bounds) = drag_bounds {
|
||||
state.pos = ctx.constrain_window_rect_to_area(state.rect(), bounds).min;
|
||||
} else {
|
||||
state.pos = ctx.constrain_window_rect(state.rect()).min;
|
||||
}
|
||||
state.pos = ctx
|
||||
.constrain_window_rect_to_area(state.rect(), drag_bounds)
|
||||
.min;
|
||||
}
|
||||
|
||||
if (move_response.dragged() || move_response.clicked())
|
||||
|
|
|
@ -275,7 +275,7 @@ impl<'open> Window<'open> {
|
|||
&& !collapsing_header::State::is_open(ctx, collapsing_id).unwrap_or_default();
|
||||
let possible = PossibleInteractions::new(&area, &resize, is_collapsed);
|
||||
|
||||
let area = area.movable(false); // We move it manually
|
||||
let area = area.movable(false); // We move it manually, or the area will move the window when we want to resize it
|
||||
let resize = resize.resizable(false); // We move it manually
|
||||
let mut resize = resize.id(resize_id);
|
||||
|
||||
|
@ -301,16 +301,14 @@ impl<'open> Window<'open> {
|
|||
0.0
|
||||
};
|
||||
let margins = 2.0 * frame.margin + vec2(0.0, title_bar_height);
|
||||
let bounds = area.drag_bounds();
|
||||
|
||||
interact(
|
||||
window_interaction,
|
||||
ctx,
|
||||
margins,
|
||||
area_layer_id,
|
||||
area.state_mut(),
|
||||
&mut area,
|
||||
resize_id,
|
||||
bounds,
|
||||
)
|
||||
})
|
||||
} else {
|
||||
|
@ -405,7 +403,10 @@ impl<'open> Window<'open> {
|
|||
content_inner
|
||||
};
|
||||
|
||||
area.movable = possible.movable; // Tell it the truth
|
||||
area.state_mut().pos = ctx
|
||||
.constrain_window_rect_to_area(area.state().rect(), area.drag_bounds())
|
||||
.min;
|
||||
|
||||
let full_response = area.end(ctx, area_content_ui);
|
||||
|
||||
let inner_response = InnerResponse {
|
||||
|
@ -505,21 +506,16 @@ fn interact(
|
|||
ctx: &Context,
|
||||
margins: Vec2,
|
||||
area_layer_id: LayerId,
|
||||
area_state: &mut area::State,
|
||||
area: &mut area::Prepared,
|
||||
resize_id: Id,
|
||||
drag_bounds: Option<Rect>,
|
||||
) -> Option<WindowInteraction> {
|
||||
let new_rect = move_and_resize_window(ctx, &window_interaction)?;
|
||||
let new_rect = ctx.round_rect_to_pixels(new_rect);
|
||||
|
||||
let new_rect = if let Some(bounds) = drag_bounds {
|
||||
ctx.constrain_window_rect_to_area(new_rect, bounds)
|
||||
} else {
|
||||
ctx.constrain_window_rect(new_rect)
|
||||
};
|
||||
let new_rect = ctx.constrain_window_rect_to_area(new_rect, area.drag_bounds());
|
||||
|
||||
// TODO: add this to a Window state instead as a command "move here next frame"
|
||||
area_state.pos = new_rect.min;
|
||||
area.state_mut().pos = new_rect.min;
|
||||
|
||||
if window_interaction.is_resize() {
|
||||
ctx.memory()
|
||||
|
|
|
@ -509,15 +509,12 @@ impl Context {
|
|||
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/// Constrain the position of a window/area
|
||||
/// so it fits within the screen.
|
||||
pub(crate) fn constrain_window_rect(&self, window: Rect) -> Rect {
|
||||
self.constrain_window_rect_to_area(window, self.available_rect())
|
||||
}
|
||||
/// Constrain the position of a window/area so it fits within the provided boundary.
|
||||
///
|
||||
/// If area is `None`, will constrain to [`Self::available_rect`].
|
||||
pub(crate) fn constrain_window_rect_to_area(&self, window: Rect, area: Option<Rect>) -> Rect {
|
||||
let mut area = area.unwrap_or_else(|| self.available_rect());
|
||||
|
||||
/// Constrain the position of a window/area
|
||||
/// so it fits within the provided boundary.
|
||||
pub(crate) fn constrain_window_rect_to_area(&self, window: Rect, mut area: Rect) -> Rect {
|
||||
if window.width() > area.width() {
|
||||
// Allow overlapping side bars.
|
||||
// This is important for small screens, e.g. mobiles running the web demo.
|
||||
|
|
|
@ -75,8 +75,7 @@ impl LineDemo {
|
|||
.on_hover_text("Always keep the viewport square.");
|
||||
ui.checkbox(proportional, "Proportional data axes")
|
||||
.on_hover_text("Tick are the same size on both axes.");
|
||||
});
|
||||
ui.vertical(|ui| {
|
||||
|
||||
ComboBox::from_label("Line style")
|
||||
.selected_text(line_style.to_string())
|
||||
.show_ui(ui, |ui| {
|
||||
|
|
Loading…
Reference in a new issue