Skip to content
Snippets Groups Projects
Commit 53c6780f authored by Eric Koegel's avatar Eric Koegel
Browse files

Plugin: Fix crash with slider on 32bit systems (Bug 11076)

Patch provided by Simon P.

Clicking on, or dragging, the slider of the display brightness
slider of the plugin menu causes the plugin to crash. This
behaviour has been present since this feature was introduced.

I've tracked down the cause to the way the "value-changed"
signal on the scale_menu_item object is handled. The signal
is defined with a gdouble data item for the range value (but
isn't used anywhere?) while the callback function
range_value_changed_cb isn't expecting this data.

By changing to g_signal_connect_swapped for this signal in
function battery_button_show_menu & swapping the parameters
in the callback function, the range slider is now working for
me.
parent c7a19b6e
No related branches found
No related tags found
No related merge requests found
...@@ -833,7 +833,7 @@ brightness_set_level_with_timeout (BatteryButton *button) ...@@ -833,7 +833,7 @@ brightness_set_level_with_timeout (BatteryButton *button)
} }
static void static void
range_value_changed_cb (GtkWidget *widget, BatteryButton *button) range_value_changed_cb (BatteryButton *button, GtkWidget *widget)
{ {
TRACE("entering"); TRACE("entering");
...@@ -957,7 +957,7 @@ battery_button_show_menu (BatteryButton *button) ...@@ -957,7 +957,7 @@ battery_button_show_menu (BatteryButton *button)
xfpm_brightness_get_level (button->priv->brightness, &current_level); xfpm_brightness_get_level (button->priv->brightness, &current_level);
gtk_range_set_value (GTK_RANGE(button->priv->range), current_level); gtk_range_set_value (GTK_RANGE(button->priv->range), current_level);
g_signal_connect (mi, "value-changed", G_CALLBACK (range_value_changed_cb), button); g_signal_connect_swapped (mi, "value-changed", G_CALLBACK (range_value_changed_cb), button);
g_signal_connect (mi, "scroll-event", G_CALLBACK (range_scroll_cb), button); g_signal_connect (mi, "scroll-event", G_CALLBACK (range_scroll_cb), button);
g_signal_connect (menu, "show", G_CALLBACK (range_show_cb), button); g_signal_connect (menu, "show", G_CALLBACK (range_show_cb), button);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment