]> Pileus Git - ~andy/gtk/commitdiff
Rollback the following changes, to fix it the proper way in Pango:
authorBehdad Esfahbod <behdad@gnome.org>
Mon, 22 May 2006 17:08:13 +0000 (17:08 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Mon, 22 May 2006 17:08:13 +0000 (17:08 +0000)
2006-05-22  Behdad Esfahbod  <behdad@gnome.org>

        Rollback the following changes, to fix it the proper way in Pango:

        * gdk/gdkinternals.h:
        * gdk/gdkscreen.c (gdk_screen_class_init), (gdk_screen_finalize),
        (update_fontmap_resolution), (gdk_screen_set_resolution):  Add new
        function _gdk_screen_get_font_map() and have one fontmap per screen,
        with the correct resolution set on it.

        * gdk/gdkpango.c (gdk_pango_context_get_for_screen): Use
        _gdk_screen_get_font_map() instead of setting resolution on the
        PangoCairoContext.  (#342529)

ChangeLog
ChangeLog.pre-2-10
gdk/gdkinternals.h
gdk/gdkpango.c
gdk/gdkscreen.c

index 560206d4380fa49163f91bc9bb67901382e3d626..ae807c5cd85470400315975efc4f965e24314018 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2006-05-22  Behdad Esfahbod  <behdad@gnome.org>
+
+       Rollback the following changes, to fix it the proper way in Pango:
+
+       * gdk/gdkinternals.h:
+       * gdk/gdkscreen.c (gdk_screen_class_init), (gdk_screen_finalize),
+       (update_fontmap_resolution), (gdk_screen_set_resolution):  Add new
+       function _gdk_screen_get_font_map() and have one fontmap per screen,
+       with the correct resolution set on it.
+
+       * gdk/gdkpango.c (gdk_pango_context_get_for_screen): Use
+       _gdk_screen_get_font_map() instead of setting resolution on the
+       PangoCairoContext.  (#342529)
+
 2006-05-22  Emmanuele Bassi  <ebassi@gnome.org>
 
        * gtk/gtkrecentmanager.h:
index 560206d4380fa49163f91bc9bb67901382e3d626..ae807c5cd85470400315975efc4f965e24314018 100644 (file)
@@ -1,3 +1,17 @@
+2006-05-22  Behdad Esfahbod  <behdad@gnome.org>
+
+       Rollback the following changes, to fix it the proper way in Pango:
+
+       * gdk/gdkinternals.h:
+       * gdk/gdkscreen.c (gdk_screen_class_init), (gdk_screen_finalize),
+       (update_fontmap_resolution), (gdk_screen_set_resolution):  Add new
+       function _gdk_screen_get_font_map() and have one fontmap per screen,
+       with the correct resolution set on it.
+
+       * gdk/gdkpango.c (gdk_pango_context_get_for_screen): Use
+       _gdk_screen_get_font_map() instead of setting resolution on the
+       PangoCairoContext.  (#342529)
+
 2006-05-22  Emmanuele Bassi  <ebassi@gnome.org>
 
        * gtk/gtkrecentmanager.h:
index 20c7d1d2feab3e8f171770ec7bd9658aec169bca..1c279f4ec3606c77122dac3be8dc654e7b2c1806 100644 (file)
@@ -29,7 +29,6 @@
 #include <gdk/gdktypes.h>
 #include <gdk/gdkwindow.h>
 #include <gdk/gdkprivate.h>
-#include <pango/pango.h>
 
 #ifndef __GDK_INTERNALS_H__
 #define __GDK_INTERNALS_H__
@@ -405,10 +404,6 @@ void _gdk_windowing_gc_get_foreground (GdkGC    *gc,
 void _gdk_windowing_gc_get_background (GdkGC    *gc,
                                       GdkColor *color);
 
-/* Gets the fontmap for screen */
-PangoFontMap *
-_gdk_screen_get_font_map (GdkScreen *screen);
-
 /************************************
  * Initialization and exit routines *
  ************************************/
index 984881aeeade995528788a785f298f583b4ef18b..9375a80545ab365b708bb7b7d10b8f296269f6d3 100644 (file)
@@ -1416,16 +1416,20 @@ gdk_pango_context_get_for_screen (GdkScreen *screen)
   PangoFontMap *fontmap;
   PangoContext *context;
   const cairo_font_options_t *options;
+  double dpi;
   
   g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
 
-  fontmap = _gdk_screen_get_font_map (screen);
+  fontmap = pango_cairo_font_map_get_default ();
   
   context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
 
   options = gdk_screen_get_font_options (screen);
   pango_cairo_context_set_font_options (context, options);
 
+  dpi = gdk_screen_get_resolution (screen);
+  pango_cairo_context_set_resolution (context, dpi);
+
   return context;
 }
 
index 000ca5e85bb3bea69b45447575197c03b79a65d7..986f9f5525dbc1538a6e285a0afca95ac7d3b7e7 100644 (file)
 #include "gdk.h"               /* For gdk_rectangle_intersect() */
 #include "gdkcolor.h"
 #include "gdkwindow.h"
-#include "gdkinternals.h"
 #include "gdkscreen.h"
 #include "gdkintl.h"
 #include "gdkalias.h"
 
-
-#define GDK_SCREEN_GET_PRIVATE(o)  \
-    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDK_TYPE_SCREEN, GdkScreenPrivate))
-
-typedef struct _GdkScreenPrivate GdkScreenPrivate;
-
-struct _GdkScreenPrivate
-{
-  PangoFontMap *fontmap;
-};
-
-
 static void gdk_screen_dispose      (GObject        *object);
 static void gdk_screen_finalize     (GObject        *object);
 static void gdk_screen_set_property (GObject        *object,
@@ -137,8 +124,6 @@ gdk_screen_class_init (GdkScreenClass *klass)
                  g_cclosure_marshal_VOID__VOID,
                  G_TYPE_NONE,
                  0);
-
-  g_type_class_add_private (klass, sizeof (GdkScreenPrivate));
 }
 
 static void
@@ -175,14 +160,10 @@ static void
 gdk_screen_finalize (GObject *object)
 {
   GdkScreen *screen = GDK_SCREEN (object);
-  GdkScreenPrivate *priv = GDK_SCREEN_GET_PRIVATE (screen);
 
   if (screen->font_options)
       cairo_font_options_destroy (screen->font_options);
 
-  if (priv->fontmap)
-      g_object_unref (priv->fontmap);
-
   G_OBJECT_CLASS (gdk_screen_parent_class)->finalize (object);
 }
 
@@ -388,48 +369,6 @@ gdk_screen_height_mm (void)
   return gdk_screen_get_height_mm (gdk_screen_get_default ());
 }
 
