[Xfce4-commits] <parole:master> Make sure wish widget is focused before processing key_press
Ali Abdallah
aliov at xfce.org
Sat Aug 15 09:28:01 CEST 2009
Updating branch refs/heads/master
to 259ac8eabb874c54555c28cf2a90c68e8655797a (commit)
from 37a2ffac8894e7857b5221d4fef2e6b6065aa82b (commit)
commit 259ac8eabb874c54555c28cf2a90c68e8655797a
Author: Ali Abdallah <aliov at xfce.org>
Date: Sat Aug 15 09:20:58 2009 +0200
Make sure wish widget is focused before processing key_press
data/interfaces/parole.ui | 4 ++--
parole/parole-player.c | 17 ++++++++++++++++-
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/data/interfaces/parole.ui b/data/interfaces/parole.ui
index b9b9fe9..9ba385d 100644
--- a/data/interfaces/parole.ui
+++ b/data/interfaces/parole.ui
@@ -291,7 +291,7 @@
<property name="scrollable">True</property>
<property name="group_id">0</property>
<child>
- <object class="GtkVBox" id="vbox3">
+ <object class="GtkVBox" id="main-box">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
@@ -495,7 +495,6 @@
<property name="image">image8</property>
<property name="relief">none</property>
<property name="focus_on_click">False</property>
- <accelerator key="space" signal="activate"/>
<signal name="clicked" handler="parole_player_play_pause_clicked"/>
</object>
<packing>
@@ -627,6 +626,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="scrollable">True</property>
+ <property name="enable_popup">True</property>
</object>
<packing>
<property name="resize">False</property>
diff --git a/parole/parole-player.c b/parole/parole-player.c
index 1d5f8ed..c2d816d 100644
--- a/parole/parole-player.c
+++ b/parole/parole-player.c
@@ -194,6 +194,7 @@ struct ParolePlayerPrivate
GtkWidget *control; /* contains all play button*/
GtkWidget *leave_fs;
+ GtkWidget *main_box;
GtkWidget *volume;
GtkWidget *volume_image;
@@ -1247,13 +1248,26 @@ parole_player_class_init (ParolePlayerClass *klass)
gboolean
parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *player)
{
+ GtkWidget *focused;
+
gboolean ret_val = FALSE;
/*
gchar *key;
key = gdk_keyval_name (ev->keyval);
g_print ("Key Press 0x%X:%s on widget=%s\n", ev->keyval, key, gtk_widget_get_name (widget));
*/
-
+ focused = gtk_window_get_focus (GTK_WINDOW (player->priv->window));
+
+ if ( focused )
+ {
+ if ( ( gtk_widget_is_ancestor (focused, player->priv->playlist_nt) ) ||
+ ( gtk_widget_is_ancestor (focused, player->priv->main_nt) &&
+ !gtk_widget_is_ancestor (focused, player->priv->main_box) ))
+ {
+ return FALSE;
+ }
+ }
+
switch (ev->keyval)
{
case GDK_F11:
@@ -1458,6 +1472,7 @@ parole_player_init (ParolePlayer *player)
player->priv->show_hide_playlist = GTK_WIDGET (gtk_builder_get_object (builder, "show-hide-list"));
player->priv->control = GTK_WIDGET (gtk_builder_get_object (builder, "control"));
player->priv->leave_fs = GTK_WIDGET (gtk_builder_get_object (builder, "leave_fs"));
+ player->priv->main_box = GTK_WIDGET (gtk_builder_get_object (builder, "main-box"));
gtk_range_set_range (GTK_RANGE (player->priv->volume), 0, 1.0);
More information about the Xfce4-commits
mailing list