mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.1.2034: dark them of GTK 3 not supported
Problem: Dark them of GTK 3 not supported. Solution: Add the "d" flag in 'guioptions'. (Jonathan Conder, closes #4934)
This commit is contained in:
@@ -856,6 +856,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
:set background&
|
:set background&
|
||||||
< Vim will guess the value. In the GUI this should work correctly,
|
< Vim will guess the value. In the GUI this should work correctly,
|
||||||
in other cases Vim might not be able to guess the right value.
|
in other cases Vim might not be able to guess the right value.
|
||||||
|
If the GUI supports a dark them, you can use the "d" flag in
|
||||||
|
'guioptions', see 'go-d'.
|
||||||
|
|
||||||
When the |t_RB| option is set, Vim will use it to request the background
|
When the |t_RB| option is set, Vim will use it to request the background
|
||||||
color from the terminal. If the returned RGB value is dark/light and
|
color from the terminal. If the returned RGB value is dark/light and
|
||||||
@@ -3740,6 +3742,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
*'go-c'*
|
*'go-c'*
|
||||||
'c' Use console dialogs instead of popup dialogs for simple
|
'c' Use console dialogs instead of popup dialogs for simple
|
||||||
choices.
|
choices.
|
||||||
|
*'go-d'*
|
||||||
|
'd' Use dark theme variant if available. Currently only works for
|
||||||
|
GTK+ GUI.
|
||||||
*'go-e'*
|
*'go-e'*
|
||||||
'e' Add tab pages when indicated with 'showtabline'.
|
'e' Add tab pages when indicated with 'showtabline'.
|
||||||
'guitablabel' can be used to change the text in the labels.
|
'guitablabel' can be used to change the text in the labels.
|
||||||
|
@@ -646,6 +646,13 @@
|
|||||||
# define FEAT_MENU
|
# define FEAT_MENU
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GUI dark theme variant
|
||||||
|
*/
|
||||||
|
#if defined(FEAT_GUI_GTK) && defined(USE_GTK3)
|
||||||
|
# define FEAT_GUI_DARKTHEME
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GUI tabline
|
* GUI tabline
|
||||||
*/
|
*/
|
||||||
|
17
src/gui.c
17
src/gui.c
@@ -3425,6 +3425,10 @@ static int prev_which_scrollbars[3];
|
|||||||
void
|
void
|
||||||
gui_init_which_components(char_u *oldval UNUSED)
|
gui_init_which_components(char_u *oldval UNUSED)
|
||||||
{
|
{
|
||||||
|
#ifdef FEAT_GUI_DARKTHEME
|
||||||
|
static int prev_dark_theme = -1;
|
||||||
|
int using_dark_theme = FALSE;
|
||||||
|
#endif
|
||||||
#ifdef FEAT_MENU
|
#ifdef FEAT_MENU
|
||||||
static int prev_menu_is_active = -1;
|
static int prev_menu_is_active = -1;
|
||||||
#endif
|
#endif
|
||||||
@@ -3495,6 +3499,11 @@ gui_init_which_components(char_u *oldval UNUSED)
|
|||||||
case GO_BOT:
|
case GO_BOT:
|
||||||
gui.which_scrollbars[SBAR_BOTTOM] = TRUE;
|
gui.which_scrollbars[SBAR_BOTTOM] = TRUE;
|
||||||
break;
|
break;
|
||||||
|
#ifdef FEAT_GUI_DARKTHEME
|
||||||
|
case GO_DARKTHEME:
|
||||||
|
using_dark_theme = TRUE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef FEAT_MENU
|
#ifdef FEAT_MENU
|
||||||
case GO_MENUS:
|
case GO_MENUS:
|
||||||
gui.menu_is_active = TRUE;
|
gui.menu_is_active = TRUE;
|
||||||
@@ -3528,6 +3537,14 @@ gui_init_which_components(char_u *oldval UNUSED)
|
|||||||
need_set_size = 0;
|
need_set_size = 0;
|
||||||
fix_size = FALSE;
|
fix_size = FALSE;
|
||||||
|
|
||||||
|
#ifdef FEAT_GUI_DARKTHEME
|
||||||
|
if (using_dark_theme != prev_dark_theme)
|
||||||
|
{
|
||||||
|
gui_mch_set_dark_theme(using_dark_theme);
|
||||||
|
prev_dark_theme = using_dark_theme;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_GUI_TABLINE
|
#ifdef FEAT_GUI_TABLINE
|
||||||
/* Update the GUI tab line, it may appear or disappear. This may
|
/* Update the GUI tab line, it may appear or disappear. This may
|
||||||
* cause the non-GUI tab line to disappear or appear. */
|
* cause the non-GUI tab line to disappear or appear. */
|
||||||
|
@@ -3130,6 +3130,19 @@ update_window_manager_hints(int force_width, int force_height)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(FEAT_GUI_DARKTHEME) || defined(PROTO)
|
||||||
|
void
|
||||||
|
gui_mch_set_dark_theme(int dark)
|
||||||
|
{
|
||||||
|
# if GTK_CHECK_VERSION(3,0,0)
|
||||||
|
GtkSettings *gtk_settings;
|
||||||
|
|
||||||
|
gtk_settings = gtk_settings_get_for_screen(gdk_screen_get_default());
|
||||||
|
g_object_set(gtk_settings, "gtk-application-prefer-dark-theme", (gboolean)dark, NULL);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
#endif /* FEAT_GUI_DARKTHEME */
|
||||||
|
|
||||||
#ifdef FEAT_TOOLBAR
|
#ifdef FEAT_TOOLBAR
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
#define GO_ASELML 'A' // autoselect modeless selection
|
#define GO_ASELML 'A' // autoselect modeless selection
|
||||||
#define GO_BOT 'b' // use bottom scrollbar
|
#define GO_BOT 'b' // use bottom scrollbar
|
||||||
#define GO_CONDIALOG 'c' // use console dialog
|
#define GO_CONDIALOG 'c' // use console dialog
|
||||||
|
#define GO_DARKTHEME 'd' // use dark theme variant
|
||||||
#define GO_TABLINE 'e' // may show tabline
|
#define GO_TABLINE 'e' // may show tabline
|
||||||
#define GO_FORG 'f' // start GUI in foreground
|
#define GO_FORG 'f' // start GUI in foreground
|
||||||
#define GO_GREY 'g' // use grey menu items
|
#define GO_GREY 'g' // use grey menu items
|
||||||
@@ -231,7 +232,7 @@
|
|||||||
#define GO_FOOTER 'F' // add footer
|
#define GO_FOOTER 'F' // add footer
|
||||||
#define GO_VERTICAL 'v' // arrange dialog buttons vertically
|
#define GO_VERTICAL 'v' // arrange dialog buttons vertically
|
||||||
#define GO_KEEPWINSIZE 'k' // keep GUI window size
|
#define GO_KEEPWINSIZE 'k' // keep GUI window size
|
||||||
#define GO_ALL "!aAbcefFghilmMprtTvk" // all possible flags for 'go'
|
#define GO_ALL "!aAbcdefFghilmMprtTvk" // all possible flags for 'go'
|
||||||
|
|
||||||
// flags for 'comments' option
|
// flags for 'comments' option
|
||||||
#define COM_NEST 'n' // comments strings nest
|
#define COM_NEST 'n' // comments strings nest
|
||||||
|
@@ -8,6 +8,7 @@ void gui_mch_stop_blink(int may_call_gui_update_cursor);
|
|||||||
void gui_mch_start_blink(void);
|
void gui_mch_start_blink(void);
|
||||||
int gui_mch_early_init_check(int give_message);
|
int gui_mch_early_init_check(int give_message);
|
||||||
int gui_mch_init_check(void);
|
int gui_mch_init_check(void);
|
||||||
|
void gui_mch_set_dark_theme(int dark);
|
||||||
void gui_mch_show_tabline(int showit);
|
void gui_mch_show_tabline(int showit);
|
||||||
int gui_mch_showing_tabline(void);
|
int gui_mch_showing_tabline(void);
|
||||||
void gui_mch_update_tabline(void);
|
void gui_mch_update_tabline(void);
|
||||||
|
@@ -643,6 +643,15 @@ func Test_set_guioptions()
|
|||||||
call assert_equal('aegi', &guioptions)
|
call assert_equal('aegi', &guioptions)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if has('gui_gtk3')
|
||||||
|
set guioptions+=d
|
||||||
|
exec 'sleep' . duration
|
||||||
|
call assert_equal('aegid', &guioptions)
|
||||||
|
set guioptions-=d
|
||||||
|
exec 'sleep' . duration
|
||||||
|
call assert_equal('aegi', &guioptions)
|
||||||
|
endif
|
||||||
|
|
||||||
" Restore GUI ornaments to the default state.
|
" Restore GUI ornaments to the default state.
|
||||||
set guioptions+=m
|
set guioptions+=m
|
||||||
exec 'sleep' . duration
|
exec 'sleep' . duration
|
||||||
|
@@ -757,6 +757,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2034,
|
||||||
/**/
|
/**/
|
||||||
2033,
|
2033,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user