X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/20c3174dd189ead1feb6c66987c001cd9f89e68a..f7a50432401c62a3300b0b9faa7e99d7ffe3d4e8:/src/gtk/slider.cpp diff --git a/src/gtk/slider.cpp b/src/gtk/slider.cpp index b09e79f032..dc964e0153 100644 --- a/src/gtk/slider.cpp +++ b/src/gtk/slider.cpp @@ -126,13 +126,14 @@ gtk_value_changed(GtkRange* range, wxSlider* win) { if (g_isIdle) wxapp_install_idle_handler(); - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - GtkAdjustment* adj = gtk_range_get_adjustment (range); const int pos = wxRound(adj->value); const double oldPos = win->m_pos; win->m_pos = adj->value; + + if (!win->m_hasVMT || g_blockEventsOnDrag) + return; + if (win->m_blockScrollEvent) { win->m_scrollEventType = GTK_SCROLL_NONE; @@ -370,7 +371,7 @@ int wxSlider::GetMax() const void wxSlider::SetPageSize( int pageSize ) { BlockScrollEvent(); - gtk_range_set_increments(GTK_RANGE (m_widget), 1, pageSize); + gtk_range_set_increments(GTK_RANGE (m_widget), GetLineSize(), pageSize); UnblockScrollEvent(); } @@ -389,19 +390,21 @@ int wxSlider::GetThumbLength() const return 0; } -void wxSlider::SetLineSize( int WXUNUSED(lineSize) ) +void wxSlider::SetLineSize( int lineSize ) { + BlockScrollEvent(); + gtk_range_set_increments(GTK_RANGE (m_widget), lineSize, GetPageSize()); + UnblockScrollEvent(); } int wxSlider::GetLineSize() const { - return 0; + return int(gtk_range_get_adjustment (GTK_RANGE (m_widget))->step_increment); } -bool wxSlider::IsOwnGtkWindow( GdkWindow *window ) +GdkWindow *wxSlider::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const { - GtkRange *range = GTK_RANGE(m_widget); - return (range->event_window == window); + return GTK_RANGE(m_widget)->event_window; } // static