Skip to content

Commit 5a326b6

Browse files
authored
Merge pull request #1270 from jasonrhansen/location-context-menu-fix
Fix location context menu
2 parents 498b90a + 7362e89 commit 5a326b6

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/app.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4364,13 +4364,19 @@ impl Application for App {
43644364
}
43654365
}
43664366
Message::NavBarContext(entity) => {
4367-
// Close location editing if enabled
4367+
self.nav_bar_context_id = entity;
4368+
43684369
let tab_entity = self.tab_model.active();
43694370
if let Some(tab) = self.tab_model.data_mut::<Tab>(tab_entity) {
4371+
// Close location editing if enabled
43704372
tab.edit_location = None;
4373+
// Close other context menus.
4374+
tab.location_context_menu_index = None;
4375+
return Task::done(cosmic::Action::App(Message::TabMessage(
4376+
Some(tab_entity),
4377+
tab::Message::ContextMenu(None, None),
4378+
)));
43714379
}
4372-
4373-
self.nav_bar_context_id = entity;
43744380
}
43754381
Message::NavMenuAction(action) => match action {
43764382
NavMenuAction::Open(entity) => {

src/tab.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3147,6 +3147,7 @@ impl Tab {
31473147
self.edit_location = None;
31483148
if point_opt.is_none() || !mod_shift {
31493149
self.context_menu = point_opt;
3150+
self.location_context_menu_index = None;
31503151

31513152
//TODO: hack for clearing selecting when right clicking empty space
31523153
if self.context_menu.is_some() && self.last_right_click.take().is_none() {
@@ -3159,11 +3160,11 @@ impl Tab {
31593160
}
31603161
}
31613162
Message::LocationContextMenuPoint(point_opt) => {
3162-
self.context_menu = point_opt;
3163+
self.context_menu = None;
31633164
self.location_context_menu_point = point_opt;
31643165
}
31653166
Message::LocationContextMenuIndex(p, index_opt) => {
3166-
self.context_menu = p;
3167+
self.context_menu = None;
31673168
self.location_context_menu_point = p;
31683169
self.location_context_menu_index = index_opt;
31693170
}
@@ -4627,8 +4628,7 @@ impl Tab {
46274628
}
46284629

46294630
let mouse_area = crate::mouse_area::MouseArea::new(column)
4630-
.on_right_press(Message::LocationContextMenuPoint)
4631-
.wayland_on_right_press_window_position();
4631+
.on_right_press(Message::LocationContextMenuPoint);
46324632

46334633
let mut popover = widget::popover(mouse_area);
46344634
if let (Some(point), Some(index)) = (

0 commit comments

Comments
 (0)