summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in36
-rw-r--r--gdk/x11/Makefile.am1
-rw-r--r--gtk/gtkfontsel.c2
-rw-r--r--gtk/gtkframe.c13
4 files changed, 39 insertions, 13 deletions
diff --git a/configure.in b/configure.in
index 5295327e54..6729031a67 100644
--- a/configure.in
+++ b/configure.in
@@ -399,19 +399,39 @@ if test "x$gdktarget" = "xx11"; then
$x_libs)
#
+ # Checks for FreeType
+ #
+ FREETYPE_LIBS=
+ FREETYPE_CFLAGS=
+ have_freetype=false
+ AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+ if test "x$FREE_CONFIG" != "xno" ; then
+ FREETYPE_CFLAGS=`freetype-config --cflags`
+ FREETYPE_LIBS=`freetype-config --libs`
+
+ AC_CHECK_LIB(freetype, FT_New_Face, have_freetype=true
+ ,:,$FREETYPE_LIBS)
+ fi
+ AC_SUBST(FREETYPE_CFLAGS)
+
+ #
# Checks for Xft/XRender
- #
+ #
have_xft=false
XFT_LIBS=""
- AC_CHECK_LIB(Xrender, XRenderFindFormat,
- AC_CHECK_LIB(Xft, XftFontOpen, have_xft=true, :, -lXrender $X_LIBS)
- ,:,-lXext $X_LIBS)
-
- if $have_xft = 'true' ; then
- X_LIBS="-lXft -lXrender -lXext $X_LIBS"
- AC_DEFINE(HAVE_XFT)
+ XFT_CFLAGS=""
+ if test $have_freetype = true ; then
+ AC_CHECK_LIB(Xrender, XRenderFindFormat,
+ AC_CHECK_LIB(Xft, XftFontOpen, have_xft=true, :, -lXrender -lXext $X_LIBS $FREETYPE_LIBS)
+ ,:,-lXext $X_LIBS)
+
+ if $have_xft = 'true' ; then
+ X_LIBS="-lXft -lXrender -lXext $FREETYPE_LIBS $X_LIBS"
+ AC_DEFINE(HAVE_XFT)
+ fi
fi
+ AC_SUBST(XFT_LIBS)
AM_CONDITIONAL(HAVE_XFT, $have_xft)
# Check for XIM support.
diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am
index ab32460360..dfa5a032b7 100644
--- a/gdk/x11/Makefile.am
+++ b/gdk/x11/Makefile.am
@@ -13,6 +13,7 @@ INCLUDES = @STRIP_BEGIN@ \
@GTK_LOCALE_FLAGS@ \
@PANGO_CFLAGS@ \
@GLIB_CFLAGS@ \
+ @FREETYPE_CFLAGS@ \
@x_cflags@ \
@STRIP_END@
diff --git a/gtk/gtkfontsel.c b/gtk/gtkfontsel.c
index 06f8367b9d..cbe21567e0 100644
--- a/gtk/gtkfontsel.c
+++ b/gtk/gtkfontsel.c
@@ -429,6 +429,8 @@ gtk_font_selection_select_font (GtkWidget *w,
{
g_free (fontsel->font_desc->family_name);
fontsel->font_desc->family_name = g_strdup (family_name);
+
+ gtk_entry_set_text (fontsel->font_entry, family_name);
gtk_font_selection_show_available_styles (fontsel);
gtk_font_selection_select_best_style (fontsel, TRUE);
diff --git a/gtk/gtkframe.c b/gtk/gtkframe.c
index 61a2a74192..02921ef10a 100644
--- a/gtk/gtkframe.c
+++ b/gtk/gtkframe.c
@@ -28,6 +28,9 @@
#include "gtkframe.h"
#include "gtklabel.h"
+#define LABEL_PAD 1
+#define LABEL_SIDE_PAD 2
+
enum {
ARG_0,
ARG_LABEL,
@@ -400,14 +403,14 @@ gtk_frame_paint (GtkWidget *widget,
y -= height_extra * (1 - frame->label_yalign);
height += height_extra * (1 - frame->label_yalign);
- x2 = 2 + (frame->child_allocation.width - child_requisition.width) * xalign;
+ x2 = widget->style->xthickness + (frame->child_allocation.width - child_requisition.width - 2 * LABEL_PAD - 2 * LABEL_SIDE_PAD) * xalign + LABEL_SIDE_PAD;
gtk_paint_shadow_gap (widget->style, widget->window,
GTK_STATE_NORMAL, frame->shadow_type,
area, widget, "frame",
x, y, width, height,
GTK_POS_TOP,
- x2, child_requisition.width - 4);
+ x2, child_requisition.width + 2 * LABEL_PAD);
}
else
gtk_paint_shadow (widget->style, widget->window,
@@ -459,7 +462,7 @@ gtk_frame_size_request (GtkWidget *widget,
{
gtk_widget_size_request (frame->label_widget, &child_requisition);
- requisition->width = child_requisition.width;
+ requisition->width = child_requisition.width + 2 * LABEL_PAD + 2 * LABEL_SIDE_PAD;
requisition->height =
MAX (0, child_requisition.height - GTK_WIDGET (widget)->style->xthickness);
}
@@ -523,8 +526,8 @@ gtk_frame_size_allocate (GtkWidget *widget,
else
xalign = 1 - frame->label_xalign;
- child_allocation.x = frame->child_allocation.x +
- (frame->child_allocation.width - child_requisition.width) * xalign;
+ child_allocation.x = frame->child_allocation.x + LABEL_SIDE_PAD +
+ (frame->child_allocation.width - child_requisition.width - 2 * LABEL_PAD - 2 * LABEL_SIDE_PAD) * xalign + LABEL_PAD;
child_allocation.width = child_requisition.width;
child_allocation.y = frame->child_allocation.y - child_requisition.height;