This is an automated email from the git hooks/post-receive script. b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-weather-plugin.
commit ff0c3ec9f71ad27b635637774d0b065d6e49b8ef Author: Sean Davis <smd.seanda...@gmail.com> Date: Sun Mar 1 07:13:52 2020 -0500 Enable keyboard scrolling in Details pane (bug #15912) --- panel-plugin/weather-summary.c | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/panel-plugin/weather-summary.c b/panel-plugin/weather-summary.c index da12a5b..e66abf0 100644 --- a/panel-plugin/weather-summary.c +++ b/panel-plugin/weather-summary.c @@ -282,6 +282,56 @@ weather_summary_get_logo(plugin_data *data) } +static gboolean +text_view_key_pressed_cb (GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) +{ + GtkScrolledWindow *scrolled = GTK_SCROLLED_WINDOW (user_data); + GtkAdjustment *adjustment = gtk_scrolled_window_get_vadjustment (scrolled); + gdouble current = gtk_adjustment_get_value (adjustment); + gdouble min = gtk_adjustment_get_lower (adjustment); + gdouble max = gtk_adjustment_get_upper (adjustment); + gdouble step_size = 0; + + switch (event->keyval) { + case GDK_KEY_Up: + case GDK_KEY_uparrow: + step_size = -1 * gtk_adjustment_get_step_increment (adjustment); + break; + case GDK_KEY_Down: + case GDK_KEY_downarrow: + step_size = gtk_adjustment_get_step_increment (adjustment); + break; + case GDK_KEY_Page_Up: + step_size = -1 * gtk_adjustment_get_page_size (adjustment); + break; + case GDK_KEY_Page_Down: + case GDK_KEY_space: + step_size = gtk_adjustment_get_page_size (adjustment); + break; + case GDK_KEY_Home: + step_size = -1 * current; + break; + case GDK_KEY_End: + step_size = max; + break; + } + + if (step_size != 0) { + current = current + step_size; + if (current < min) current = min; + if (current > max) current = max; + + gtk_adjustment_set_value (adjustment, current); + + return TRUE; + } + + return FALSE; +} + + static GtkWidget * create_summary_tab(plugin_data *data) { @@ -311,9 +361,12 @@ create_summary_tab(plugin_data *data) gtk_text_view_set_top_margin (GTK_TEXT_VIEW(view), 12); gtk_text_view_set_right_margin (GTK_TEXT_VIEW(view), 12); gtk_text_view_set_bottom_margin (GTK_TEXT_VIEW(view), 12); + frame = gtk_frame_new(NULL); scrolled = gtk_scrolled_window_new(NULL, NULL); + g_signal_connect(GTK_WIDGET(view), "key-press-event", G_CALLBACK(text_view_key_pressed_cb), scrolled); + overlay = gtk_overlay_new (); gtk_container_add (GTK_CONTAINER (overlay), view); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits