diff options
-rw-r--r-- | tikzit/src/gtk/PreviewRenderer.m | 10 | ||||
-rw-r--r-- | tikzit/src/gtk/PreviewWindow.m | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/tikzit/src/gtk/PreviewRenderer.m b/tikzit/src/gtk/PreviewRenderer.m index f43abf6..cb8e4f8 100644 --- a/tikzit/src/gtk/PreviewRenderer.m +++ b/tikzit/src/gtk/PreviewRenderer.m @@ -224,10 +224,18 @@ if (w==0) w = 1.0; if (h==0) h = 1.0; - double scale = [self height] / h; + double scale = ([self height] / h) * 0.95; if (w * scale > [self width]) scale = [self width] / w; [[surface transformer] setScale:scale]; + NSPoint origin; + w *= scale; + h *= scale; + origin.x = ([self width] - w) / 2; + origin.y = ([self height] - h) / 2; + + [[surface transformer] setOrigin:origin]; + [context saveState]; [context applyTransform:[surface transformer]]; diff --git a/tikzit/src/gtk/PreviewWindow.m b/tikzit/src/gtk/PreviewWindow.m index bde39a4..2540dda 100644 --- a/tikzit/src/gtk/PreviewWindow.m +++ b/tikzit/src/gtk/PreviewWindow.m @@ -64,7 +64,7 @@ static gboolean window_configure_event_cb (GtkWindow *window, GtkWidget *pdfArea = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (window), pdfArea); - gtk_widget_set_size_request (pdfArea, 150.0, 150.0); + //gtk_widget_set_size_request (pdfArea, 150.0, 150.0); gtk_widget_show (pdfArea); surface = [[WidgetSurface alloc] initWithWidget:pdfArea]; [surface setRenderDelegate:previewer]; @@ -114,8 +114,10 @@ static gboolean window_configure_event_cb (GtkWindow *window, double height = (double)h; [previewer setWidth:width]; [previewer setHeight:height]; + gdk_window_resize(gtk_widget_get_window([surface widget]), w, h); [surface invalidate]; - //NSLog(@"got that resize event! --> (%d, %d)", w, h); + + //NSLog(@"got that resize event! --> (%d, %d)", [surface width], [surface height]); } - (BOOL) update { |