emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 0dcc9fdc17 2/2: Fix initial values of scroll bar foreground and b


From: Po Lu
Subject: master 0dcc9fdc17 2/2: Fix initial values of scroll bar foreground and background on GTK 3
Date: Fri, 11 Mar 2022 07:27:53 -0500 (EST)

branch: master
commit 0dcc9fdc17773eb9154c43081e82c5bfb728e30e
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    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.
---
 src/gtkutil.c |  8 --------
 src/xfns.c    | 65 +++++++++++++++++++++++++++++++++++------------------------
 2 files changed, 39 insertions(+), 34 deletions(-)

diff --git a/src/gtkutil.c b/src/gtkutil.c
index f488b0ff75..fd32dc15bf 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1631,14 +1631,6 @@ xg_create_frame_widgets (struct frame *f)
                     G_CALLBACK (delete_cb), f);
 #endif
 
-#if defined HAVE_GTK3 && !defined HAVE_PGTK
-  /* On PGTK this is done in Fx_create_frame.  */
-  FRAME_OUTPUT_DATA (f)->scrollbar_background_css_provider
-    = gtk_css_provider_new ();
-  FRAME_OUTPUT_DATA (f)->scrollbar_foreground_css_provider
-    = gtk_css_provider_new ();
-#endif
-
   /* Convert our geometry parameters into a geometry string
      and specify it.
      GTK will itself handle calculating the real position this way.  */
diff --git a/src/xfns.c b/src/xfns.c
index 65f3b5097c..a1d6fd29df 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
     }
 
 #ifdef HAVE_GTK3
-  if (pixel != -1)
+  if (!FRAME_TOOLTIP_P (f))
     {
-      color.pixel = pixel;
+      if (pixel != -1)
+       {
+         color.pixel = pixel;
 
-      XQueryColor (FRAME_X_DISPLAY (f),
-                  FRAME_X_COLORMAP (f),
-                  &color);
+         XQueryColor (FRAME_X_DISPLAY (f),
+                      FRAME_X_COLORMAP (f),
+                      &color);
 
-      sprintf (css, "scrollbar slider { background-color: #%02x%02x%02x; }",
-              color.red >> 8, color.green >> 8, color.blue >> 8);
-      gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_foreground_css_provider,
-                                      css, -1, NULL);
+         sprintf (css, "scrollbar slider { background-color: #%02x%02x%02x; }",
+                  color.red >> 8, color.green >> 8, color.blue >> 8);
+         gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_foreground_css_provider,
+                                          css, -1, NULL);
+       }
+      else
+       gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_foreground_css_provider,
+                                        "", -1, NULL);
     }
-  else
-    gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_foreground_css_provider,
-                                    "", -1, NULL);
 #endif
 }
 
@@ -2040,22 +2043,25 @@ x_set_scroll_bar_background (struct frame *f, 
Lisp_Object value, Lisp_Object old
     }
 
 #ifdef HAVE_GTK3
-  if (pixel != -1)
-    {
-      color.pixel = pixel;
+    if (!FRAME_TOOLTIP_P (f))
+      {
+       if (pixel != -1)
+         {
+           color.pixel = pixel;
 
-      XQueryColor (FRAME_X_DISPLAY (f),
-                  FRAME_X_COLORMAP (f),
-                  &color);
+           XQueryColor (FRAME_X_DISPLAY (f),
+                        FRAME_X_COLORMAP (f),
+                        &color);
 
-      sprintf (css, "scrollbar trough { background-color: #%02x%02x%02x; }",
-              color.red >> 8, color.green >> 8, color.blue >> 8);
-      gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_background_css_provider,
-                                      css, -1, NULL);
-    }
-  else
-    gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_background_css_provider,
-                                    "", -1, NULL);
+           sprintf (css, "scrollbar trough { background-color: #%02x%02x%02x; 
}",
+                    color.red >> 8, color.green >> 8, color.blue >> 8);
+           gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_background_css_provider,
+                                            css, -1, NULL);
+         }
+       else
+         gtk_css_provider_load_from_data (FRAME_X_OUTPUT 
(f)->scrollbar_background_css_provider,
+                                          "", -1, NULL);
+      }
 #endif
 }
 
@@ -4759,6 +4765,13 @@ This function is an internal primitive--use `make-frame' 
instead.  */)
   gui_default_parameter (f, parms, Qno_special_glyphs, Qnil,
                          NULL, NULL, RES_TYPE_BOOLEAN);
 
+#ifdef HAVE_GTK3
+  FRAME_OUTPUT_DATA (f)->scrollbar_background_css_provider
+    = gtk_css_provider_new ();
+  FRAME_OUTPUT_DATA (f)->scrollbar_foreground_css_provider
+    = gtk_css_provider_new ();
+#endif
+
   x_default_scroll_bar_color_parameter (f, parms, Qscroll_bar_foreground,
                                        "scrollBarForeground",
                                        "ScrollBarForeground", true);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]