Index: transmission-1.34-2maemo4/gtk/msgwin.c
===================================================================
--- transmission-1.34-2maemo4.orig/gtk/msgwin.c	2008-11-28 14:05:00.000000000 +0000
+++ transmission-1.34-2maemo4/gtk/msgwin.c	2009-01-31 10:14:20.000000000 +0000
@@ -16,6 +16,9 @@
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
+#include <hildon/hildon-program.h>
+#include <hildon/hildon.h>
+#include <hildon/hildon-file-chooser-dialog.h>
 
 #include <libtransmission/transmission.h>
 
@@ -49,6 +52,7 @@
 
 static struct tr_msg_list * myTail = NULL;
 static struct tr_msg_list * myHead = NULL;
+gboolean window_in_fullscreen = FALSE;
 
 /***
 ****
@@ -117,7 +121,7 @@
 static void
 onSaveDialogResponse( GtkWidget * d, int response, gpointer data )
 {
-  if( response == GTK_RESPONSE_ACCEPT )
+  if( response == GTK_RESPONSE_OK )
   {
       char * filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( d ) );
       doSave( GTK_WINDOW( d ), data, filename );
@@ -131,15 +135,7 @@
 onSaveRequest( GtkWidget * w, gpointer data )
 {
   GtkWindow * window = GTK_WINDOW( gtk_widget_get_toplevel( w ) );
-  GtkWidget * d = gtk_file_chooser_dialog_new( _("Save Log"), window,
-                                               GTK_FILE_CHOOSER_ACTION_SAVE,
-                                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                               GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
-                                               NULL );
-  gtk_dialog_set_alternative_button_order( GTK_DIALOG( d ),
-                                           GTK_RESPONSE_ACCEPT,
-                                           GTK_RESPONSE_CANCEL,
-                                           -1 );
+  GtkWidget * d = hildon_file_chooser_dialog_new( GTK_WINDOW( window ), GTK_FILE_CHOOSER_ACTION_SAVE );
   g_signal_connect( d, "response",
                     G_CALLBACK( onSaveDialogResponse ), data );
   gtk_widget_show( d );
@@ -372,6 +368,33 @@
     return levels;
 }
 
+static gboolean
+window_state_event (GtkWidget *widget, GdkEventWindowState *event,
+		    gpointer unused)
+{
+  if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) {
+    window_in_fullscreen = TRUE;
+  } else {
+    window_in_fullscreen = FALSE;  
+  }
+  return FALSE;
+}
+
+static gint 
+on_key_press_event (GtkWidget * widget, GdkEventKey * keyevent, gpointer data)
+{
+  switch (keyevent->keyval)
+    {
+	case HILDON_HARDKEY_FULLSCREEN:
+		if (window_in_fullscreen) {
+                	gtk_window_unfullscreen(GTK_WINDOW(widget));
+                } else {
+                	gtk_window_fullscreen(GTK_WINDOW(widget));
+                }
+		break;
+	}
+  return FALSE;
+}
 
 /**
 ***  Public Functions
@@ -391,7 +414,7 @@
     data = g_new0( struct MsgData, 1 );
     data->core = core;
 
-    win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
+    win = hildon_window_new();
     gtk_window_set_title( GTK_WINDOW( win ), _( "Message Log" ) );
     gtk_window_set_default_size( GTK_WINDOW( win ), 560, 350 );
     gtk_window_set_role( GTK_WINDOW( win ), "message-log" );
@@ -438,7 +461,12 @@
       gtk_container_add( GTK_CONTAINER( item ), w );
       gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
 
-    gtk_box_pack_start( GTK_BOX( vbox ), toolbar, FALSE, FALSE, 0 );
+    hildon_window_add_toolbar (HILDON_WINDOW (win), GTK_TOOLBAR (toolbar));
+
+  gtk_signal_connect (GTK_OBJECT (win), "key_press_event",
+		      G_CALLBACK (on_key_press_event), NULL);
+  gtk_signal_connect (GTK_OBJECT (win), "window_state_event",
+		      G_CALLBACK (window_state_event), NULL);
 
     /**
     ***  messages
