]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkfilechooserbutton.c
cssimage: Return the loaded image from compute()
[~andy/gtk] / gtk / gtkfilechooserbutton.c
index 2abc11304f267ee6578acbf23528d0a1034d2448..3c9e121a416c87e211865dffd22ddb5f9d7ee9ac 100644 (file)
@@ -15,9 +15,7 @@
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
@@ -56,6 +54,7 @@
 
 #include "gtktypebuiltins.h"
 #include "gtkprivate.h"
+#include "gtksettings.h"
 
 
 /**
@@ -479,9 +478,10 @@ gtk_file_chooser_button_init (GtkFileChooserButton *button)
 
   /* Button */
   priv->button = gtk_button_new ();
-  g_signal_connect (priv->button, "clicked", G_CALLBACK (button_clicked_cb),
-                   button);
-  gtk_container_add (GTK_CONTAINER (button), priv->button);
+  g_signal_connect (priv->button, "clicked",
+                    G_CALLBACK (button_clicked_cb), button);
+  gtk_box_pack_start (GTK_BOX (button), priv->button, TRUE, TRUE, 0);
+  gtk_widget_set_halign (priv->button, GTK_ALIGN_FILL);
   gtk_widget_show (priv->button);
 
   box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
@@ -504,8 +504,7 @@ gtk_file_chooser_button_init (GtkFileChooserButton *button)
   gtk_box_pack_start (GTK_BOX (box), sep, FALSE, FALSE, 0);
   gtk_widget_show (sep);
 
-  image = gtk_image_new_from_stock (GTK_STOCK_OPEN,
-                                   GTK_ICON_SIZE_MENU);
+  image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
   gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
   gtk_widget_show (image);
 
@@ -524,7 +523,8 @@ gtk_file_chooser_button_init (GtkFileChooserButton *button)
   priv->combo_box_changed_id =
     g_signal_connect (priv->combo_box, "changed",
                      G_CALLBACK (combo_box_changed_cb), button);
-  gtk_container_add (GTK_CONTAINER (button), priv->combo_box);
+  gtk_box_pack_start (GTK_BOX (button), priv->combo_box, TRUE, TRUE, 0);
+  gtk_widget_set_halign (priv->combo_box, GTK_ALIGN_FILL);
 
   priv->icon_cell = gtk_cell_renderer_pixbuf_new ();
   gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->combo_box),
@@ -2043,7 +2043,7 @@ model_add_other (GtkFileChooserButton *button)
   gtk_list_store_insert (store, &iter, pos);
   gtk_list_store_set (store, &iter,
                      ICON_COLUMN, NULL,
-                     DISPLAY_NAME_COLUMN, _("Other..."),
+                     DISPLAY_NAME_COLUMN, _("Other"),
                      TYPE_COLUMN, ROW_TYPE_OTHER,
                      DATA_COLUMN, NULL,
                      IS_FOLDER_COLUMN, FALSE,
@@ -2683,8 +2683,11 @@ dialog_response_cb (GtkDialog *dialog,
   if (response == GTK_RESPONSE_ACCEPT ||
       response == GTK_RESPONSE_OK)
     {
-      g_signal_emit_by_name (user_data, "current-folder-changed");
-      g_signal_emit_by_name (user_data, "selection-changed");
+      g_signal_emit_by_name (button, "current-folder-changed");
+      g_signal_emit_by_name (button, "selection-changed");
+
+      update_label_and_image (button);
+      update_combo_box (button);
     }
   else if (priv->old_file)
     {
@@ -2712,9 +2715,6 @@ dialog_response_cb (GtkDialog *dialog,
       priv->old_file = NULL;
     }
 
-  update_label_and_image (user_data);
-  update_combo_box (user_data);
-  
   if (priv->active)
     {
       g_signal_handler_unblock (priv->dialog,
@@ -2731,7 +2731,7 @@ dialog_response_cb (GtkDialog *dialog,
 
   if (response == GTK_RESPONSE_ACCEPT ||
       response == GTK_RESPONSE_OK)
-    g_signal_emit (user_data, file_chooser_button_signals[FILE_SET], 0);
+    g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0);
 }