[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