diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-03-13 14:45:03 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-03-13 14:45:03 +0000 |
commit | e850439a561d8e7153b987473d768fe9696e9afa (patch) | |
tree | d4018c5bf17dd649c4b446ddbe25033667fe9d98 /src | |
parent | 754d2b40369d8fdcf77fc05cc608f86387016bd9 (diff) | |
download | vim-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)
Diffstat (limited to 'src')
-rw-r--r-- | src/gui.h | 6 | ||||
-rw-r--r-- | src/gui_motif.c | 31 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 27 deletions
@@ -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, |