mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
patch 8.2.4558: Motif: using default colors does not work as expected
Problem: Motif: using default colors does not work as expected. Solution: Do not try to store the default colors, use the resources. (closes #9933)
This commit is contained in:
@@ -333,12 +333,6 @@ typedef struct Gui
|
|||||||
char *rsrc_scroll_bg_name; // Color of scrollbar background
|
char *rsrc_scroll_bg_name; // Color of scrollbar background
|
||||||
guicolor_T scroll_bg_pixel; // Same in Pixel format
|
guicolor_T scroll_bg_pixel; // Same in Pixel format
|
||||||
|
|
||||||
# ifdef FEAT_GUI_MOTIF
|
|
||||||
guicolor_T menu_def_fg_pixel; // Default menu foreground
|
|
||||||
guicolor_T menu_def_bg_pixel; // Default menu background
|
|
||||||
guicolor_T scroll_def_fg_pixel; // Default scrollbar foreground
|
|
||||||
guicolor_T scroll_def_bg_pixel; // Default scrollbar background
|
|
||||||
# endif
|
|
||||||
Display *dpy; // X display
|
Display *dpy; // X display
|
||||||
Window wid; // Window id of text area
|
Window wid; // Window id of text area
|
||||||
int visibility; // Is shell partially/fully obscured?
|
int visibility; // Is shell partially/fully obscured?
|
||||||
|
@@ -440,11 +440,6 @@ gui_x11_create_widgets(void)
|
|||||||
menuBar = XmCreateMenuBar(vimForm, "menuBar", al, ac);
|
menuBar = XmCreateMenuBar(vimForm, "menuBar", al, ac);
|
||||||
XtManageChild(menuBar);
|
XtManageChild(menuBar);
|
||||||
|
|
||||||
// Remember the default colors, needed for ":hi clear".
|
|
||||||
XtVaGetValues(menuBar,
|
|
||||||
XmNbackground, &gui.menu_def_bg_pixel,
|
|
||||||
XmNforeground, &gui.menu_def_fg_pixel,
|
|
||||||
NULL);
|
|
||||||
gui_motif_menu_colors(menuBar);
|
gui_motif_menu_colors(menuBar);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1672,12 +1667,10 @@ gui_mch_def_colors(void)
|
|||||||
{
|
{
|
||||||
if (gui.in_use)
|
if (gui.in_use)
|
||||||
{
|
{
|
||||||
// Use the values saved when starting up. These should come from the
|
gui.menu_fg_pixel = gui_get_color((char_u *)gui.rsrc_menu_fg_name);
|
||||||
// window manager or a resources file.
|
gui.menu_bg_pixel = gui_get_color((char_u *)gui.rsrc_menu_bg_name);
|
||||||
gui.menu_fg_pixel = gui.menu_def_fg_pixel;
|
gui.scroll_fg_pixel = gui_get_color((char_u *)gui.rsrc_scroll_fg_name);
|
||||||
gui.menu_bg_pixel = gui.menu_def_bg_pixel;
|
gui.scroll_bg_pixel = gui_get_color((char_u *)gui.rsrc_scroll_bg_name);
|
||||||
gui.scroll_fg_pixel = gui.scroll_def_fg_pixel;
|
|
||||||
gui.scroll_bg_pixel = gui.scroll_def_bg_pixel;
|
|
||||||
#ifdef FEAT_BEVAL_GUI
|
#ifdef FEAT_BEVAL_GUI
|
||||||
gui.tooltip_fg_pixel =
|
gui.tooltip_fg_pixel =
|
||||||
gui_get_color((char_u *)gui.rsrc_tooltip_fg_name);
|
gui_get_color((char_u *)gui.rsrc_tooltip_fg_name);
|
||||||
@@ -1860,14 +1853,6 @@ gui_mch_create_scrollbar(
|
|||||||
sb->id = XtCreateWidget("scrollBar",
|
sb->id = XtCreateWidget("scrollBar",
|
||||||
xmScrollBarWidgetClass, textAreaForm, args, n);
|
xmScrollBarWidgetClass, textAreaForm, args, n);
|
||||||
|
|
||||||
// Remember the default colors, needed for ":hi clear".
|
|
||||||
if (gui.scroll_def_bg_pixel == (guicolor_T)0
|
|
||||||
&& gui.scroll_def_fg_pixel == (guicolor_T)0)
|
|
||||||
XtVaGetValues(sb->id,
|
|
||||||
XmNbackground, &gui.scroll_def_bg_pixel,
|
|
||||||
XmNforeground, &gui.scroll_def_fg_pixel,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
if (sb->id != (Widget)0)
|
if (sb->id != (Widget)0)
|
||||||
{
|
{
|
||||||
gui_mch_set_scrollbar_colors(sb);
|
gui_mch_set_scrollbar_colors(sb);
|
||||||
@@ -1895,12 +1880,16 @@ gui_mch_set_scrollbar_colors(scrollbar_T *sb)
|
|||||||
if (gui.scroll_bg_pixel != INVALCOLOR)
|
if (gui.scroll_bg_pixel != INVALCOLOR)
|
||||||
{
|
{
|
||||||
#if (XmVersion>=1002)
|
#if (XmVersion>=1002)
|
||||||
|
// This should not only set the through color but also adjust
|
||||||
|
// related colors, such as shadows.
|
||||||
XmChangeColor(sb->id, gui.scroll_bg_pixel);
|
XmChangeColor(sb->id, gui.scroll_bg_pixel);
|
||||||
#else
|
#endif
|
||||||
|
|
||||||
|
// Set the through color directly, in case XmChangeColor() decided
|
||||||
|
// to change it.
|
||||||
XtVaSetValues(sb->id,
|
XtVaSetValues(sb->id,
|
||||||
XmNtroughColor, gui.scroll_bg_pixel,
|
XmNtroughColor, gui.scroll_bg_pixel,
|
||||||
NULL);
|
NULL);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gui.scroll_fg_pixel != INVALCOLOR)
|
if (gui.scroll_fg_pixel != INVALCOLOR)
|
||||||
|
@@ -750,6 +750,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 */
|
||||||
|
/**/
|
||||||
|
4558,
|
||||||
/**/
|
/**/
|
||||||
4557,
|
4557,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user