gui/audio: Block accelerators when a gtk entry is focused

Otherwise pressing the spacebar while searching could toggle the play /
pause status.

Fixes #36: Button accelerators always triggered
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2016-04-12 11:25:29 -04:00
parent 19afc4aeef
commit 6aa64f0bc1
2 changed files with 22 additions and 8 deletions

View File

@ -87,6 +87,15 @@ static int __audio_timeout(gpointer data)
return G_SOURCE_CONTINUE;
}
gboolean __audio_can_accel(GtkWidget *widget, guint signal_id)
{
GtkWindow *window = GTK_WINDOW(gui_builder_widget("o_window"));
g_signal_stop_emission_by_name(widget, "can-activate-accel");
return !GTK_IS_ENTRY(gtk_window_get_focus(window)) &&
gtk_widget_is_visible(widget) &&
gtk_widget_is_sensitive(widget);
}
struct audio_ops audio_ops = {

View File

@ -241,10 +241,11 @@
<object class="GtkButton" id="o_prev">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="focus_on_click">False</property>
<signal name="can-activate-accel" handler="__audio_can_accel" swapped="no"/>
<signal name="clicked" handler="audio_prev" swapped="no"/>
<child>
<object class="GtkImage" id="image4">
@ -272,10 +273,11 @@
<object class="GtkButton" id="o_play">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="focus_on_click">False</property>
<signal name="can-activate-accel" handler="__audio_can_accel" swapped="no"/>
<signal name="clicked" handler="audio_play" swapped="no"/>
<child>
<object class="GtkImage" id="image1">
@ -303,10 +305,11 @@
<child>
<object class="GtkButton" id="o_pause">
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="focus_on_click">False</property>
<signal name="can-activate-accel" handler="__audio_can_accel" swapped="no"/>
<signal name="clicked" handler="audio_pause" swapped="no"/>
<child>
<object class="GtkImage" id="image2">
@ -335,10 +338,11 @@
<object class="GtkButton" id="o_stop">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="focus_on_click">False</property>
<signal name="can-activate-accel" handler="__audio_can_accel" swapped="no"/>
<signal name="clicked" handler="audio_stop" swapped="no"/>
<child>
<object class="GtkImage" id="image3">
@ -366,10 +370,11 @@
<object class="GtkButton" id="o_next">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="focus_on_click">False</property>
<signal name="can-activate-accel" handler="__audio_can_accel" swapped="no"/>
<signal name="clicked" handler="audio_next" swapped="no"/>
<child>
<object class="GtkImage" id="image5">
@ -483,10 +488,10 @@
<property name="label" translatable="yes">Favorite</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Add track to Favorites playlist</property>
<property name="image">image6</property>
<property name="focus_on_click">False</property>
<property name="inconsistent">True</property>
</object>
<packing>
@ -500,10 +505,10 @@
<property name="label" translatable="yes">Hide</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Hide track from Collection</property>
<property name="image">image7</property>
<property name="focus_on_click">False</property>
</object>
<packing>
<property name="expand">False</property>
@ -841,8 +846,8 @@ Manager</property>
<property name="label" translatable="yes">Pause after </property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="__audio_pause_enabled" object="o_pause_count" swapped="no"/>