diff -urN gkII-0.4.2/BUGS gkII-0.4.3/BUGS
--- gkII-0.4.2/BUGS	2006-05-01 23:31:28.000000000 +0100
+++ gkII-0.4.3/BUGS	2006-08-19 22:07:17.000000000 +0100
@@ -6,7 +6,8 @@
     if you change desktops or something. These are all just visual
     bugs, which don't affect anything, and you can cure them by
     switching off the zoom mode and changing desktops, therefore
-    forcing a complete redraw.
+    forcing a complete redraw. (note: recently added repositioning
+    code - which draws centerlines - exhibits the same problems).
 
 - Other annoyances
 
diff -urN gkII-0.4.2/CHANGES gkII-0.4.3/CHANGES
--- gkII-0.4.2/CHANGES	2006-05-02 00:50:44.000000000 +0100
+++ gkII-0.4.3/CHANGES	2006-08-19 21:53:36.000000000 +0100
@@ -1,3 +1,13 @@
+gkII-0.4.3
+	When duplicating image, or, generating a zoomed-in image in a new
+        window, the palette randomization settings are now carried across
+        to the new window.
+
+        *** Updated version.h file ***
+
+	Added re-position button to the toolbar for repositioning the image.
+	(The image is *completely* redrawn, see TODO file).
+        
 gkII-0.4.2
 	Added colour palette randomization. Added ability to zoom-in to
         a new window. NOTE: old .gk2 files are mostly incompatible with
diff -urN gkII-0.4.2/fractal_settings.c gkII-0.4.3/fractal_settings.c
--- gkII-0.4.2/fractal_settings.c	2006-05-01 23:31:28.000000000 +0100
+++ gkII-0.4.3/fractal_settings.c	2006-08-19 13:07:39.000000000 +0100
@@ -7,10 +7,15 @@
         return;
     fs->in_par = PAR_OFF;
     fs->out_par = PAR_Z;
+/*    fs->out_par = PAR_KZ;*/
     fs->in_scale = 1.0;
     fs->out_scale = 1.0;
     fs->kunge = KT_OFF;
     fs->bail = BT_MAND;
+
+/*    fs->kunge = KT_XR2;  */
+/*    fs->bail = BT_KUNGE; */
+
     fs->bail_value = 4.0;
     fs->re_pert = 0.0;
     fs->im_pert = 0.0;
diff -urN gkII-0.4.2/main.c gkII-0.4.3/main.c
--- gkII-0.4.2/main.c	2006-05-01 23:31:29.000000000 +0100
+++ gkII-0.4.3/main.c	2006-08-19 22:02:37.000000000 +0100
@@ -24,6 +24,7 @@
 #include "version.h"
 #include "zoom_in.xpm"
 #include "zoom_out.xpm"
+#include "reposition.xpm"
 
 #define ZOOM_INTERVAL 25
 
@@ -51,12 +52,20 @@
 typedef struct {
     int zooming;
     int julia_browsing;
+    int repositioning;
+    int second_point;
 
     /* zoom box info */
     int z_x;
     int z_y;
     int z_width;
     int z_height;
+
+    /* repositioning info */
+    int cl_x;  /* center lines */
+    int cl_y;
+    int fp_x; /* first point */
+    int fp_y;
 } status_info;
 
 /* options */
@@ -70,6 +79,8 @@
 static void stop_rendering(image_info* img);
 static void start_julia_browsing(void);
 static void stop_julia_browsing(void);
+static void start_reposition(void);
+static void stop_reposition(void);
 static void process_args(int argc, char** argv);
 static void kill_zoom_timers(void);
 static void zoom_resize(int arg);
@@ -145,7 +156,7 @@
 static void save_cmd(void);
 
 /* general stuff we need to have */
-static status_info st;
+static status_info stat;
 static image_info img;
 static image_info j_pre;
 static random_palette rand_palette;
