diff -u -r orig/dillo-0.5.1/src/browser.h dillo-0.5.1/src/browser.h
--- orig/dillo-0.5.1/src/browser.h	Fri May 18 05:35:35 2001
+++ dillo-0.5.1/src/browser.h	Sun Jul 29 14:45:27 2001
@@ -120,6 +120,9 @@
    /* The tag for the idle function that sets button sensitivity. */
    gint sens_idle_tag;
 
+   /* Scaling */
+   gint scale;
+
    /* ? */
    BrowserWindow *bw;
 };
diff -u -r orig/dillo-0.5.1/src/html.c dillo-0.5.1/src/html.c
--- orig/dillo-0.5.1/src/html.c	Mon May 21 09:58:06 2001
+++ dillo-0.5.1/src/html.c	Sun Jul 29 18:26:10 2001
@@ -2923,16 +2923,16 @@
    /* todo: whitespaces etc. */
    if (width_str) {
       if (width_str[strlen (width_str) - 1] == '%')
-         rel_width = atof (width_str) / 100;
+         rel_width = atof (width_str) / 100 * html->bw->scale / 100;
       else
-         fixed_width = atoi (width_str);
+         fixed_width = atoi (width_str) * html->bw->scale / 100;
    }
 
    if (height_str) {
       if (height_str[strlen (height_str) - 1] == '%')
-         rel_height = atof (height_str) / 100;
+         rel_height = atof (height_str) / 100 * html->bw->scale / 100;
       else
-         fixed_height = atoi (height_str);
+         fixed_height = atoi (height_str) * html->bw->scale / 100;
    }
 
    a_Dw_widget_set_usize (widget, fixed_width, fixed_height, -1);
