Drop the screen resolution api
GTK+ now uses the gtk-xft-dpi setting directly. Note: this commit only fixes the backends that currently provide this setting. The win32 and Quartz backends still need to be fixed.
This commit is contained in:
143
gdk/gdkscreen.c
143
gdk/gdkscreen.c
@@ -44,21 +44,6 @@
|
||||
*/
|
||||
|
||||
|
||||
static void gdk_screen_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gdk_screen_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_RESOLUTION
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
SIZE_CHANGED,
|
||||
@@ -75,20 +60,6 @@ gdk_screen_class_init (GdkScreenClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->set_property = gdk_screen_set_property;
|
||||
object_class->get_property = gdk_screen_get_property;
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_RESOLUTION,
|
||||
g_param_spec_double ("resolution",
|
||||
P_("Font resolution"),
|
||||
P_("The resolution for fonts on the screen"),
|
||||
-1.0,
|
||||
10000.0,
|
||||
-1.0,
|
||||
G_PARAM_READWRITE|G_PARAM_STATIC_NAME|
|
||||
G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
|
||||
|
||||
/**
|
||||
* GdkScreen::monitors-changed:
|
||||
* @screen: the object on which the signal is emitted
|
||||
@@ -115,7 +86,6 @@ gdk_screen_class_init (GdkScreenClass *klass)
|
||||
static void
|
||||
gdk_screen_init (GdkScreen *screen)
|
||||
{
|
||||
screen->resolution = -1.;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -130,119 +100,6 @@ _gdk_screen_close (GdkScreen *screen)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_screen_set_resolution:
|
||||
* @screen: a #GdkScreen
|
||||
* @dpi: the resolution in “dots per inch”. (Physical inches aren’t actually
|
||||
* involved; the terminology is conventional.)
|
||||
|
||||
* Sets the resolution for font handling on the screen. This is a
|
||||
* scale factor between points specified in a #PangoFontDescription
|
||||
* and cairo units. The default value is 96, meaning that a 10 point
|
||||
* font will be 13 units high. (10 * 96. / 72. = 13.3).
|
||||
*
|
||||
* Since: 2.10
|
||||
**/
|
||||
void
|
||||
gdk_screen_set_resolution (GdkScreen *screen,
|
||||
gdouble dpi)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||
|
||||
if (dpi < 0)
|
||||
dpi = -1.0;
|
||||
|
||||
screen->resolution_set = TRUE;
|
||||
|
||||
if (screen->resolution != dpi)
|
||||
{
|
||||
screen->resolution = dpi;
|
||||
|
||||
g_object_notify (G_OBJECT (screen), "resolution");
|
||||
}
|
||||
}
|
||||
|
||||
/* Just like gdk_screen_set_resolution(), but doesn't change
|
||||
* screen->resolution. This is us to allow us to distinguish
|
||||
* resolution changes that the backend picks up from resolution
|
||||
* changes made through the public API - perhaps using
|
||||
* g_object_set(<GtkSetting>, "gtk-xft-dpi", ...);
|
||||
*/
|
||||
void
|
||||
_gdk_screen_set_resolution (GdkScreen *screen,
|
||||
gdouble dpi)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||
|
||||
if (dpi < 0)
|
||||
dpi = -1.0;
|
||||
|
||||
if (screen->resolution != dpi)
|
||||
{
|
||||
screen->resolution = dpi;
|
||||
|
||||
g_object_notify (G_OBJECT (screen), "resolution");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_screen_get_resolution:
|
||||
* @screen: a #GdkScreen
|
||||
*
|
||||
* Gets the resolution for font handling on the screen; see
|
||||
* gdk_screen_set_resolution() for full details.
|
||||
*
|
||||
* Returns: the current resolution, or -1 if no resolution
|
||||
* has been set.
|
||||
*
|
||||
* Since: 2.10
|
||||
**/
|
||||
gdouble
|
||||
gdk_screen_get_resolution (GdkScreen *screen)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), -1.0);
|
||||
|
||||
return screen->resolution;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_screen_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkScreen *screen = GDK_SCREEN (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_RESOLUTION:
|
||||
g_value_set_double (value, gdk_screen_get_resolution (screen));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_screen_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkScreen *screen = GDK_SCREEN (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_RESOLUTION:
|
||||
gdk_screen_set_resolution (screen, g_value_get_double (value));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_screen_get_display:
|
||||
* @screen: a #GdkScreen
|
||||
|
||||
@@ -50,12 +50,6 @@ GList * gdk_screen_get_toplevel_windows (GdkScreen *screen);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkScreen *gdk_screen_get_default (void);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gdk_screen_set_resolution (GdkScreen *screen,
|
||||
gdouble dpi);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
gdouble gdk_screen_get_resolution (GdkScreen *screen);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_SCREEN_H__ */
|
||||
|
||||
@@ -33,8 +33,6 @@ struct _GdkScreen
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
gdouble resolution; /* pixels/points scale factor for fonts */
|
||||
guint resolution_set : 1; /* resolution set through public API */
|
||||
guint closed : 1;
|
||||
};
|
||||
|
||||
|
||||
@@ -267,12 +267,7 @@ update_xft_settings (GdkScreen *screen)
|
||||
|
||||
if (screen_wayland->xft_settings.dpi != xft_settings.dpi)
|
||||
{
|
||||
double dpi = xft_settings.dpi / 1024.;
|
||||
|
||||
screen_wayland->xft_settings.dpi = xft_settings.dpi;
|
||||
|
||||
_gdk_screen_set_resolution (screen, dpi);
|
||||
|
||||
notify_setting (screen, "gtk-xft-dpi");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,7 +398,6 @@ static void
|
||||
read_settings (GdkX11Screen *x11_screen,
|
||||
gboolean do_notify)
|
||||
{
|
||||
GdkScreen *screen = GDK_SCREEN (x11_screen);
|
||||
GdkDisplay *display = x11_screen->display;
|
||||
|
||||
Atom type;
|
||||
|
||||
Reference in New Issue
Block a user