[Xfce4-commits] <parole:0.2.2> Correctly handle window minimize

Ali Abdallah noreply at xfce.org
Wed Dec 15 18:32:02 CET 2010


Updating branch refs/heads/0.2.2
         to e7327883568b1f013f320435a7b87e3d39fb054b (commit)
       from cd7fd90fdc0e7415f5c35c57627d262b78820360 (commit)

commit e7327883568b1f013f320435a7b87e3d39fb054b
Author: Ali Abdallah <aliov at xfce.org>
Date:   Wed Dec 15 17:56:58 2010 +0100

    Correctly handle window minimize

 data/interfaces/parole.ui |    5 ++++-
 src/parole-conf.c         |   12 ++++++++++--
 src/parole-player.c       |   27 ++++++++++++++++++++-------
 3 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/data/interfaces/parole.ui b/data/interfaces/parole.ui
index 0eaf552..dce5250 100644
--- a/data/interfaces/parole.ui
+++ b/data/interfaces/parole.ui
@@ -687,7 +687,7 @@
                                         </child>
                                         <child>
                                           <object class="GtkHScale" id="volume">
-                                            <property name="width_request">100</property>
+                                            <property name="width_request">80</property>
                                             <property name="height_request">2</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
@@ -697,6 +697,9 @@
                                             <signal name="scroll_event" handler="parole_player_volume_scroll_event_cb"/>
                                           </object>
                                           <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="pack_type">end</property>
                                             <property name="position">5</property>
                                           </packing>
                                         </child>
diff --git a/src/parole-conf.c b/src/parole-conf.c
index d45a64f..f5f1bbc 100644
--- a/src/parole-conf.c
+++ b/src/parole-conf.c
@@ -65,6 +65,7 @@ enum
     PROP_ASPECT_RATIO,
     PROP_WINDOW_WIDTH,
     PROP_WINDOW_HEIGHT,
+    PROP_MINIMIZED,
     PROP_MULTIMEDIA_KEYS,
     /*Playlist*/
     PROP_REPLACE_PLAYLIST,
@@ -248,6 +249,13 @@ parole_conf_class_init (ParoleConfClass *klass)
                                                            G_PARAM_READWRITE));
 							   
     g_object_class_install_property (object_class,
+                                     PROP_MINIMIZED,
+                                     g_param_spec_boolean ("minimized",
+                                                           NULL, NULL,
+                                                           FALSE,
+                                                           G_PARAM_READWRITE));
+							   
+    g_object_class_install_property (object_class,
                                      PROP_SUBTITLE_FONT,
                                      g_param_spec_string  ("subtitle-font",
                                                            NULL, NULL,
@@ -315,7 +323,7 @@ parole_conf_class_init (ParoleConfClass *klass)
                                      PROP_WINDOW_WIDTH,
                                      g_param_spec_int ("window-width",
                                                        NULL, NULL,
-                                                       320,
+                                                       100,
 						       G_MAXINT16,
 						       760,
                                                        G_PARAM_READWRITE));
@@ -324,7 +332,7 @@ parole_conf_class_init (ParoleConfClass *klass)
                                      PROP_WINDOW_HEIGHT,
                                      g_param_spec_int ("window-height",
                                                        NULL, NULL,
-                                                       220,
+                                                       100,
 						       G_MAXINT16,
 						       420,
                                                        G_PARAM_READWRITE));
diff --git a/src/parole-player.c b/src/parole-player.c
index 599bdd0..47f495f 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -949,19 +949,29 @@ parole_player_range_value_changed (GtkRange *range, ParolePlayer *player)
 
 void parole_player_minimize_clicked_cb (GtkWidget *widget, ParolePlayer *player)
 {
-    
     if ( player->minimized )
     {
+	gint w, h;
+	
+	g_object_get (G_OBJECT (player->conf),
+                  "window-width", &w,
+                  "window-height", &h,
+                  NULL);
+		  
+	gtk_window_resize (GTK_WINDOW(player->window), w, h);
+	
 	gtk_widget_show (GTK_WIDGET (player->gst));
 	gtk_widget_show (GTK_WIDGET (player->video_view));
 	gtk_widget_show (GTK_WIDGET (player->sidebar));
 	gtk_widget_show (player->show_hide_playlist);
 	parole_set_widget_image_from_stock (player->min_view, GTK_STOCK_REMOVE);
-	player->minimized = FALSE;
 	
+	
+	player->minimized = FALSE;
     }
     else
     {
+	player->minimized = TRUE;
 	gtk_widget_hide (GTK_WIDGET (player->gst));
 	gtk_widget_hide (GTK_WIDGET (player->video_view));
 	gtk_widget_hide (GTK_WIDGET (player->sidebar));
@@ -970,9 +980,9 @@ void parole_player_minimize_clicked_cb (GtkWidget *widget, ParolePlayer *player)
 	parole_set_widget_image_from_stock (player->min_view, GTK_STOCK_ADD);
 	
 	gtk_window_resize (GTK_WINDOW(player->window), 1, 1);
-	
-	player->minimized = TRUE;
     }
+    
+    xfce_gtk_window_center_on_active_screen (GTK_WINDOW (player->window));
 }
 
 static void
@@ -1123,13 +1133,16 @@ parole_player_full_screen (ParolePlayer *player, gboolean fullscreen)
 	
 	gtk_window_unfullscreen (GTK_WINDOW (player->window));
 	//gtk_notebook_set_current_page (GTK_NOTEBOOK (player->playlist_nt), current_page);
-	player->full_screen = FALSE;
+	
 
 	gtk_widget_destroy (player->fs_window);
 	player->fs_window = NULL;
+	player->full_screen = FALSE;
     }
     else
     {
+	player->full_screen = TRUE;
+	
         if (!player->fs_window)
 	{
 	    parole_player_create_fullscreen_window (player);
@@ -1149,7 +1162,6 @@ parole_player_full_screen (ParolePlayer *player, gboolean fullscreen)
 	//gtk_notebook_set_show_tabs (GTK_NOTEBOOK (player->main_nt), FALSE);
 	
 	gtk_window_fullscreen (GTK_WINDOW (player->window));
-	player->full_screen = TRUE;
     }
 }
 
@@ -1908,9 +1920,10 @@ parole_player_configure_event_cb (GtkWidget *widget, GdkEventConfigure *ev, Paro
 {
     gint w,h;
     
-    if ( !player->full_screen )
+    if ( !player->full_screen && !player->minimized)
     {
 	gtk_window_get_size (GTK_WINDOW (widget), &w, &h);
+	
 	g_object_set (G_OBJECT (player->conf),
 		      "window-width", w,
 		      "window-height", h,



More information about the Xfce4-commits mailing list