@@ -3053,7 +3053,7 @@
    html->Start_Ofs += token_start;
 
    if ( html->bw ) {
-      sprintf(completestr,"%s%.1f Kb", PBAR_PSTR(prefs.panel_size == 1),
+      sprintf(completestr,"%s%.1f Kb", PBAR_PSTR(prefs.panel_size == 1 || prefs.panel_size == 4),
               (float)html->Start_Ofs/1024);
       a_Progressbar_update(html->bw->progress, completestr, 1);
    }
diff -u -r orig/dillo-0.5.1/src/interface.c dillo-0.5.1/src/interface.c
--- orig/dillo-0.5.1/src/interface.c	Fri May 25 23:58:08 2001
+++ dillo-0.5.1/src/interface.c	Sun Jul 29 18:31:14 2001
@@ -146,7 +146,7 @@
    a_Interface_remove_client(bw, ClientKey);
 
    /* --Progress bars stuff-- */
-   sprintf(numstr,"%s%d of %d", PBAR_ISTR(prefs.panel_size == 1),
+   sprintf(numstr,"%s%d of %d", PBAR_ISTR(prefs.panel_size == 1 || prefs.panel_size == 4),
            bw->NumImagesGot, bw->NumImages);
    a_Progressbar_update(bw->imgprogress, numstr,
                         (bw->NumImagesGot == bw->NumImages) ? 0 : 1 );
@@ -215,7 +215,7 @@
       a_Interface_set_button_sens(bw);
 
       /* --Progress bar stuff-- */
-      sprintf(numstr,"%s%d of %d", PBAR_ISTR(prefs.panel_size == 1),
+      sprintf(numstr,"%s%d of %d", PBAR_ISTR(prefs.panel_size == 1 || prefs.panel_size == 4),
               bw->NumImagesGot, bw->NumImages);
       a_Progressbar_update(bw->imgprogress, numstr, 1);
    }
@@ -468,6 +468,35 @@
 }
 
 /*
+ * Scaling
+ */
+static void Interface_spin_value_changed(GtkAdjustment *widget, gpointer *client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+   bw->scale = widget->value;
+
+   /*
+    * Reload everytime when the scale is changed.
+    * BUG: Nice, but it will crash dillo easily.
+	*
+    * a_Nav_reload(bw);       
+    */
+}
+
+GtkWidget *Interface_spin_button_new(BrowserWindow *bw)
+{
+   GtkWidget *scale_spin_button;
+   GtkAdjustment *scale_adjustment;
+
+   scale_adjustment = (GtkAdjustment *) gtk_adjustment_new(bw->scale, 5, 300, 5, 5, 5);
+   gtk_signal_connect(GTK_OBJECT(scale_adjustment), "value-changed",
+                      GTK_SIGNAL_FUNC(Interface_spin_value_changed), bw);
+   scale_spin_button = gtk_spin_button_new(scale_adjustment, 5, 0);
+   return scale_spin_button;
+}
+
+
+/*
  * Create a new browser window and return it.
  */
 BrowserWindow *a_Interface_new_browser_window(gint width, gint height)
@@ -486,6 +515,9 @@
    BrowserWindow *bw;
    char buf[256];
 
+   /* Scaling */
+   GtkWidget *spin_button;
+
    /* We use g_malloc0() to zero the memory */
    bw = g_malloc0(sizeof(BrowserWindow));
    bw->save_dialog_window = NULL;
@@ -514,6 +546,9 @@
    sprintf(buf, "Version %s", VERSION);
    a_Interface_set_Page_title(bw, buf);
 
+   /* Scaling */
+   bw->scale = 100;
+
    box1 = gtk_vbox_new(FALSE, 0);
 
    /* setup the control panel */
@@ -529,14 +564,23 @@
       /* progress bars */
       progbox = Interface_progressbox_new(bw, 0);
 
+	  /* Scaling */
+	  spin_button = Interface_spin_button_new(bw);
+
       gtk_box_pack_start(GTK_BOX(hbox), toolbar, FALSE, FALSE, 0);
       gtk_widget_show(toolbar);
       gtk_box_pack_start(GTK_BOX(hbox), menubar, FALSE, FALSE, 0);
       gtk_widget_show(menubar);
       gtk_box_pack_start(GTK_BOX(hbox), locbox, TRUE, TRUE, 0);
       gtk_widget_show(locbox);
+
       gtk_box_pack_start(GTK_BOX(hbox), progbox, FALSE, FALSE, 0);
       gtk_widget_show(progbox);
+
+	  /* Scaling */
+	  gtk_box_pack_start(GTK_BOX(hbox), spin_button, FALSE, FALSE, 0);
+	  gtk_widget_show(spin_button);
+
       gtk_container_add(GTK_CONTAINER(handlebox), hbox);
       gtk_widget_show(hbox);
       gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
@@ -565,8 +609,57 @@
       gtk_widget_show(toolbar);
       gtk_box_pack_start(GTK_BOX(hbox), progbox, FALSE, FALSE, 0);
       gtk_widget_show(progbox);
+
+	  /* Scaling */
+	  spin_button = Interface_spin_button_new(bw);
+	  gtk_box_pack_start(GTK_BOX(hbox), spin_button, FALSE, FALSE, 0);
+	  gtk_widget_show(spin_button);
+
+      gtk_container_add(GTK_CONTAINER(handlebox), hbox);
+      gtk_widget_show(hbox);
+      gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
+      gtk_widget_show(handlebox);
+
+   } else if (prefs.panel_size == 4) {
+      handlebox = gtk_handle_box_new();
+	  hbox = gtk_hbox_new(FALSE, 0);
+
+      /* Menus */
+      menubar = a_Menu_mainbar_new(bw, 1);
+      gtk_box_pack_start(GTK_BOX(hbox), menubar, FALSE, FALSE, 0);
+      gtk_widget_show(menubar);
+      
+      /* Control Buttons */
+      toolbar = Interface_toolbar_new(bw, 0);
+      gtk_box_pack_start(GTK_BOX(hbox), toolbar, FALSE, FALSE, 0);
+      gtk_widget_show(toolbar);
+      
+      gtk_container_add(GTK_CONTAINER(handlebox), hbox);
+      gtk_widget_show(hbox);
+      gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
+      gtk_widget_show(handlebox);
+      
+      /* Location entry */
+      
+      hbox = gtk_hbox_new(FALSE, 0);
+      
+      locbox = Interface_locbar_new(bw);
+      gtk_box_pack_start(GTK_BOX(hbox), locbox, FALSE, FALSE, 0);
+      gtk_widget_show(locbox);
+
+      /* Scaling */
+      spin_button = Interface_spin_button_new(bw);
+      gtk_box_pack_start(GTK_BOX(hbox), spin_button, FALSE, FALSE, 0);
+      gtk_widget_show(spin_button);
+      
+      progbox = Interface_progressbox_new(bw, 0);
+      gtk_box_pack_start(GTK_BOX(hbox), progbox, FALSE, FALSE, 0);
+      gtk_widget_show(progbox);
+      
+      handlebox = gtk_handle_box_new();
       gtk_container_add(GTK_CONTAINER(handlebox), hbox);
       gtk_widget_show(hbox);
+      
       gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
       gtk_widget_show(handlebox);
 
@@ -583,10 +676,20 @@
       hbox = gtk_hbox_new(FALSE, 0);
       toolbar = Interface_toolbar_new(bw, 1);
       progbox = Interface_progressbox_new(bw, 1);
+
+	  /* Scaling */
+	  spin_button = Interface_spin_button_new(bw);
+
       gtk_box_pack_start(GTK_BOX(hbox), toolbar, TRUE, TRUE, 0);
       gtk_widget_show(toolbar);
+
+	  /* Scaling */
+	  gtk_box_pack_start(GTK_BOX(hbox), spin_button, FALSE, FALSE, 0);
+	  gtk_widget_show(spin_button);
+
       gtk_box_pack_start(GTK_BOX(hbox), progbox, FALSE, FALSE, 0);
       gtk_widget_show(progbox);
+
       gtk_container_add(GTK_CONTAINER(handlebox), hbox);
       gtk_widget_show(hbox);
       gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
diff -u -r orig/dillo-0.5.1/src/prefs.c dillo-0.5.1/src/prefs.c
--- orig/dillo-0.5.1/src/prefs.c	Fri May 25 23:58:08 2001
+++ dillo-0.5.1/src/prefs.c	Sun Jul 29 14:45:16 2001
@@ -125,6 +125,8 @@
          prefs.panel_size = 1;
       else if (!g_strcasecmp(scanner->value.v_string, "medium"))
          prefs.panel_size = 2;
+      else if (!g_strcasecmp(scanner->value.v_string, "tinydouble"))
+         prefs.panel_size = 4;
       else /* default to "large" */
          prefs.panel_size = 3;
       break;
@@ -245,6 +247,7 @@
    prefs.panel_size = 1;
    prefs.small_icons = FALSE;
    prefs.font_factor = 1.0;
+
    Prefs_load();
 }
 
diff -u -r orig/dillo-0.5.1/src/prefs.h dillo-0.5.1/src/prefs.h
--- orig/dillo-0.5.1/src/prefs.h	Fri May 18 05:15:03 2001
+++ dillo-0.5.1/src/prefs.h	Sun Jul 29 12:27:54 2001
@@ -62,6 +62,9 @@
    gint panel_size;
    gboolean small_icons;
    gdouble font_factor;
+
+   /* Scaling */
+   gfloat scale;
 };
 
 /* Global Data */

