@@ -375,7 +375,7 @@ init_cmdbar(struct ST_CMDBAR *current_cmdbar, Options *opts)
375375}
376376
377377void
378- post_menu (Options * opts , struct ST_MENU * menu )
378+ post_menu (Options * opts , struct ST_MENU * menu , bool is_text )
379379{
380380 st_menu_set_option (menu , cmd_ReleaseCols , ST_MENU_OPTION_MARKED , opts -> freezed_cols == 0 );
381381 st_menu_set_option (menu , cmd_FreezeOneCol , ST_MENU_OPTION_MARKED ,
@@ -415,7 +415,7 @@ post_menu(Options *opts, struct ST_MENU *menu)
415415 st_menu_enable_option (menu , theme_get_cmd (opts -> theme ), ST_MENU_OPTION_MARKED );
416416
417417 refresh_copy_target_options (opts , menu );
418- refresh_clipboard_options (opts , menu );
418+ refresh_clipboard_options (opts , menu , is_text );
419419
420420 st_menu_set_option (menu , cmd_TogleEmptyStringIsNULL , ST_MENU_OPTION_MARKED , opts -> empty_string_is_null );
421421
@@ -425,20 +425,28 @@ post_menu(Options *opts, struct ST_MENU *menu)
425425 st_menu_set_option (menu , cmd_ToggleHighlightOddRec , ST_MENU_OPTION_MARKED , opts -> highlight_odd_rec );
426426 st_menu_set_option (menu , cmd_ToggleHideHeaderLine , ST_MENU_OPTION_MARKED , opts -> hide_header_line );
427427
428+ st_menu_set_option (menu , cmd_SaveAsCSV , ST_MENU_OPTION_DISABLED , is_text );
428429}
429430
430431void
431- refresh_clipboard_options (Options * opts , struct ST_MENU * menu )
432+ refresh_clipboard_options (Options * opts , struct ST_MENU * menu , bool is_text )
432433{
433- st_menu_set_option (menu , cmd_UseClipboard_CSV , ST_MENU_OPTION_MARKED , opts -> clipboard_format == CLIPBOARD_FORMAT_CSV );
434- st_menu_set_option (menu , cmd_UseClipboard_TSVC , ST_MENU_OPTION_MARKED , opts -> clipboard_format == CLIPBOARD_FORMAT_TSVC );
435- st_menu_set_option (menu , cmd_UseClipboard_text , ST_MENU_OPTION_MARKED , opts -> clipboard_format == CLIPBOARD_FORMAT_TEXT );
436- st_menu_set_option (menu , cmd_UseClipboard_INSERT , ST_MENU_OPTION_MARKED , opts -> clipboard_format == CLIPBOARD_FORMAT_INSERT );
434+ st_menu_set_option (menu , cmd_UseClipboard_CSV , ST_MENU_OPTION_MARKED , ! is_text && opts -> clipboard_format == CLIPBOARD_FORMAT_CSV );
435+ st_menu_set_option (menu , cmd_UseClipboard_TSVC , ST_MENU_OPTION_MARKED , ! is_text && opts -> clipboard_format == CLIPBOARD_FORMAT_TSVC );
436+ st_menu_set_option (menu , cmd_UseClipboard_text , ST_MENU_OPTION_MARKED , is_text || opts -> clipboard_format == CLIPBOARD_FORMAT_TEXT );
437+ st_menu_set_option (menu , cmd_UseClipboard_INSERT , ST_MENU_OPTION_MARKED , ! is_text && opts -> clipboard_format == CLIPBOARD_FORMAT_INSERT );
437438 st_menu_set_option (menu , cmd_UseClipboard_INSERT_with_comments , ST_MENU_OPTION_MARKED ,
438- opts -> clipboard_format == CLIPBOARD_FORMAT_INSERT_WITH_COMMENTS );
439+ ! is_text && opts -> clipboard_format == CLIPBOARD_FORMAT_INSERT_WITH_COMMENTS );
439440
440- st_menu_set_option (menu , cmd_UseClipboard_SQL_values , ST_MENU_OPTION_MARKED , opts -> clipboard_format == CLIPBOARD_FORMAT_SQL_VALUES );
441- st_menu_set_option (menu , cmd_UseClipboard_pipe_separated , ST_MENU_OPTION_MARKED , opts -> clipboard_format == CLIPBOARD_FORMAT_PIPE_SEPARATED );
441+ st_menu_set_option (menu , cmd_UseClipboard_SQL_values , ST_MENU_OPTION_MARKED , !is_text && opts -> clipboard_format == CLIPBOARD_FORMAT_SQL_VALUES );
442+ st_menu_set_option (menu , cmd_UseClipboard_pipe_separated , ST_MENU_OPTION_MARKED , !is_text && opts -> clipboard_format == CLIPBOARD_FORMAT_PIPE_SEPARATED );
443+
444+ st_menu_set_option (menu , cmd_UseClipboard_CSV , ST_MENU_OPTION_DISABLED , is_text );
445+ st_menu_set_option (menu , cmd_UseClipboard_TSVC , ST_MENU_OPTION_DISABLED , is_text );
446+ st_menu_set_option (menu , cmd_UseClipboard_INSERT , ST_MENU_OPTION_DISABLED , is_text );
447+ st_menu_set_option (menu , cmd_UseClipboard_INSERT_with_comments , ST_MENU_OPTION_DISABLED , is_text );
448+ st_menu_set_option (menu , cmd_UseClipboard_SQL_values , ST_MENU_OPTION_DISABLED , is_text );
449+ st_menu_set_option (menu , cmd_UseClipboard_pipe_separated , ST_MENU_OPTION_DISABLED , !is_text );
442450}
443451
444452void
0 commit comments