if (win->GTKProcessEvent(event))
return TRUE;
- GtkRange *range = win->m_scrollBar[wxWindow::ScrollDir_Vert];
+ GtkRange *range;
+ switch (gdk_event->direction)
+ {
+ case GDK_SCROLL_UP:
+ case GDK_SCROLL_DOWN:
+ range = win->m_scrollBar[wxWindow::ScrollDir_Vert];
+ break;
+
+ case GDK_SCROLL_LEFT:
+ case GDK_SCROLL_RIGHT:
+ range = win->m_scrollBar[wxWindow::ScrollDir_Horz];
+ break;
+
+ default:
+ return false;
+ }
if (range && gtk_widget_get_visible(GTK_WIDGET(range)))
{
GtkAdjustment* adj = gtk_range_get_adjustment(range);
double delta = gtk_adjustment_get_step_increment(adj) * 3;
- if (gdk_event->direction == GDK_SCROLL_UP)
+ if (gdk_event->direction == GDK_SCROLL_UP ||
+ gdk_event->direction == GDK_SCROLL_LEFT)
delta = -delta;
gtk_range_set_value(range, gtk_adjustment_get_value(adj) + delta);
GtkAllocation a;
gtk_widget_get_allocation(win->m_widget, &a);
// update position for widgets in native containers, such as wxToolBar
- // (for widgets in a wxPizza, the values should already be the same)
- win->m_x = a.x;
- win->m_y = a.y;
+ if (!WX_IS_PIZZA(gtk_widget_get_parent(win->m_widget)))
+ {
+ win->m_x = a.x;
+ win->m_y = a.y;
+ }
win->m_useCachedClientSize = true;
if (win->m_clientWidth != w || win->m_clientHeight != h)
{