changed wheel scrolling to be HIG-compliant (control zooms). Also handle

2005-11-18  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpgradienteditor.c (view_events):
	* app/widgets/gimpnavigationview.c (gimp_navigation_view_scroll):
	changed wheel scrolling to be HIG-compliant (control zooms). Also
	handle GDK_SCROLL_LEFT/RIGHT correctly and made shift switch the
	scroll axis. The widgets behave as the image window now.
This commit is contained in:
Michael Natterer 2005-11-18 20:00:02 +00:00 committed by Michael Natterer
parent be495d1aaa
commit 0ec0514ba2
3 changed files with 58 additions and 28 deletions

View File

@ -1,3 +1,11 @@
2005-11-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.c (view_events):
* app/widgets/gimpnavigationview.c (gimp_navigation_view_scroll):
changed wheel scrolling to be HIG-compliant (control zooms). Also
handle GDK_SCROLL_LEFT/RIGHT correctly and made shift switch the
scroll axis. The widgets behave as the image window now.
2005-11-18 Jakub Steiner <jimmac@ximian.com>
* data/palettes/Tango.gpl: Made the greens more vibrant.

View File

@ -889,24 +889,44 @@ view_events (GtkWidget *widget,
{
GdkEventScroll *sevent = (GdkEventScroll *) event;
if (sevent->state & GDK_SHIFT_MASK)
if (sevent->state & GDK_CONTROL_MASK)
{
if (sevent->direction == GDK_SCROLL_UP)
gimp_gradient_editor_zoom (editor, GIMP_ZOOM_IN);
else
gimp_gradient_editor_zoom (editor, GIMP_ZOOM_OUT);
switch (sevent->direction)
{
case GDK_SCROLL_UP:
gimp_gradient_editor_zoom (editor, GIMP_ZOOM_IN);
break;
case GDK_SCROLL_DOWN:
gimp_gradient_editor_zoom (editor, GIMP_ZOOM_OUT);
break;
default:
break;
}
}
else
{
GtkAdjustment *adj = GTK_ADJUSTMENT (editor->scroll_data);
GtkAdjustment *adj = GTK_ADJUSTMENT (editor->scroll_data);
gfloat value = adj->value;
gfloat new_value = adj->value + ((sevent->direction == GDK_SCROLL_UP) ?
-adj->page_increment / 2 :
adj->page_increment / 2);
switch (sevent->direction)
{
case GDK_SCROLL_UP:
value -= adj->page_increment / 2;
break;
new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
case GDK_SCROLL_DOWN:
value += adj->page_increment / 2;
break;
gtk_adjustment_set_value (adj, new_value);
deafult:
break;
}
value = CLAMP (value, adj->lower, adj->upper - adj->page_size);
gtk_adjustment_set_value (adj, value);
}
}
break;

View File

@ -377,32 +377,34 @@ static gboolean
gimp_navigation_view_scroll (GtkWidget *widget,
GdkEventScroll *sevent)
{
if (sevent->state & GDK_SHIFT_MASK)
if (sevent->state & GDK_CONTROL_MASK)
{
if (sevent->direction == GDK_SCROLL_UP)
switch (sevent->direction)
{
case GDK_SCROLL_UP:
g_signal_emit (widget, view_signals[ZOOM], 0, GIMP_ZOOM_IN);
}
else
{
break;
case GDK_SCROLL_DOWN:
g_signal_emit (widget, view_signals[ZOOM], 0, GIMP_ZOOM_OUT);
break;
default:
break;
}
}
else
{
GdkScrollDirection direction;
GdkScrollDirection direction = sevent->direction;
if (sevent->state & GDK_CONTROL_MASK)
{
if (sevent->direction == GDK_SCROLL_UP)
direction = GDK_SCROLL_LEFT;
else
direction = GDK_SCROLL_RIGHT;
}
else
{
direction = sevent->direction;
}
if (sevent->state & GDK_SHIFT_MASK)
switch (direction)
{
case GDK_SCROLL_UP: direction = GDK_SCROLL_LEFT; break;
case GDK_SCROLL_DOWN: direction = GDK_SCROLL_RIGHT; break;
case GDK_SCROLL_LEFT: direction = GDK_SCROLL_UP; break;
case GDK_SCROLL_RIGHT: direction = GDK_SCROLL_DOWN; break;
}
g_signal_emit (widget, view_signals[SCROLL], 0, direction);
}