@@ -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+
376379static 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
397401static 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
404406static 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
0 commit comments