summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRaymond Penners <pennersr@src.gnome.org>2004-08-23 20:53:53 +0000
committerRaymond Penners <pennersr@src.gnome.org>2004-08-23 20:53:53 +0000
commit96533d5c407d49b34566b9493b9b159f14fac0e5 (patch)
tree0e7204dc4d7f0670c80ea5449f2965fe993968b8 /modules
parent2d2d3e4b27c700668e7884e3aa6a1335cf357376 (diff)
downloadgtk+-96533d5c407d49b34566b9493b9b159f14fac0e5.tar.gz
Scrollbar patch
Diffstat (limited to 'modules')
-rwxr-xr-xmodules/engines/ms-windows/ChangeLog.old9
-rwxr-xr-xmodules/engines/ms-windows/msw_style.c17
2 files changed, 24 insertions, 2 deletions
diff --git a/modules/engines/ms-windows/ChangeLog.old b/modules/engines/ms-windows/ChangeLog.old
index 0816dc29b3..78ba0bb2f1 100755
--- a/modules/engines/ms-windows/ChangeLog.old
+++ b/modules/engines/ms-windows/ChangeLog.old
@@ -1,3 +1,12 @@
+2004-08-23 Raymond Penners <raymond@dotsphinx.com>
+
+ * === Released 0.6.2 ===
+
+ * src/msw_style.c: Applied patch from Matthew Mastracci that draws
+ scrollbars as disabled (and pretends to ignore mouse clicks by
+ forcing GTK_SHADOW_OUT) when the page length is greater than the
+ maximum range of the scrollbar.
+
2004-08-23 Dom Lachowicz <cinamod@hotmail.com>
* configure.in: Bump version number
diff --git a/modules/engines/ms-windows/msw_style.c b/modules/engines/ms-windows/msw_style.c
index 3e454f1d51..26dd6e25f6 100755
--- a/modules/engines/ms-windows/msw_style.c
+++ b/modules/engines/ms-windows/msw_style.c
@@ -1210,6 +1210,8 @@ draw_arrow (GtkStyle *style,
else if (detail && (!strcmp (detail, "vscrollbar")
|| !strcmp (detail, "hscrollbar")))
{
+ gboolean is_disabled = FALSE;
+ GtkScrollbar * scrollbar = GTK_SCROLLBAR(widget);
gint box_x = x;
gint box_y = y;
gint box_width = width;
@@ -1218,6 +1220,9 @@ draw_arrow (GtkStyle *style,
reverse_engineer_stepper_box (widget, arrow_type,
&box_x, &box_y, &box_width, &box_height);
+ if (scrollbar->range.adjustment->page_size >= (scrollbar->range.adjustment->upper-scrollbar->range.adjustment->lower))
+ is_disabled = TRUE;
+
switch (arrow_type)
{
case GTK_ARROW_UP:
@@ -1241,7 +1246,7 @@ draw_arrow (GtkStyle *style,
x += (width - 7) / 2;
y += (height - 5) / 2;
- draw_varrow (window, style->fg_gc[state], shadow, area, arrow_type,
+ draw_varrow (window, is_disabled ? style->text_aa_gc[state] : style->fg_gc[state], shadow, area, arrow_type,
x, y, 7, 5);
}
else
@@ -1249,7 +1254,7 @@ draw_arrow (GtkStyle *style,
y += (height - 7) / 2;
x += (width - 5) / 2;
- draw_harrow (window, style->fg_gc[state], shadow, area, arrow_type,
+ draw_harrow (window, is_disabled ? style->text_aa_gc[state] : style->fg_gc[state], shadow, area, arrow_type,
x, y, 5, 7);
}
}
@@ -1409,6 +1414,11 @@ draw_box (GtkStyle *style,
xp_theme_draw(window, gripper, style, x, y, width, height, state_type, area);
return;
}
+ else
+ {
+ if (scrollbar->range.adjustment->page_size >= (scrollbar->range.adjustment->upper-scrollbar->range.adjustment->lower))
+ return;
+ }
}
}
else if (detail && !strcmp (detail, "bar"))
@@ -1519,8 +1529,11 @@ draw_box (GtkStyle *style,
}
else if (detail && (strcmp (detail, "vscrollbar") == 0 || strcmp (detail, "hscrollbar") == 0))
{
+ GtkScrollbar * scrollbar = GTK_SCROLLBAR(widget);
if (shadow_type == GTK_SHADOW_IN)
shadow_type = GTK_SHADOW_ETCHED_IN;
+ if (scrollbar->range.adjustment->page_size >= (scrollbar->range.adjustment->upper-scrollbar->range.adjustment->lower))
+ shadow_type = GTK_SHADOW_OUT;
}
else
{