Skip to content

Commit 2ed8a78

Browse files
committed
Clean up action menu quits.
Signed-off-by: Katharine Berry <[email protected]>
1 parent 4d6d918 commit 2ed8a78

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

app/src/c/converse/session_window.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ struct SessionWindow {
4747
int last_prompt_end_offset;
4848
time_t query_time;
4949
AppTimer *timeout_handle;
50-
ActionMenuLevel *action_menu;
5150
int timeout;
5251
char* starting_prompt;
5352
};
@@ -373,6 +372,10 @@ static void prv_select_clicked(ClickRecognizerRef recognizer, void *context) {
373372
}
374373
}
375374

375+
static void prv_destroy_action_menu(ActionMenu *action_menu, const ActionMenuItem *item, void *context) {
376+
action_menu_hierarchy_destroy(action_menu_get_root_level(action_menu), NULL, NULL);
377+
}
378+
376379
static void prv_select_long_pressed(ClickRecognizerRef recognizer, void *context) {
377380
SessionWindow* sw = context;
378381
if (!conversation_is_idle(conversation_manager_get_conversation(sw->manager))) {
@@ -388,7 +391,8 @@ static void prv_select_long_pressed(ClickRecognizerRef recognizer, void *context
388391
.foreground = gcolor_legible_over(BRANDED_BACKGROUND_COLOUR),
389392
},
390393
.align = ActionMenuAlignCenter,
391-
.context = sw
394+
.context = sw,
395+
.did_close = prv_destroy_action_menu,
392396
};
393397
vibe_haptic_feedback();
394398
action_menu_open(&config);
@@ -397,14 +401,10 @@ static void prv_select_long_pressed(ClickRecognizerRef recognizer, void *context
397401
static void prv_action_menu_query(ActionMenu *action_menu, const ActionMenuItem *action, void *context) {
398402
SessionWindow* sw = context;
399403
dictation_session_start(sw->dictation);
400-
action_menu_hierarchy_destroy(sw->action_menu, NULL, NULL);
401-
sw->action_menu = NULL;
402404
}
403405

404406
static void prv_action_menu_report_thread(ActionMenu *action_menu, const ActionMenuItem *action, void *context) {
405407
SessionWindow* sw = context;
406-
action_menu_hierarchy_destroy(sw->action_menu, NULL, NULL);
407-
sw->action_menu = NULL;
408408
report_window_push(conversation_get_thread_id(conversation_manager_get_conversation(sw->manager)));
409409
}
410410

app/src/c/menus/reminders_menu.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ static void prv_draw_row(GContext *ctx, const Layer *cell_layer, MenuIndex *cell
5353
static void prv_select_click(MenuLayer *menu_layer, MenuIndex *cell_index, void *context);
5454
static void prv_delete_reminder_callback(ActionMenu *action_menu, const ActionMenuItem *action, void *context);
5555
static void prv_show_empty(Window *window);
56+
static void prv_action_menu_did_close(ActionMenu *action_menu, const ActionMenuItem *menu_item, void *context);
5657

5758
void reminders_menu_push() {
5859
Window *window = window_create();
@@ -255,6 +256,10 @@ static void prv_draw_row(GContext *ctx, const Layer *cell_layer, MenuIndex *cell
255256
NULL);
256257
}
257258

259+
static void prv_action_menu_did_close(ActionMenu *action_menu, const ActionMenuItem *menu_item, void *context) {
260+
action_menu_hierarchy_destroy(action_menu_get_root_level(action_menu), NULL, NULL);
261+
}
262+
258263
static void prv_select_click(MenuLayer *menu_layer, MenuIndex *cell_index, void *context) {
259264
RemindersMenuData *data = window_get_user_data(context);
260265
Reminder *reminder = &data->reminders[cell_index->row];
@@ -270,7 +275,8 @@ static void prv_select_click(MenuLayer *menu_layer, MenuIndex *cell_index, void
270275
.foreground = gcolor_legible_over(BRANDED_BACKGROUND_COLOUR),
271276
},
272277
.align = ActionMenuAlignCenter,
273-
.context = data
278+
.context = data,
279+
.did_close = prv_action_menu_did_close,
274280
};
275281

276282
action_menu_open(&config);

0 commit comments

Comments
 (0)