@@ -156,6 +167,7 @@
 static GtkWidget* drawing_area = NULL;
 static GtkWidget* zoom_in_button = NULL;
 static GtkWidget* zoom_out_button = NULL;
+static GtkWidget* reposition_button = NULL;
 static GtkWidget* recalc_button_label = NULL;
 static GtkWidget* depth_spin = NULL;
 static GtkWidget* pbar = NULL;
@@ -194,7 +206,7 @@
 
 void print_version(void)
 {
-    printf("gfract %s\n", VERSION);
+    printf("%s %s\n", program_name, VERSION);
 }
 
 void print_help(void)
@@ -209,7 +221,6 @@
 void process_args(int argc, char** argv)
 {
     int i;
-
     for (i=1; i < argc; i++) {
         if ((strcmp("-h", argv[i]) == 0) ||
             (strcmp("--help", argv[i]) == 0)) {
@@ -232,6 +243,7 @@
                 }
                 my_fread(&img, sizeof(image_info), fp);
                 my_fread(palette, 256*4, fp);
+                my_fread(&rand_palette, sizeof(random_palette), fp);
                 fclose(fp);
                 
                 if (remove(argv[i+1]) == -1) {
@@ -270,7 +282,7 @@
 void switch_fractal_type(void)
 {
     if (img.fr_type == MANDELBROT) {
-        if (!st.julia_browsing)
+        if (!stat.julia_browsing)
             start_julia_browsing();
     } else if (img.fr_type == JULIA) {
         img.xmin = img.old_xmin;
@@ -450,12 +462,24 @@
     init_user_params(&j_pre.user_settings);
 
     /* misc init */
-    st.zooming = FALSE;
-    st.julia_browsing = FALSE;
+    stat.zooming = FALSE;
+    stat.julia_browsing = FALSE;
+    stat.repositioning = FALSE;
+    stat.second_point = FALSE;
     zoom_timer = -1;
 
     /* default values for options */
     opts.timing = 0;
+
+    rand_palette.r_strength = 0.85;
+    rand_palette.r_bands = 0.05;
+    rand_palette.g_strength = 0.79;
+    rand_palette.g_bands = 0.08;
+    rand_palette.b_strength = 0.83;
+    rand_palette.b_bands = 0.2;
+
+    img.rnd_pal = &rand_palette;
+
 }
 
 /* returns the horizontal intersection part of a1 and a2. if the
@@ -548,7 +572,7 @@
     start_rendering(&img);
 
     resize_preview();
-    if (st.julia_browsing) {
+    if (stat.julia_browsing) {
         gtk_widget_hide(j_pre_window);
         gtk_widget_show(j_pre_window);
         start_rendering(&j_pre);
@@ -568,7 +592,7 @@
     set_autolay_info(&img, &als);
     set_autolay_info(&j_pre, &als);
     start_rendering(&img);
-    if (st.julia_browsing) {
+    if (stat.julia_browsing) {
         gtk_widget_hide(j_pre_window);
         gtk_widget_show(j_pre_window);
         start_rendering(&j_pre);
@@ -588,7 +612,7 @@
     set_fracset_info(&img, &frs);
     set_fracset_info(&j_pre, &frs);
     start_rendering(&img);
-    if (st.julia_browsing) {
+    if (stat.julia_browsing) {
         gtk_widget_hide(j_pre_window);
         gtk_widget_show(j_pre_window);
         start_rendering(&j_pre);
@@ -608,7 +632,7 @@
     set_userpar_info(&img, &ups);
     set_userpar_info(&j_pre, &ups);
     start_rendering(&img);
-    if (st.julia_browsing) {
+    if (stat.julia_browsing) {
         gtk_widget_hide(j_pre_window);
         gtk_widget_show(j_pre_window);
         start_rendering(&j_pre);
@@ -664,7 +688,7 @@
     j_pre.xmax = 1.5;
     j_pre.ymax = 1.25;
     start_rendering(&img);
-    if (st.julia_browsing) {
+    if (stat.julia_browsing) {
         gtk_widget_hide(j_pre_window);
         gtk_widget_show(j_pre_window);
         start_rendering(&j_pre);
@@ -732,7 +756,7 @@
 
 void duplicate(void)
 {
-    char fname[] = "/tmp/gfractXXXXXX";
+    char fname[] = "/tmp/gkIIXXXXXX";
     int fd;
     FILE* fp;
     pid_t result;
@@ -751,7 +775,8 @@
 
     my_fwrite(&img, sizeof(image_info), fp);
     my_fwrite(palette, 256*4, fp);
-    
+    my_fwrite(&rand_palette, sizeof(random_palette), fp);
+
     if (fclose(fp) != 0) {
         perror("Error writing temp file");
         exit(1);
@@ -917,7 +942,6 @@
         if (opts.timing && (img->lines_done == img->real_height))
             printf("Image rendering took %.3f seconds.\n",
                    timer_get_elapsed(&timing_info) / (double)1e6);
-/*        gtk_idle_remove(img->idle_id);*/
         g_source_remove(img->idle_id);
         img->idle_id = -1;
         if (!img->j_pre) {
@@ -930,66 +954,112 @@
 
 void start_julia_browsing(void)
 {
-    st.julia_browsing = TRUE;
+    stat.julia_browsing = TRUE;
     gtk_widget_show(j_pre_window);
     gtk_widget_set_sensitive(switch_menu_cmd, FALSE);
+    gtk_widget_set_sensitive(zoom_in_button, FALSE);
+    gtk_widget_set_sensitive(zoom_out_button, FALSE);
+    gtk_widget_set_sensitive(reposition_button, FALSE);
 }
 
 void stop_julia_browsing(void)
 {
     stop_rendering(&j_pre);
-    st.julia_browsing = FALSE;
+    stat.julia_browsing = FALSE;
     gtk_widget_hide(j_pre_window);
     gtk_widget_set_sensitive(switch_menu_cmd, TRUE);
+    gtk_widget_set_sensitive(zoom_in_button, TRUE);
+    gtk_widget_set_sensitive(zoom_out_button, TRUE);
+    gtk_widget_set_sensitive(reposition_button, TRUE);
 }
 
 gint j_pre_delete(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
     stop_julia_browsing();
-    
     return TRUE;
 }
 
+void draw_center_lines(void)
+{
+    GdkLineStyle linestyle = GDK_LINE_ON_OFF_DASH;
+    gdk_gc_set_function(drawing_area->style->white_gc, GDK_XOR);
+    if (stat.second_point) linestyle = GDK_LINE_SOLID;
+    gdk_gc_set_line_attributes(drawing_area->style->white_gc,
+            1, linestyle, GDK_CAP_BUTT, GDK_JOIN_MITER);
+    gdk_draw_line(drawing_area->window, drawing_area->style->white_gc,
+        0, stat.cl_y, img.user_width, stat.cl_y);
+    gdk_draw_line(drawing_area->window, drawing_area->style->white_gc,
+        stat.cl_x, 0, stat.cl_x, img.user_height);
+    gdk_gc_set_function(drawing_area->style->white_gc, GDK_COPY);
+}
+
+void start_reposition(void)
+{
+    stat.repositioning = TRUE;
+    stat.second_point = FALSE;
+    gtk_widget_set_sensitive(switch_menu_cmd, FALSE);
+    gtk_widget_set_sensitive(zoom_in_button, FALSE);
+    gtk_widget_set_sensitive(zoom_out_button, FALSE);
+    draw_center_lines();
+}
+
+void stop_reposition(void)
+{
+    stat.repositioning = FALSE;
+    stat.second_point = FALSE;
+    gtk_widget_set_sensitive(switch_menu_cmd, TRUE);
+    gtk_widget_set_sensitive(zoom_in_button, TRUE);
+    gtk_widget_set_sensitive(zoom_out_button, TRUE);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(reposition_button),
+                                FALSE);
+    draw_center_lines();
+}
+
 void draw_zoom_box(void)
 {
     gdk_gc_set_function(drawing_area->style->white_gc, GDK_XOR);
 
     gdk_draw_rectangle(
         drawing_area->window, drawing_area->style->white_gc,
-        FALSE, st.z_x, st.z_y, st.z_width, st.z_height);
+        FALSE, stat.z_x, stat.z_y, stat.z_width, stat.z_height);
     
     gdk_gc_set_function(drawing_area->style->white_gc, GDK_COPY);
 }
 
 void start_zooming(void)
 {
-    st.z_x = 0;
-    st.z_y = 0;
-    st.z_width = ZOOM_BOX_WIDTH * img.user_width;
-    st.z_height = st.z_width/img.ratio;
-    st.zooming = TRUE;
-    
+    stat.z_x = 0;
+    stat.z_y = 0;
+    stat.z_width = ZOOM_BOX_WIDTH * img.user_width;
+    stat.z_height = stat.z_width/img.ratio;
+    stat.zooming = TRUE;
+    gtk_widget_set_sensitive(switch_menu_cmd, FALSE);
+    gtk_widget_set_sensitive(reposition_button, FALSE);
+    gdk_gc_set_line_attributes(drawing_area->style->white_gc,
+            1, GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER);
     draw_zoom_box();
 }
 
 void stop_zooming(void)
 {
-    st.zooming = FALSE;
+    stat.zooming = FALSE;
     draw_zoom_box();
     kill_zoom_timers();
+    gtk_widget_set_sensitive(switch_menu_cmd, TRUE);
+    gtk_widget_set_sensitive(reposition_button, TRUE);
 }
 
 void zoom_in(void)
 {
     long double xmin,xmax,ymax;
 
-    st.zooming = FALSE;
+    stat.zooming = FALSE;
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(zoom_in_button),
                                 FALSE);
 
-    ymax = (long double)st.z_y;
-    xmin = (long double)st.z_x;
-    xmax = (long double)(st.z_x+st.z_width-1);
+    ymax = (long double) stat.z_y;
+    xmin = (long double) stat.z_x;
+    xmax = (long double) (stat.z_x + stat.z_width - 1);
 
     get_coords(&xmin, &ymax);
     get_coords(&xmax, NULL);
@@ -1016,15 +1086,14 @@
 
 void zoom_resize(int arg)
 {
-    st.z_width += arg*4;
-    st.z_height = st.z_width/img.ratio;
+    stat.z_width += arg * 4;
+    stat.z_height = stat.z_width / img.ratio;
 }
 
 int zoom_is_valid_size(void)
 {
-    if ( (st.z_width < 4) || (st.z_width > (img.user_width-16))
-         || (st.z_height < 4) || (st.z_height > (img.user_height-16))
-         )
+    if ((stat.z_width < 4) || (stat.z_width > (img.user_width - 16))
+       || (stat.z_height < 4) || (stat.z_height > (img.user_height - 16)))
         return FALSE;
     else
         return TRUE;
@@ -1052,6 +1121,16 @@
     }
 }
 
+void reposition_func(GtkWidget* widget)
+{
+    if (GTK_TOGGLE_BUTTON(widget)->active) {
+        start_reposition();
+    } else {
+        stop_reposition();
+    }
+}
+
+
 void zoom_out_func(GtkWidget* widget)
 {
     long double ymin,half_w,half_h;
@@ -1118,18 +1197,20 @@
 
 gint button_press_event(GtkWidget* widget, GdkEventButton* event)
 {
-    /* ignore double- and triple clicks */
+    long double cx = 0, cy = 0, cxd = 0, cyd = 0;
+    long double fpx = 0, fpy = 0;
+    /* ignore double and triple clicks */
     if ( (event->type == GDK_2BUTTON_PRESS) ||
          (event->type == GDK_3BUTTON_PRESS) )
         return TRUE;
 
     /* don't react to pressing the other button if we're
        zooming in or out */
-    if ( (zoom_timer != -1) && ( (event->button == 1) ||
-                                 (event->button == 3) ) )
+    if ((zoom_timer != -1) &&
+        ((event->button == 1) || (event->button == 3)) )
         return TRUE;
-    
-    if (st.zooming) {
+
+    if (stat.zooming) {
         draw_zoom_box();
         if (event->button == 1) {
             zoom_resize(1);
@@ -1139,8 +1220,10 @@
                 zoom_timer = g_timeout_add(ZOOM_INTERVAL,
                                           (GtkFunction)zoom_callback,
                                           (gpointer)2);
-        } else if (event->button == 2)
+        }
+        else if (event->button == 2) {
             zoom_in();
+        }
         else if (event->button == 3) {
             zoom_resize(-1);
             if (!zoom_is_valid_size())
@@ -1149,31 +1232,79 @@
                 zoom_timer = g_timeout_add(ZOOM_INTERVAL,
                                           (GtkFunction)zoom_callback,
                                           (gpointer)-2);
-                
         }
         draw_zoom_box();
-    } else if (st.julia_browsing) {
+    }
+    else if (stat.julia_browsing) {
         if (event->button == 1) {
             img.u.julia.c_re = event->x;
             img.u.julia.c_im = event->y;
-            
             get_coords(&img.u.julia.c_re, &img.u.julia.c_im);
             stop_julia_browsing();
-
             /* save old coordinates */
             img.old_xmin = img.xmin;
             img.old_xmax = img.xmax;
             img.old_ymax = img.ymax;
-            
             img.xmin = j_pre.xmin;
             img.xmax = j_pre.xmax;
             img.ymax = j_pre.ymax;
             img.fr_type = JULIA;
-            
             start_rendering(&img);
         }
     }
-
+    else if (stat.repositioning) {
+        if (event->button == 1) {
+            if (!stat.second_point) {
+                stat.second_point = TRUE;
+                draw_center_lines();
+                stat.fp_x = event->x;
+                stat.fp_y = event->y;
+            }
+            else {
+                cx = stat.cl_x;
+                cy = stat.cl_y;
+                get_coords(&cx, &cy);
+                fpx = stat.fp_x;
+                fpy = stat.fp_y;
+                get_coords(&fpx, &fpy);
+                cxd = (img.xmax - img.xmin) / 2;
+                cyd = cxd / img.ratio;
+                img.xmin += (fpx - cx);
+                img.xmax = img.xmin + cxd * 2;
+                img.ymax += (fpy - cy);
+                draw_center_lines();
+                stat.cl_x = stat.fp_x;
+                stat.cl_y = stat.fp_y;
+                stat.second_point = FALSE;
+                draw_center_lines();
+                stop_reposition();
+                start_rendering(&img);
+            }
+        }
+        else if (event->button == 2) {
+            cx = stat.cl_x;
+            cy = stat.cl_y;
+            get_coords(&cx, &cy);
+            cxd = (img.xmax - img.xmin) / 2;
+            cyd = cxd / img.ratio;
+            img.xmin = cx - cxd;
+            img.xmax = img.xmin + cxd * 2;
+            img.ymax = cyd + cy;
+            draw_center_lines();
+            stop_reposition();
+            start_rendering(&img);
+        }
+        else if (event->button == 3) {
+            draw_center_lines();
+            if (stat.second_point) {
+                stat.second_point = FALSE;
+                stat.cl_x = stat.fp_x;
+                stat.cl_y = stat.fp_y;
+                draw_center_lines();
+            }
+            stop_reposition();
+        }
+    }
     return TRUE;
 }
 
@@ -1194,23 +1325,28 @@
 
 gint motion_event(GtkWidget* widget, GdkEventMotion* event)
 {
-    if ((!st.zooming) && (!st.julia_browsing))
-        return TRUE;
+    if ((!stat.zooming) &&
+        (!stat.julia_browsing) &&
+        (!stat.repositioning)) return TRUE;
 
-    if (st.julia_browsing) {
+    if (stat.julia_browsing) {
         j_pre.u.julia.c_re = event->x;
         j_pre.u.julia.c_im = event->y;
         get_coords(&j_pre.u.julia.c_re, &j_pre.u.julia.c_im);
         start_rendering(&j_pre);
-    } else if (st.zooming) {
+    }
+    else if (stat.zooming) {
         draw_zoom_box();
-        
-        st.z_x = event->x;
-        st.z_y = event->y;
-        
+        stat.z_x = event->x;
+        stat.z_y = event->y;
         draw_zoom_box();
     }
-
+    else if (stat.repositioning) {
+        draw_center_lines();
+        stat.cl_x = event->x;
+        stat.cl_y = event->y;
+        draw_center_lines();
+    }
     return TRUE;
 }
 
@@ -1305,7 +1441,7 @@
     gtk_main_quit();
 }
 
-int main (int argc, char** argv)
+int main(int argc, char** argv)
 {
     GtkWidget* vbox;
     GtkWidget* hbox;
@@ -1318,14 +1454,6 @@
     program_name = argv[0];
     gtk_init(&argc, &argv);
 
-    rand_palette.r_strength = 0.15;
-    rand_palette.r_bands = 0.15;
-    rand_palette.g_strength = 0.25;
-    rand_palette.g_bands = 0.25;
-    rand_palette.b_strength = 0.5;
-    rand_palette.b_bands = 0.5;
-
-    img.rnd_pal = &rand_palette;
     img.filesel = NULL;
 
     palette = g_malloc(256*4);
@@ -1394,6 +1522,19 @@
     GTK_WIDGET_UNSET_FLAGS(zoom_out_button, GTK_CAN_FOCUS);
     gtk_widget_show(zoom_out_button);
 
+    /* reposition */
+    reposition_button = gtk_toggle_button_new();
+    gtk_container_add(GTK_CONTAINER(reposition_button),
+                      create_pixmap(window, reposition_xpm));
+    g_signal_connect(GTK_OBJECT(reposition_button), "clicked",
+                       GTK_SIGNAL_FUNC(reposition_func), NULL);
+    gtk_box_pack_start(GTK_BOX(hbox), reposition_button, FALSE, FALSE,
+                       0);
+    gtk_button_set_relief(GTK_BUTTON(reposition_button),
+                          GTK_RELIEF_NONE);
+    GTK_WIDGET_UNSET_FLAGS(reposition_button, GTK_CAN_FOCUS);
+    gtk_widget_show(reposition_button);
+
     /* depth label */
     button = gtk_label_new("Depth");
     gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
@@ -1403,7 +1544,6 @@
     adj = gtk_adjustment_new((gfloat)img.depth, 1.0,
                                 2147483647.0, 1, 1, 0.0);
     depth_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0.0, 0.0);
-/*    gtk_widget_set_size_request(depth_spin, 70, 0); */
     gtk_box_pack_start(GTK_BOX(hbox), depth_spin, FALSE, FALSE, 0);
     gtk_widget_show(depth_spin);
 
diff -urN gkII-0.4.2/README gkII-0.4.3/README
--- gkII-0.4.2/README	2006-05-02 00:54:31.000000000 +0100
+++ gkII-0.4.3/README	2006-08-19 22:15:45.000000000 +0100
@@ -21,16 +21,27 @@
 gkII is an ongoing side project of jwm-art.net and is in no way a finished
 or polished piece of software.
 
+==========================================================================
+
  */\*  */\*  */\*  */\*  */\*  */\*  */\*  */\*  */\*  */\*  */\*  */\* 
-  N     E     W            N     E     W          N     E     W      
+  N     E     W ish        N     E     W ish      N     E     W ish  
+--------------------------------------------------------------------------
 
 There is a new entry in the Image menu which when toggled causes a zoom-in
 to operate in a new window leaving the current image untouched.
 
 Please play with the palette randomization too!
 
-   N     E     W          N     E     W            N     E     W      
- *\/*  *\/*  *\/*  *\/*  *\/*  *\/*  *\/*  *\/*  *\/*  *\/*  *\/*  *\/* 
+Now you can adjust the position of your images in the window, say there's
+a nice point in the fractal which would be good for the center of your image,
+well, just press the positioning button (next to the zoom buttons) on the
+tool bar, and move the mouse to said point and press the middle (2nd) button.
+Hey presto! The point is now central.
+
+Or, if there's a point in the fractal that would be good in the top left
+corner, again, press the positioning button and move the mouse to said
+point and press the left button, then, move the mouse to where you want it to
+go, and press left button again. Simple!
 
 
                                **** WARNING ****
@@ -51,16 +62,21 @@
  ********** .gk2 files are not wholly compatible between versions **********
                                **** WARNING ****
 
+
       *************************************************************
       Load the provided .gk2 files into gkII to see what it can do!
-      *************************************************************
+      ****************************Go on! You know it makes sense...
 
 For install instructions see the INSTALL file.
 
+For assistance:
+
 gkII - James W. Morris
     james@jwm-art.net
     http://www.jwm-art.net/gkII/
 
+For gfract:
+
 gfract - Osku Salerma
     osku@iki.fi
     http://www.iki.fi/osku/gfract/
diff -urN gkII-0.4.2/reposition.xpm gkII-0.4.3/reposition.xpm
--- gkII-0.4.2/reposition.xpm	1970-01-01 01:00:00.000000000 +0100
+++ gkII-0.4.3/reposition.xpm	2006-08-19 20:32:35.000000000 +0100
@@ -0,0 +1,21 @@
+/* XPM */
+static char * reposition_xpm[] = {
+"16 16 2 1",
+" 	c None",
+".	c #000000",
+"       ..       ",
+"      ....      ",
+"     ......     ",
+"       ..       ",
+"       ..       ",
+"  .    ..    .  ",
+" ..    ..    .. ",
+"................",
+"................",
+" ..    ..    .. ",
+"  .    ..    .  ",
+"       ..       ",
+"       ..       ",
+"     ......     ",
+"      ....      ",
+"       ..       "};
diff -urN gkII-0.4.2/TODO gkII-0.4.3/TODO
--- gkII-0.4.2/TODO	2006-05-02 00:48:36.000000000 +0100
+++ gkII-0.4.3/TODO	2006-08-19 22:00:02.000000000 +0100
@@ -1,21 +1,23 @@
--Stop bastardizing it further!
+
+-When re-positioning the image, shift areas of the image which will still be
+ visible, rather than recalculating them...
 
 -Remove use of combo boxes for editing drawing method formula.  I am not
  familier enough with postfix or Reverse Polish notation to be able to
  use it well.  So until I've got a postfix to infix converter running
- it's combo boxes all the way. huh.
-
+ it's combo boxes all the way.
+ 
 -Lots of tidying...
 
 -Cropping
 
 -Palette editing.
--Palette - randomization of existing or completely random palette
+
 
 -Multiple threads for rendering. Should allow a pretty linear increase
- in speed on SMP machines.
+ in speed on SMP machines. (from gfract's TODO)
 
 -Periodicity checking.
 
 -Investigate how to get rid of the clobber-warnings in my_png.c. Just
- adding volatile didn't work.
+ adding volatile didn't work. (from gfract's TODO)
diff -urN gkII-0.4.2/version.h gkII-0.4.3/version.h
--- gkII-0.4.2/version.h	2006-05-01 23:31:29.000000000 +0100
+++ gkII-0.4.3/version.h	2006-08-19 13:44:46.000000000 +0100
@@ -1,6 +1,6 @@
 #ifndef __VERSION_H
 #define __VERSION_H
 
-#define VERSION "0.3a"
+#define VERSION "0.4.3"
 
 #endif /* __VERSION_H */