-static void
-update_fontmap_resolution (GdkScreen                  *screen)
-{
-  GdkScreenPrivate *priv = GDK_SCREEN_GET_PRIVATE (screen);
-  double dpi = screen->resolution;
-
-  if (dpi < 0)
-    dpi = 96.;
-
-  if (priv->fontmap)
-    pango_cairo_font_map_set_resolution (priv->fontmap, dpi);
-}
-
-/**
- * _gdk_screen_get_font_map:
- * @screen: a #GdkScreen
- *
- * Gets the Pango fontmap for this screen that is used to create
- * #PangoContext, with the right resolution set on it.
- *
- * Return value: the fontmap.
- *
- * Since: 2.10
- **/
-PangoFontMap *
-_gdk_screen_get_font_map (GdkScreen *screen)
-{
-  GdkScreenPrivate *priv;
-  
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-
-  priv = GDK_SCREEN_GET_PRIVATE (screen);
-
-  if (G_UNLIKELY (!priv->fontmap))
-    {
-      priv->fontmap = pango_cairo_font_map_new ();
-      update_fontmap_resolution (screen);
-    }
-    
-  return priv->fontmap;
-}
-
 /**
  * gdk_screen_set_font_options:
  * @screen: a #GdkScreen
@@ -509,8 +448,6 @@ gdk_screen_set_resolution (GdkScreen *screen,
       {
        screen->resolution = dpi;
 
-       update_fontmap_resolution (screen);
-
        g_object_notify (G_OBJECT (screen), "resolution");
       }
 }