Unbreak GTK12 look under GNOME2 and KDE3
Joe Marcus Clarke
marcus at marcuscom.com
Sat Apr 17 07:48:46 GMT 2004
On Fri, 2004-04-16 at 00:53, Alexander Kabaev wrote:
> Newest Gnome and KDE session managers find it fashionable to set
> $GTK_RC_FILES to partially bogus values, which make gtk12 default font
> horribly huge by default. For example, KDE sets the variable to
> /etc/gtk/gtkrc:$HOME/.gtkrc:$HOME/.kde/share/config/gtkrc, where the
> first path is clearly bogus. gnome-session is not far behind there too.
>
> Attached patch-gtk::gtkrc.c file replaces existing patch-ad file in
> gtk12/files directory. In addition to patch-ad changes, this file makes
> gtk to _always_ prepend default gtk config file to the list of files,
> supplied by environment. /usr/X11R6/share/themes/Default/gtk/gtkrc
> provides sane defaults and makes gtk12 default font to be of normal size
> again.
>
> Consider committing it to the port, please.
What about something slightly different. What if we test for the
existence of each file in $GTK_RC_FILES, and only add the default paths
if that none of the files listed in that variable exist (or rather can
be stat'd). See the attached (runtime untested) patch.
I think this might be more true to the spirit of original code.
Joe
> --
> Alexander Kabaev
>
>
>
> ______________________________________________________________________
> --- gtk/gtkrc.c.orig Thu Mar 15 13:41:40 2001
> +++ gtk/gtkrc.c Fri Apr 16 00:24:54 2004
> @@ -260,9 +260,9 @@
>
> var = getenv("GTK_DATA_PREFIX");
> if (var)
> - path = g_strdup_printf("%s%s", var, "/share/gtk/themes");
> + path = g_strdup_printf("%s%s", var, "/share/themes");
> else
> - path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/gtk/themes");
> + path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/themes");
>
> for (n = 0; pixmap_path[n]; n++) ;
> if (n >= GTK_RC_MAX_PIXMAP_PATHS - 1)
> @@ -294,7 +294,7 @@
>
> var = g_get_home_dir ();
> if (var)
> - module_path[n++] = g_strdup_printf("%s%s", var, "/.gtk/lib/themes/engines");
> + module_path[n++] = g_strdup_printf("%s%s", var, "/.gtk/themes/engines");
> module_path[n] = NULL;
> }
>
> @@ -312,6 +312,10 @@
> gtk_rc_default_files[0] = NULL;
> init = TRUE;
>
> + str = g_strdup_printf ("%s%s", GTK_SYSCONFDIR, "/gtkrc");
> + gtk_rc_add_default_file (str);
> + g_free (str);
> +
> var = getenv("GTK_RC_FILES");
> if (var)
> {
> @@ -326,10 +330,6 @@
> }
> else
> {
> - str = g_strdup_printf ("%s%s", GTK_SYSCONFDIR, "/gtk/gtkrc");
> - gtk_rc_add_default_file (str);
> - g_free (str);
> -
> var = g_get_home_dir ();
> if (var)
> {
>
> ______________________________________________________________________
> _______________________________________________
> freebsd-gnome at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-gnome
> To unsubscribe, send any mail to "freebsd-gnome-unsubscribe at freebsd.org"
--
PGP Key : http://www.marcuscom.com/pgp.asc
-------------- next part --------------
--- gtk/gtkrc.c.orig Thu Mar 15 13:41:40 2001
+++ gtk/gtkrc.c Sat Apr 17 03:42:56 2004
@@ -260,9 +260,9 @@
var = getenv("GTK_DATA_PREFIX");
if (var)
- path = g_strdup_printf("%s%s", var, "/share/gtk/themes");
+ path = g_strdup_printf("%s%s", var, "/share/themes");
else
- path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/gtk/themes");
+ path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/themes");
for (n = 0; pixmap_path[n]; n++) ;
if (n >= GTK_RC_MAX_PIXMAP_PATHS - 1)
@@ -294,7 +294,7 @@
var = g_get_home_dir ();
if (var)
- module_path[n++] = g_strdup_printf("%s%s", var, "/.gtk/lib/themes/engines");
+ module_path[n++] = g_strdup_printf("%s%s", var, "/.gtk/themes/engines");
module_path[n] = NULL;
}
@@ -305,6 +305,7 @@
gchar *var, *str;
gchar **files;
gint i;
+ struct stat sb;
if (init)
return;
@@ -319,14 +320,15 @@
i=0;
while (files[i])
{
- gtk_rc_add_default_file (files[i]);
+ if (stat (files[i], &sb) == 0)
+ gtk_rc_add_default_file (files[i]);
i++;
}
g_strfreev (files);
}
- else
+ if (gtk_rc_default_files[0] == NULL)
{
- str = g_strdup_printf ("%s%s", GTK_SYSCONFDIR, "/gtk/gtkrc");
+ str = g_strdup_printf ("%s%s", GTK_SYSCONFDIR, "/gtkrc");
gtk_rc_add_default_file (str);
g_free (str);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-gnome/attachments/20040417/a7c3ac1b/attachment.bin
More information about the freebsd-gnome
mailing list