aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2011-06-05 21:04:51 +0200
committerJan Djärv2011-06-05 21:04:51 +0200
commita059fe247c6ba6be105986b229bf2d8374f40583 (patch)
treee91c16de86332f52bfff728140fb3c5387c4128b /src
parentac09b8a1289ec8f8a71c8dc55d4eeebaf2600707 (diff)
downloademacs-a059fe247c6ba6be105986b229bf2d8374f40583.tar.gz
emacs-a059fe247c6ba6be105986b229bf2d8374f40583.zip
Handle scroll bar width larger than 16 for GTK3.
* gtkutil.c (xg_get_default_scrollbar_width): New function. * gtkutil.h: Declare xg_get_default_scrollbar_width. * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get min width by calling x_set_scroll_bar_default_width. Fixes: debbugs:8505
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog9
-rw-r--r--src/gtkutil.c15
-rw-r--r--src/gtkutil.h1
-rw-r--r--src/xfns.c7
4 files changed, 30 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8d55e443f65..34982819c28 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
12011-06-05 Jan Djärv <jan.h.d@swipnet.se>
2
3 * gtkutil.c (xg_get_default_scrollbar_width): New function.
4
5 * gtkutil.h: Declare xg_get_default_scrollbar_width.
6
7 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
8 min width by calling x_set_scroll_bar_default_width (Bug#8505).
9
12011-06-05 Juanma Barranquero <lekktu@gmail.com> 102011-06-05 Juanma Barranquero <lekktu@gmail.com>
2 11
3 * xdisp.c (single_display_spec_intangible_p): Remove declaration. 12 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 6e54006d913..18c6c185eae 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -3326,6 +3326,21 @@ xg_get_widget_from_map (int idx)
3326 return 0; 3326 return 0;
3327} 3327}
3328 3328
3329int
3330xg_get_default_scrollbar_width (FRAME_PTR f)
3331{
3332 GtkWidget *wscroll = gtk_vscrollbar_new (gtk_adjustment_new (XG_SB_MIN,
3333 XG_SB_MIN,
3334 XG_SB_MAX,
3335 0.1, 0.1, 0.1));
3336 int w = 0, b = 0;
3337 gtk_widget_style_get (wscroll, "slider-width", &w, "trough-border", &b, NULL);
3338 gtk_widget_destroy (wscroll);
3339 w += 2*b;
3340 if (w < 16) w = 16;
3341 return w;
3342}
3343
3329/* Return the scrollbar id for X Window WID on display DPY. 3344/* Return the scrollbar id for X Window WID on display DPY.
3330 Return -1 if WID not in id_to_widget. */ 3345 Return -1 if WID not in id_to_widget. */
3331 3346
diff --git a/src/gtkutil.h b/src/gtkutil.h
index 3dc0a1dd150..cf58d03b0ce 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -135,6 +135,7 @@ extern void xg_set_toolkit_scroll_bar_thumb (struct scroll_bar *bar,
135 int position, 135 int position,
136 int whole); 136 int whole);
137extern int xg_event_is_for_scrollbar (FRAME_PTR f, XEvent *event); 137extern int xg_event_is_for_scrollbar (FRAME_PTR f, XEvent *event);
138extern int xg_get_default_scrollbar_width (FRAME_PTR f);
138 139
139extern void update_frame_tool_bar (FRAME_PTR f); 140extern void update_frame_tool_bar (FRAME_PTR f);
140extern void free_frame_tool_bar (FRAME_PTR f); 141extern void free_frame_tool_bar (FRAME_PTR f);
diff --git a/src/xfns.c b/src/xfns.c
index f3dc493ff85..2fd995df341 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1695,10 +1695,13 @@ void
1695x_set_scroll_bar_default_width (struct frame *f) 1695x_set_scroll_bar_default_width (struct frame *f)
1696{ 1696{
1697 int wid = FRAME_COLUMN_WIDTH (f); 1697 int wid = FRAME_COLUMN_WIDTH (f);
1698 1698 int minw = 16;
1699#ifdef USE_TOOLKIT_SCROLL_BARS 1699#ifdef USE_TOOLKIT_SCROLL_BARS
1700#ifdef USE_GTK
1701 minw = xg_get_default_scrollbar_width (f);
1702#endif
1700 /* A minimum width of 14 doesn't look good for toolkit scroll bars. */ 1703 /* A minimum width of 14 doesn't look good for toolkit scroll bars. */
1701 int width = 16 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM; 1704 int width = minw + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM;
1702 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (width + wid - 1) / wid; 1705 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (width + wid - 1) / wid;
1703 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = width; 1706 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = width;
1704#else 1707#else