summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-03-13 14:45:03 +0000
committerBram Moolenaar <Bram@vim.org>2022-03-13 14:45:03 +0000
commite850439a561d8e7153b987473d768fe9696e9afa (patch)
treed4018c5bf17dd649c4b446ddbe25033667fe9d98
parent754d2b40369d8fdcf77fc05cc608f86387016bd9 (diff)
downloadvim-git-e850439a561d8e7153b987473d768fe9696e9afa.tar.gz
patch 8.2.4558: Motif: using default colors does not work as expectedv8.2.4558
Problem: Motif: using default colors does not work as expected. Solution: Do not try to store the default colors, use the resources. (closes #9933)
-rw-r--r--src/gui.h6
-rw-r--r--src/gui_motif.c31
-rw-r--r--src/version.c2
3 files changed, 12 insertions, 27 deletions
diff --git a/src/gui.h b/src/gui.h
index 0bd29fceb..bb8a3d905 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -333,12 +333,6 @@ typedef struct Gui
char *rsrc_scroll_bg_name; // Color of scrollbar background
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
Window wid; // Window id of text area
int visibility; // Is shell partially/fully obscured?
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 564c0bb07..740288827 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -440,11 +440,6 @@ gui_x11_create_widgets(void)
menuBar = XmCreateMenuBar(vimForm, "menuBar", al, ac);
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);
}
#endif
@@ -1672,12 +1667,10 @@ gui_mch_def_colors(void)
{
if (gui.in_use)
{
- // Use the values saved when starting up. These should come from the
- // window manager or a resources file.
- gui.menu_fg_pixel = gui.menu_def_fg_pixel;
- gui.menu_bg_pixel = gui.menu_def_bg_pixel;
- gui.scroll_fg_pixel = gui.scroll_def_fg_pixel;
- gui.scroll_bg_pixel = gui.scroll_def_bg_pixel;
+ gui.menu_fg_pixel = gui_get_color((char_u *)gui.rsrc_menu_fg_name);
+ gui.menu_bg_pixel = gui_get_color((char_u *)gui.rsrc_menu_bg_name);
+ gui.scroll_fg_pixel = gui_get_color((char_u *)gui.rsrc_scroll_fg_name);
+ gui.scroll_bg_pixel = gui_get_color((char_u *)gui.rsrc_scroll_bg_name);
#ifdef FEAT_BEVAL_GUI
gui.tooltip_fg_pixel =
gui_get_color((char_u *)gui.rsrc_tooltip_fg_name);
@@ -1860,14 +1853,6 @@ gui_mch_create_scrollbar(
sb->id = XtCreateWidget("scrollBar",
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)
{
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 (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);
-#else
+#endif
+
+ // Set the through color directly, in case XmChangeColor() decided
+ // to change it.
XtVaSetValues(sb->id,
XmNtroughColor, gui.scroll_bg_pixel,
NULL);
-#endif
}
if (gui.scroll_fg_pixel != INVALCOLOR)
diff --git a/src/version.c b/src/version.c
index 9a624cfbc..f21159412 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4558,
+/**/
4557,
/**/
4556,