From bbf9e2da4074bcb16cc8a2a62c402195f03fcf48 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Sat, 23 May 2020 18:39:25 +0200 Subject: [PATCH 01/13] rebase --- druid/examples/multiwin.rs | 62 +++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index 6144e21cf1..48af65aa63 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -46,7 +46,9 @@ pub fn main() { LocalizedString::new("multiwin-demo-window-title").with_placeholder("Many windows!"), ); AppLauncher::with_window(main_window) - .delegate(Delegate) + .delegate(Delegate { + windows: Vec::new(), + }) .launch(State::default()) .expect("launch failed"); } @@ -55,14 +57,16 @@ fn ui_builder() -> impl Widget { let text = LocalizedString::new("hello-counter") .with_arg("count", |data: &State, _env| data.menu_count.into()); let label = Label::new(text); - let inc_button = Button::::new("Add menu item").on_click(|ctx, data, _env| { - data.menu_count += 1; - ctx.set_menu(make_menu::(data)); - }); - let dec_button = Button::::new("Remove menu item").on_click(|ctx, data, _env| { - data.menu_count = data.menu_count.saturating_sub(1); - ctx.set_menu(make_menu::(data)); - }); + let inc_button = + Button::::new("Add menu item").on_click(|ctx, data, _env| { + data.menu_count += 1; + ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id()) + }); + let dec_button = + Button::::new("Remove menu item").on_click(|ctx, data, _env| { + data.menu_count = data.menu_count.saturating_sub(1); + ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id()) + }); let new_button = Button::::new("New window").on_click(|ctx, _data, _env| { ctx.submit_command(sys_cmds::NEW_FILE, Target::Global); }); @@ -132,6 +136,9 @@ impl> Widget for Glow { } struct ContextMenuController; +struct Delegate { + windows: Vec, +} impl> Controller for ContextMenuController { fn event(&mut self, child: &mut W, ctx: &mut EventCtx, event: &Event, data: &mut T, env: &Env) { @@ -145,7 +152,6 @@ impl> Controller for ContextMenuController { } } -struct Delegate; impl AppDelegate for Delegate { fn command( @@ -156,36 +162,39 @@ impl AppDelegate for Delegate { data: &mut State, _env: &Env, ) -> bool { - match (target, &cmd.selector) { - (_, &sys_cmds::NEW_FILE) => { - let window = WindowDesc::new(ui_builder) + match &cmd.selector { + &sys_cmds::NEW_FILE => { + let new_win = WindowDesc::new(ui_builder) .menu(make_menu(data)) .window_size((data.selected as f64 * 100.0 + 300.0, 500.0)); - ctx.new_window(window); + ctx.new_window(new_win); false } - (Target::Window(id), &MENU_COUNT_ACTION) => { + &MENU_COUNT_ACTION => { data.selected = *cmd.get_object().unwrap(); let menu = make_menu::(data); - ctx.set_menu(menu, id); + let cmd = Command::new(druid::commands::SET_MENU, menu); + for id in &self.windows { + ctx.submit_command(cmd.clone(), id.clone()); + } false } // wouldn't it be nice if a menu (like a button) could just mutate state // directly if desired? - (Target::Window(id), &MENU_INCREMENT_ACTION) => { + &MENU_INCREMENT_ACTION => { data.menu_count += 1; let menu = make_menu::(data); - ctx.set_menu(menu, id); + let cmd = Command::new(druid::commands::SET_MENU, menu); + for id in &self.windows { + dbg!(id); + ctx.submit_command(cmd.clone(), id.clone()); + } false } - (Target::Window(id), &MENU_DECREMENT_ACTION) => { + &MENU_DECREMENT_ACTION => { data.menu_count = data.menu_count.saturating_sub(1); let menu = make_menu::(data); - ctx.set_menu(menu, id); - false - } - (_, &MENU_SWITCH_GLOW_ACTION) => { - data.glow_hot = !data.glow_hot; + let cmd = Command::new(druid::commands::SET_MENU, menu); false } _ => true, @@ -200,7 +209,9 @@ impl AppDelegate for Delegate { _ctx: &mut DelegateCtx, ) { info!("Window added, id: {:?}", id); + self.windows.push(id); } + fn window_removed( &mut self, id: WindowId, @@ -209,6 +220,9 @@ impl AppDelegate for Delegate { _ctx: &mut DelegateCtx, ) { info!("Window removed, id: {:?}", id); + if let Some(pos) = self.windows.iter().position(|x| *x == id) { + self.windows.remove(pos); + } } } From b8cbd5ba9aa9539293542f426056ce0c404af0e5 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Thu, 14 May 2020 13:39:31 +0200 Subject: [PATCH 02/13] fmt --- druid/examples/multiwin.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index 48af65aa63..a249053786 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -57,16 +57,14 @@ fn ui_builder() -> impl Widget { let text = LocalizedString::new("hello-counter") .with_arg("count", |data: &State, _env| data.menu_count.into()); let label = Label::new(text); - let inc_button = - Button::::new("Add menu item").on_click(|ctx, data, _env| { - data.menu_count += 1; - ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id()) - }); - let dec_button = - Button::::new("Remove menu item").on_click(|ctx, data, _env| { - data.menu_count = data.menu_count.saturating_sub(1); - ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id()) - }); + let inc_button = Button::::new("Add menu item").on_click(|ctx, data, _env| { + data.menu_count += 1; + ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id()) + }); + let dec_button = Button::::new("Remove menu item").on_click(|ctx, data, _env| { + data.menu_count = data.menu_count.saturating_sub(1); + ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id()) + }); let new_button = Button::::new("New window").on_click(|ctx, _data, _env| { ctx.submit_command(sys_cmds::NEW_FILE, Target::Global); }); From 7815c117e1f31a26acf215851e14a4de12d43c26 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Thu, 14 May 2020 13:57:13 +0200 Subject: [PATCH 03/13] fix redundant data mutation --- druid/examples/multiwin.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index a249053786..ec52b580b7 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -58,11 +58,9 @@ fn ui_builder() -> impl Widget { .with_arg("count", |data: &State, _env| data.menu_count.into()); let label = Label::new(text); let inc_button = Button::::new("Add menu item").on_click(|ctx, data, _env| { - data.menu_count += 1; ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id()) }); let dec_button = Button::::new("Remove menu item").on_click(|ctx, data, _env| { - data.menu_count = data.menu_count.saturating_sub(1); ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id()) }); let new_button = Button::::new("New window").on_click(|ctx, _data, _env| { From de27ec2ae5f684ab5bfc07f322d65e093eb530f3 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Thu, 14 May 2020 13:57:29 +0200 Subject: [PATCH 04/13] fmt --- druid/examples/multiwin.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index ec52b580b7..44ce89ff2b 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -57,12 +57,10 @@ fn ui_builder() -> impl Widget { let text = LocalizedString::new("hello-counter") .with_arg("count", |data: &State, _env| data.menu_count.into()); let label = Label::new(text); - let inc_button = Button::::new("Add menu item").on_click(|ctx, data, _env| { - ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id()) - }); - let dec_button = Button::::new("Remove menu item").on_click(|ctx, data, _env| { - ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id()) - }); + let inc_button = Button::::new("Add menu item") + .on_click(|ctx, data, _env| ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id())); + let dec_button = Button::::new("Remove menu item") + .on_click(|ctx, data, _env| ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id())); let new_button = Button::::new("New window").on_click(|ctx, _data, _env| { ctx.submit_command(sys_cmds::NEW_FILE, Target::Global); }); From e92241ecd95c1c46fbaeadb47109455b848acf27 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Sat, 23 May 2020 18:53:25 +0200 Subject: [PATCH 05/13] remove dbg, remove unnecessary window id target --- druid/examples/multiwin.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index 44ce89ff2b..c7d1e4f8fd 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -18,11 +18,11 @@ use druid::widget::prelude::*; use druid::widget::{ Align, BackgroundBrush, Button, Controller, ControllerHost, Flex, Label, Padding, }; +use druid::Target::Global; use druid::{ commands as sys_cmds, AppDelegate, AppLauncher, Application, Color, Command, ContextMenu, Data, DelegateCtx, LocalizedString, MenuDesc, MenuItem, Selector, Target, WindowDesc, WindowId, }; - use log::info; const MENU_COUNT_ACTION: Selector = Selector::new("menu-count-action"); @@ -58,9 +58,9 @@ fn ui_builder() -> impl Widget { .with_arg("count", |data: &State, _env| data.menu_count.into()); let label = Label::new(text); let inc_button = Button::::new("Add menu item") - .on_click(|ctx, data, _env| ctx.submit_command(MENU_INCREMENT_ACTION, ctx.window_id())); + .on_click(|ctx, data, _env| ctx.submit_command(MENU_INCREMENT_ACTION, Global)); let dec_button = Button::::new("Remove menu item") - .on_click(|ctx, data, _env| ctx.submit_command(MENU_DECREMENT_ACTION, ctx.window_id())); + .on_click(|ctx, data, _env| ctx.submit_command(MENU_DECREMENT_ACTION, Global)); let new_button = Button::::new("New window").on_click(|ctx, _data, _env| { ctx.submit_command(sys_cmds::NEW_FILE, Target::Global); }); @@ -146,7 +146,6 @@ impl> Controller for ContextMenuController { } } - impl AppDelegate for Delegate { fn command( &mut self, @@ -167,9 +166,8 @@ impl AppDelegate for Delegate { &MENU_COUNT_ACTION => { data.selected = *cmd.get_object().unwrap(); let menu = make_menu::(data); - let cmd = Command::new(druid::commands::SET_MENU, menu); for id in &self.windows { - ctx.submit_command(cmd.clone(), id.clone()); + ctx.set_menu(menu.clone(), id.clone()); } false } @@ -178,17 +176,17 @@ impl AppDelegate for Delegate { &MENU_INCREMENT_ACTION => { data.menu_count += 1; let menu = make_menu::(data); - let cmd = Command::new(druid::commands::SET_MENU, menu); for id in &self.windows { - dbg!(id); - ctx.submit_command(cmd.clone(), id.clone()); + ctx.set_menu(menu.clone(), id.clone()); } false } &MENU_DECREMENT_ACTION => { data.menu_count = data.menu_count.saturating_sub(1); let menu = make_menu::(data); - let cmd = Command::new(druid::commands::SET_MENU, menu); + for id in &self.windows { + ctx.set_menu(menu.clone(), id.clone()); + } false } _ => true, From 2f9f7481084b30bb2c9a3dd54dca6b67d29a3e30 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Sun, 24 May 2020 12:16:55 +0200 Subject: [PATCH 06/13] enable glow action and cargo fmt --- druid/examples/multiwin.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index c7d1e4f8fd..7d22342778 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -189,6 +189,10 @@ impl AppDelegate for Delegate { } false } + &MENU_SWITCH_GLOW_ACTION => { + data.glow_hot = !data.glow_hot; + false + } _ => true, } } From baeae9f7b93aeb9ef29d7b5be04e947e883c1669 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Sun, 24 May 2020 12:27:42 +0200 Subject: [PATCH 07/13] make clippy happy --- druid/examples/multiwin.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index 7d22342778..9934e6f7a3 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -58,9 +58,9 @@ fn ui_builder() -> impl Widget { .with_arg("count", |data: &State, _env| data.menu_count.into()); let label = Label::new(text); let inc_button = Button::::new("Add menu item") - .on_click(|ctx, data, _env| ctx.submit_command(MENU_INCREMENT_ACTION, Global)); + .on_click(|ctx, _data, _env| ctx.submit_command(MENU_INCREMENT_ACTION, Global)); let dec_button = Button::::new("Remove menu item") - .on_click(|ctx, data, _env| ctx.submit_command(MENU_DECREMENT_ACTION, Global)); + .on_click(|ctx, _data, _env| ctx.submit_command(MENU_DECREMENT_ACTION, Global)); let new_button = Button::::new("New window").on_click(|ctx, _data, _env| { ctx.submit_command(sys_cmds::NEW_FILE, Target::Global); }); @@ -150,7 +150,7 @@ impl AppDelegate for Delegate { fn command( &mut self, ctx: &mut DelegateCtx, - target: Target, + _target: Target, cmd: &Command, data: &mut State, _env: &Env, @@ -167,7 +167,7 @@ impl AppDelegate for Delegate { data.selected = *cmd.get_object().unwrap(); let menu = make_menu::(data); for id in &self.windows { - ctx.set_menu(menu.clone(), id.clone()); + ctx.set_menu(menu.clone(), *id); } false } @@ -177,7 +177,7 @@ impl AppDelegate for Delegate { data.menu_count += 1; let menu = make_menu::(data); for id in &self.windows { - ctx.set_menu(menu.clone(), id.clone()); + ctx.set_menu(menu.clone(), *id); } false } @@ -185,7 +185,7 @@ impl AppDelegate for Delegate { data.menu_count = data.menu_count.saturating_sub(1); let menu = make_menu::(data); for id in &self.windows { - ctx.set_menu(menu.clone(), id.clone()); + ctx.set_menu(menu.clone(), *id); } false } From f0359dc71197deca19701f66ecaea0ba329e1474 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Sun, 24 May 2020 12:36:18 +0200 Subject: [PATCH 08/13] make clippy happy --- druid/examples/multiwin.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index 9934e6f7a3..f83a0abe47 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -193,7 +193,7 @@ impl AppDelegate for Delegate { data.glow_hot = !data.glow_hot; false } - _ => true, + &_ => true, } } From c10038c183d2bbe6b04ba0371d9c2ffb322a12e8 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Sun, 24 May 2020 13:32:30 +0200 Subject: [PATCH 09/13] make clippy happy --- druid/examples/multiwin.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/druid/examples/multiwin.rs b/druid/examples/multiwin.rs index f83a0abe47..acb51b4fdf 100644 --- a/druid/examples/multiwin.rs +++ b/druid/examples/multiwin.rs @@ -155,15 +155,15 @@ impl AppDelegate for Delegate { data: &mut State, _env: &Env, ) -> bool { - match &cmd.selector { - &sys_cmds::NEW_FILE => { + match cmd.selector { + sys_cmds::NEW_FILE => { let new_win = WindowDesc::new(ui_builder) .menu(make_menu(data)) .window_size((data.selected as f64 * 100.0 + 300.0, 500.0)); ctx.new_window(new_win); false } - &MENU_COUNT_ACTION => { + MENU_COUNT_ACTION => { data.selected = *cmd.get_object().unwrap(); let menu = make_menu::(data); for id in &self.windows { @@ -173,7 +173,7 @@ impl AppDelegate for Delegate { } // wouldn't it be nice if a menu (like a button) could just mutate state // directly if desired? - &MENU_INCREMENT_ACTION => { + MENU_INCREMENT_ACTION => { data.menu_count += 1; let menu = make_menu::(data); for id in &self.windows { @@ -181,7 +181,7 @@ impl AppDelegate for Delegate { } false } - &MENU_DECREMENT_ACTION => { + MENU_DECREMENT_ACTION => { data.menu_count = data.menu_count.saturating_sub(1); let menu = make_menu::(data); for id in &self.windows { @@ -189,11 +189,11 @@ impl AppDelegate for Delegate { } false } - &MENU_SWITCH_GLOW_ACTION => { + MENU_SWITCH_GLOW_ACTION => { data.glow_hot = !data.glow_hot; false } - &_ => true, + _ => true, } } From 94d72824774b2d82b81dace7a7b2d6f567c5bb6a Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Wed, 27 May 2020 15:11:45 +0200 Subject: [PATCH 10/13] add to change log and authors --- AUTHORS | 1 + CHANGELOG.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index fe1d88a3d7..e3e542afaa 100644 --- a/AUTHORS +++ b/AUTHORS @@ -7,3 +7,4 @@ Google LLC Raph Levien Hilmar Gústafsson Dmitry Borodin +Kaiyin Zhong diff --git a/CHANGELOG.md b/CHANGELOG.md index 296ca51ddf..8a49ec5ed3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -134,6 +134,7 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i - Removed references to cairo on macOS. ([#943] by [@xStrom]) - Updated screenshots in `README.md`. ([#967] by [@xStrom]) - Added a section about dependencies to `CONTRIBUTING.md`. ([#990] by [@xStrom]) +- Fixed menu inconsistency across multiple windows in the multiwin example. ([#926] by [@kindlychung]) ### Maintenance @@ -216,6 +217,7 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i [#920]: https://github.com/xi-editor/druid/pull/920 [#924]: https://github.com/xi-editor/druid/pull/924 [#925]: https://github.com/xi-editor/druid/pull/925 +[#926]: https://github.com/xi-editor/druid/pull/926 [#928]: https://github.com/xi-editor/druid/pull/928 [#930]: https://github.com/xi-editor/druid/pull/930 [#931]: https://github.com/xi-editor/druid/pull/931 From b184111c1394142aae7eb916971dbae6fbc78dee Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Wed, 27 May 2020 16:11:57 +0200 Subject: [PATCH 11/13] move change entry to docs, add link --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a49ec5ed3..bfa3c202be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,7 +71,10 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i - `SHOW_WINDOW` and `CLOSE_WINDOW` commands now only use `Target` to determine the affected window. ([#928] by [@finnerale]) - Replaced `NEW_WINDOW`, `SET_MENU` and `SHOW_CONTEXT_MENU` commands with methods on `EventCtx` and `DelegateCtx`. ([#931] by [@finnerale]) - Replaced `Command::one_shot` and `::take_object` with a `SingleUse` payload wrapper type. ([#959] by [@finnerale]) +<<<<<<< HEAD - Renamed `WidgetPod` methods: `paint` to `paint_raw`, `paint_with_offset` to `paint`, `paint_with_offset_always` to `paint_always`. ([#980] by [@totsteps]) +======= +>>>>>>> move change entry to docs, add link ### Deprecated @@ -217,7 +220,11 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i [#920]: https://github.com/xi-editor/druid/pull/920 [#924]: https://github.com/xi-editor/druid/pull/924 [#925]: https://github.com/xi-editor/druid/pull/925 +<<<<<<< HEAD [#926]: https://github.com/xi-editor/druid/pull/926 +======= +[#926]: https://github.com/xi-editor/druid/pull/926 +>>>>>>> move change entry to docs, add link [#928]: https://github.com/xi-editor/druid/pull/928 [#930]: https://github.com/xi-editor/druid/pull/930 [#931]: https://github.com/xi-editor/druid/pull/931 From 14ac787309bc65ce149e5ecc1b5a2240a4392ad3 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Wed, 27 May 2020 16:22:44 +0200 Subject: [PATCH 12/13] move change entry to docs, add link --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfa3c202be..43bda9c317 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -136,7 +136,7 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i - Added a changelog containing development since the 0.5 release. ([#889] by [@finnerale]) - Removed references to cairo on macOS. ([#943] by [@xStrom]) - Updated screenshots in `README.md`. ([#967] by [@xStrom]) -- Added a section about dependencies to `CONTRIBUTING.md`. ([#990] by [@xStrom]) +- Added a section about dependencies to `CONTRIBUTING.md`. ([#990] by [@xStrom])t s - Fixed menu inconsistency across multiple windows in the multiwin example. ([#926] by [@kindlychung]) ### Maintenance From 508e29299d2c2ecdbf0d574db3f9c4af9cee3f18 Mon Sep 17 00:00:00 2001 From: Kaiyin Zhong Date: Wed, 27 May 2020 16:26:37 +0200 Subject: [PATCH 13/13] fix merge conflicts --- CHANGELOG.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43bda9c317..8a49ec5ed3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,10 +71,7 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i - `SHOW_WINDOW` and `CLOSE_WINDOW` commands now only use `Target` to determine the affected window. ([#928] by [@finnerale]) - Replaced `NEW_WINDOW`, `SET_MENU` and `SHOW_CONTEXT_MENU` commands with methods on `EventCtx` and `DelegateCtx`. ([#931] by [@finnerale]) - Replaced `Command::one_shot` and `::take_object` with a `SingleUse` payload wrapper type. ([#959] by [@finnerale]) -<<<<<<< HEAD - Renamed `WidgetPod` methods: `paint` to `paint_raw`, `paint_with_offset` to `paint`, `paint_with_offset_always` to `paint_always`. ([#980] by [@totsteps]) -======= ->>>>>>> move change entry to docs, add link ### Deprecated @@ -136,7 +133,7 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i - Added a changelog containing development since the 0.5 release. ([#889] by [@finnerale]) - Removed references to cairo on macOS. ([#943] by [@xStrom]) - Updated screenshots in `README.md`. ([#967] by [@xStrom]) -- Added a section about dependencies to `CONTRIBUTING.md`. ([#990] by [@xStrom])t s +- Added a section about dependencies to `CONTRIBUTING.md`. ([#990] by [@xStrom]) - Fixed menu inconsistency across multiple windows in the multiwin example. ([#926] by [@kindlychung]) ### Maintenance @@ -220,11 +217,7 @@ This means that druid no longer requires cairo on macOS and uses Core Graphics i [#920]: https://github.com/xi-editor/druid/pull/920 [#924]: https://github.com/xi-editor/druid/pull/924 [#925]: https://github.com/xi-editor/druid/pull/925 -<<<<<<< HEAD [#926]: https://github.com/xi-editor/druid/pull/926 -======= -[#926]: https://github.com/xi-editor/druid/pull/926 ->>>>>>> move change entry to docs, add link [#928]: https://github.com/xi-editor/druid/pull/928 [#930]: https://github.com/xi-editor/druid/pull/930 [#931]: https://github.com/xi-editor/druid/pull/931