aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-03-11 20:11:57 +0800
committerPo Lu2022-03-11 20:26:31 +0800
commit0dcc9fdc17773eb9154c43081e82c5bfb728e30e (patch)
treecf679fedee94a4ec7835be45ef5665c44d50b27a /src
parent7ad1df5e1684532efeec435be4ac7fc76affc814 (diff)
downloademacs-0dcc9fdc17773eb9154c43081e82c5bfb728e30e.tar.gz
emacs-0dcc9fdc17773eb9154c43081e82c5bfb728e30e.zip
Fix initial values of scroll bar foreground and background on GTK 3
* src/gtkutil.c (xg_create_frame_widgets): Stop creating scrollbar stylesheet providers. * src/xfns.c (Fx_create_frame): Create scroll bar stylesheet providers here instead. (x_set_scroll_bar_background): (x_set_scroll_bar_foreground): Ignore tooltip frames.
Diffstat (limited to 'src')
-rw-r--r--src/gtkutil.c8
-rw-r--r--src/xfns.c65
2 files changed, 39 insertions, 34 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index f488b0ff752..fd32dc15bf2 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1631,14 +1631,6 @@ xg_create_frame_widgets (struct frame *f)
1631 G_CALLBACK (delete_cb), f); 1631 G_CALLBACK (delete_cb), f);
1632#endif 1632#endif
1633 1633
1634#if defined HAVE_GTK3 && !defined HAVE_PGTK
1635 /* On PGTK this is done in Fx_create_frame. */
1636 FRAME_OUTPUT_DATA (f)->scrollbar_background_css_provider
1637 = gtk_css_provider_new ();
1638 FRAME_OUTPUT_DATA (f)->scrollbar_foreground_css_provider
1639 = gtk_css_provider_new ();
1640#endif
1641
1642 /* Convert our geometry parameters into a geometry string 1634 /* Convert our geometry parameters into a geometry string
1643 and specify it. 1635 and specify it.
1644 GTK will itself handle calculating the real position this way. */ 1636 GTK will itself handle calculating the real position this way. */
diff --git a/src/xfns.c b/src/xfns.c
index 65f3b5097c3..a1d6fd29df9 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1970,22 +1970,25 @@ x_set_scroll_bar_foreground (struct frame *f, Lisp_Object value, Lisp_Object old
1970 } 1970 }
1971 1971
1972#ifdef HAVE_GTK3 1972#ifdef HAVE_GTK3
1973 if (pixel != -1) 1973 if (!FRAME_TOOLTIP_P (f))
1974 { 1974 {
1975 color.pixel = pixel; 1975 if (pixel != -1)
1976 {
1977 color.pixel = pixel;
1976 1978
1977 XQueryColor (FRAME_X_DISPLAY (f), 1979 XQueryColor (FRAME_X_DISPLAY (f),
1978 FRAME_X_COLORMAP (f), 1980 FRAME_X_COLORMAP (f),
1979 &color); 1981 &color);
1980 1982
1981 sprintf (css, "scrollbar slider { background-color: #%02x%02x%02x; }", 1983 sprintf (css, "scrollbar slider { background-color: #%02x%02x%02x; }",
1982 color.red >> 8, color.green >> 8, color.blue >> 8); 1984 color.red >> 8, color.green >> 8, color.blue >> 8);
1983 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_foreground_css_provider, 1985 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_foreground_css_provider,
1984 css, -1, NULL); 1986 css, -1, NULL);
1987 }
1988 else
1989 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_foreground_css_provider,
1990 "", -1, NULL);
1985 } 1991 }
1986 else
1987 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_foreground_css_provider,
1988 "", -1, NULL);
1989#endif 1992#endif
1990} 1993}
1991 1994
@@ -2040,22 +2043,25 @@ x_set_scroll_bar_background (struct frame *f, Lisp_Object value, Lisp_Object old
2040 } 2043 }
2041 2044
2042#ifdef HAVE_GTK3 2045#ifdef HAVE_GTK3
2043 if (pixel != -1) 2046 if (!FRAME_TOOLTIP_P (f))
2044 { 2047 {
2045 color.pixel = pixel; 2048 if (pixel != -1)
2049 {
2050 color.pixel = pixel;
2046 2051
2047 XQueryColor (FRAME_X_DISPLAY (f), 2052 XQueryColor (FRAME_X_DISPLAY (f),
2048 FRAME_X_COLORMAP (f), 2053 FRAME_X_COLORMAP (f),
2049 &color); 2054 &color);
2050 2055
2051 sprintf (css, "scrollbar trough { background-color: #%02x%02x%02x; }", 2056 sprintf (css, "scrollbar trough { background-color: #%02x%02x%02x; }",
2052 color.red >> 8, color.green >> 8, color.blue >> 8); 2057 color.red >> 8, color.green >> 8, color.blue >> 8);
2053 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_background_css_provider, 2058 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_background_css_provider,
2054 css, -1, NULL); 2059 css, -1, NULL);
2055 } 2060 }
2056 else 2061 else
2057 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_background_css_provider, 2062 gtk_css_provider_load_from_data (FRAME_X_OUTPUT (f)->scrollbar_background_css_provider,
2058 "", -1, NULL); 2063 "", -1, NULL);
2064 }
2059#endif 2065#endif
2060} 2066}
2061 2067
@@ -4759,6 +4765,13 @@ This function is an internal primitive--use `make-frame' instead. */)
4759 gui_default_parameter (f, parms, Qno_special_glyphs, Qnil, 4765 gui_default_parameter (f, parms, Qno_special_glyphs, Qnil,
4760 NULL, NULL, RES_TYPE_BOOLEAN); 4766 NULL, NULL, RES_TYPE_BOOLEAN);
4761 4767
4768#ifdef HAVE_GTK3
4769 FRAME_OUTPUT_DATA (f)->scrollbar_background_css_provider
4770 = gtk_css_provider_new ();
4771 FRAME_OUTPUT_DATA (f)->scrollbar_foreground_css_provider
4772 = gtk_css_provider_new ();
4773#endif
4774
4762 x_default_scroll_bar_color_parameter (f, parms, Qscroll_bar_foreground, 4775 x_default_scroll_bar_color_parameter (f, parms, Qscroll_bar_foreground,
4763 "scrollBarForeground", 4776 "scrollBarForeground",
4764 "ScrollBarForeground", true); 4777 "ScrollBarForeground", true);