rpms/gdm/devel gdm-2.6.0.8-compensate-for-broken-dpi.patch, 1.1, 1.2 gdm.spec, 1.64, 1.65
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Wed Apr 13 21:47:16 UTC 2005
Update of /cvs/dist/rpms/gdm/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv30495
Modified Files:
gdm-2.6.0.8-compensate-for-broken-dpi.patch gdm.spec
Log Message:
- Don't hard code dpi setting to 96.0, but instead look at
Xft.dpi
gdm-2.6.0.8-compensate-for-broken-dpi.patch:
Makefile.am | 2
greeter_canvas_item.c | 9 --
greeter_canvas_text.c | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++
greeter_canvas_text.h | 33 +++++++
4 files changed, 252 insertions(+), 5 deletions(-)
Index: gdm-2.6.0.8-compensate-for-broken-dpi.patch
===================================================================
RCS file: /cvs/dist/rpms/gdm/devel/gdm-2.6.0.8-compensate-for-broken-dpi.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdm-2.6.0.8-compensate-for-broken-dpi.patch 13 Apr 2005 20:49:58 -0000 1.1
+++ gdm-2.6.0.8-compensate-for-broken-dpi.patch 13 Apr 2005 21:47:13 -0000 1.2
@@ -1,5 +1,5 @@
--- gdm-2.6.0.8/gui/greeter/greeter_canvas_item.c.compensate-for-broken-dpi 2005-03-04 14:55:39.000000000 -0500
-+++ gdm-2.6.0.8/gui/greeter/greeter_canvas_item.c 2005-04-13 16:14:10.000000000 -0400
++++ gdm-2.6.0.8/gui/greeter/greeter_canvas_item.c 2005-04-13 16:35:09.000000000 -0400
@@ -15,6 +15,7 @@
#include "greeter_system.h"
#include "greeter_canvas_item.h"
@@ -37,14 +37,29 @@
textattr, "",
"x", 0.0,
"y", 0.0,
+--- gdm-2.6.0.8/gui/greeter/Makefile.am.compensate-for-broken-dpi 2003-12-10 16:10:17.000000000 -0500
++++ gdm-2.6.0.8/gui/greeter/Makefile.am 2005-04-13 16:35:09.000000000 -0400
+@@ -31,6 +31,8 @@ gdmgreeter_SOURCES = \
+ greeter.h \
+ greeter_action_language.c \
+ greeter_action_language.h \
++ greeter_canvas_text.c \
++ greeter_canvas_text.h \
+ greeter_canvas_item.c \
+ greeter_canvas_item.h \
+ greeter_configuration.h \
--- /dev/null 2005-04-13 10:02:28.377315384 -0400
-+++ gdm-2.6.0.8/gui/greeter/greeter_canvas_text.c 2005-04-13 16:23:24.000000000 -0400
-@@ -0,0 +1,114 @@
++++ gdm-2.6.0.8/gui/greeter/greeter_canvas_text.c 2005-04-13 17:42:18.000000000 -0400
+@@ -0,0 +1,213 @@
++#include <string.h>
++
+#include "greeter_canvas_text.h"
++
+#include <libgnomecanvas/gnome-canvas.h>
+#include <libgnomecanvas/gnome-canvas-text.h>
+#include <pango/pangoft2.h>
+
++
+enum
+{
+ PROP_0,
@@ -92,7 +107,6 @@
+ "Markup to render",
+ NULL,
+ (G_PARAM_READABLE | G_PARAM_WRITABLE)));
-+
+}
+
+static void
@@ -100,45 +114,135 @@
+{
+}
+
++static gdouble
++greeter_canvas_text_get_screen_dpi (GreeterCanvasText *text)
++{
++ GdkDisplay *display;
++ GdkScreen *screen;
++ GdkAtom atom, type;
++ gint resources_length;
++ gchar *resources, *resource, *end;
++ gdouble dpi;
++ static const gdouble default_dpi = 96.0;
++
++ atom = gdk_atom_intern ("RESOURCE_MANAGER", TRUE);
++
++ if (atom == 0)
++ return default_dpi;
++
++ display =
++ gtk_widget_get_display (GTK_WIDGET (GNOME_CANVAS_ITEM (text)->canvas));
++
++ if (display == NULL)
++ return default_dpi;
++
++ screen =
++ gtk_widget_get_screen (GTK_WIDGET (GNOME_CANVAS_ITEM (text)->canvas));
++
++ if (screen == NULL)
++ return default_dpi;
++
++ gdk_error_trap_push ();
++ if (!gdk_property_get (gdk_screen_get_root_window (screen),
++ atom, GDK_TARGET_STRING,
++ 0, G_MAXINT,
++ FALSE,
++ &type, NULL, &resources_length,
++ (guchar **) &resources))
++ {
++ gdk_error_trap_pop ();
++ return default_dpi;
++ }
++
++ gdk_display_sync (display);
++ gdk_error_trap_pop ();
++
++ if (type != GDK_TARGET_STRING)
++ return default_dpi;
++
++ if (resources == NULL)
++ return default_dpi;
++
++ resource = strstr (resources, "Xft.dpi:\t");
++
++ if (resource == NULL)
++ return default_dpi;
++
++ resource += sizeof ("Xft.dpi:\t") - 1;
++
++ dpi = strtod (resource, &end);
++
++ g_assert (end != NULL);
++
++ if ((end == resource) || (*end != '\n'))
++ return default_dpi;
++
++ g_free (resources);
++
++ if (dpi < G_MINDOUBLE)
++ return default_dpi;
++
++ return dpi;
++}
++
+static void
-+greeter_canvas_text_set_property (GObject *object,
-+ guint param_id,
-+ const GValue *value,
-+ GParamSpec *pspec)
++greeter_canvas_text_init_layout (GreeterCanvasText *greeter_item)
+{
+ GnomeCanvasItem *item;
+ GnomeCanvasText *text;
+
-+ item = GNOME_CANVAS_ITEM (object);
-+ text = GNOME_CANVAS_TEXT (object);
++ PangoContext *gtk_context, *context;
++ static PangoFT2FontMap *font_map;
++ gdouble dpi;
+
-+ if (text->layout == NULL)
-+ {
-+ PangoContext *gtk_context, *context;
-+ PangoFT2FontMap *font_map;
++ item = GNOME_CANVAS_ITEM (greeter_item);
++ text = GNOME_CANVAS_TEXT (greeter_item);
+
-+ gtk_context = gtk_widget_get_pango_context (GTK_WIDGET (item->canvas));
++ if (text->layout != NULL)
++ return;
+
-+ font_map = (PangoFT2FontMap *) pango_ft2_font_map_new ();
-+ pango_ft2_font_map_set_resolution (font_map, 96.0, 96.0);
-+ context = pango_ft2_font_map_create_context (font_map);
-+ pango_context_set_language (context,
-+ pango_context_get_language (gtk_context));
-+ pango_context_set_base_dir (context,
-+ pango_context_get_base_dir (gtk_context));
-+ pango_context_set_font_description (context,
-+ pango_context_get_font_description (gtk_context));
-+ text->layout = pango_layout_new (context);
-+ g_object_unref (context);
++ gtk_context = gtk_widget_get_pango_context (GTK_WIDGET (item->canvas));
+
++ if (font_map == NULL)
++ {
++ font_map = (PangoFT2FontMap *) pango_ft2_font_map_new ();
++ dpi = greeter_canvas_text_get_screen_dpi (greeter_item);
++ pango_ft2_font_map_set_resolution (font_map, dpi, dpi);
+ }
-+ if (param_id == PROP_TEXT)
-+ g_object_set_property (object, "GnomeCanvasText::text", value);
-+ else if (param_id == PROP_MARKUP)
-+ g_object_set_property (object, "GnomeCanvasText::markup", value);
-+ else
-+ g_assert_not_reached ();
+
++ context = pango_ft2_font_map_create_context (font_map);
++
++ pango_context_set_language (context,
++ pango_context_get_language (gtk_context));
++ pango_context_set_base_dir (context,
++ pango_context_get_base_dir (gtk_context));
++ pango_context_set_font_description (context,
++ pango_context_get_font_description (gtk_context));
++
++ text->layout = pango_layout_new (context);
++ g_object_unref (context);
++}
++
++static void
++greeter_canvas_text_set_property (GObject *object,
++ guint param_id,
++ const GValue *value,
++ GParamSpec *pspec)
++{
++ switch (param_id)
++ {
++ case PROP_TEXT:
++ greeter_canvas_text_init_layout (GREETER_CANVAS_TEXT (object));
++ g_object_set_property (object, "GnomeCanvasText::text", value);
++ break;
++ case PROP_MARKUP:
++ greeter_canvas_text_init_layout (GREETER_CANVAS_TEXT (object));
++ g_object_set_property (object, "GnomeCanvasText::markup", value);
++ break;
++ default:
++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
++ break;
++ }
+}
+
+static void
@@ -147,15 +251,21 @@
+ GValue *value,
+ GParamSpec *pspec)
+{
-+ if (param_id == PROP_TEXT)
-+ g_object_get_property (object, "GnomeCanvasText::text", value);
-+ else if (param_id == PROP_MARKUP)
-+ g_object_get_property (object, "GnomeCanvasText::markup", value);
-+ else
-+ g_assert_not_reached ();
++ switch (param_id)
++ {
++ case PROP_TEXT:
++ g_object_get_property (object, "GnomeCanvasText::text", value);
++ break;
++ case PROP_MARKUP:
++ g_object_get_property (object, "GnomeCanvasText::markup", value);
++ break;
++ default:
++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
++ break;
++ }
+}
--- /dev/null 2005-04-13 10:02:28.377315384 -0400
-+++ gdm-2.6.0.8/gui/greeter/greeter_canvas_text.h 2005-04-13 13:48:28.000000000 -0400
++++ gdm-2.6.0.8/gui/greeter/greeter_canvas_text.h 2005-04-13 16:35:09.000000000 -0400
@@ -0,0 +1,33 @@
+#ifndef GREETER_CANVAS_TEXT_H
+#define GREETER_CANVAS_TEXT_H
@@ -190,14 +300,3 @@
+G_END_DECLS
+
+#endif
---- gdm-2.6.0.8/gui/greeter/Makefile.am 2003-12-10 16:10:17.000000000 -0500
-+++ gdm-2.6.0.8/gui/greeter/Makefile.am 2005-04-13 13:45:40.000000000 -0400
-@@ -31,6 +31,8 @@ gdmgreeter_SOURCES = \
- greeter.h \
- greeter_action_language.c \
- greeter_action_language.h \
-+ greeter_canvas_text.c \
-+ greeter_canvas_text.h \
- greeter_canvas_item.c \
- greeter_canvas_item.h \
- greeter_configuration.h \
Index: gdm.spec
===================================================================
RCS file: /cvs/dist/rpms/gdm/devel/gdm.spec,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- gdm.spec 13 Apr 2005 20:49:58 -0000 1.64
+++ gdm.spec 13 Apr 2005 21:47:13 -0000 1.65
@@ -16,7 +16,7 @@
Summary: The GNOME Display Manager.
Name: gdm
Version: 2.6.0.8
-Release: 2
+Release: 3
Epoch: 1
License: LGPL/GPL
Group: User Interface/X
@@ -273,6 +273,10 @@
%attr(1770, root, gdm) %dir %{_localstatedir}/gdm
%changelog
+* Wed Apr 13 2005 Ray Strode <rstrode at redhat.com> 1:2.6.0.8-3
+- Don't hard code dpi setting to 96.0, but instead look at
+ Xft.dpi
+
* Wed Apr 13 2005 Ray Strode <rstrode at redhat.com> 1:2.6.0.8-2
- touch /var/lock/subsys/gdm-early-login so gdm gets killed on
runlevel changes (bug 113107)
More information about the fedora-cvs-commits
mailing list