Added my "Copyright (c) 2007" notices, for files I edited in 2007.
[synfig.git] / synfig-studio / trunk / src / gtkmm / workarea.cpp
index 72acd90..f2b932f 100644 (file)
@@ -6,7 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-**     Copyright 2006 Yue Shi Lai
+**     Copyright (c) 2006 Yue Shi Lai
 **     Copyright (c) 2007 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
@@ -1199,8 +1199,6 @@ WorkArea::on_drawing_area_event(GdkEvent *event)
        bool is_mouse(false);
        Gdk::ModifierType modifier(Gdk::ModifierType(0));
 
-       drawing_area->grab_focus();
-
        // Handle input stuff
        if(
                event->any.type==GDK_MOTION_NOTIFY ||
@@ -1220,6 +1218,7 @@ WorkArea::on_drawing_area_event(GdkEvent *event)
                {
                        device=event->button.device;
                        modifier=Gdk::ModifierType(event->button.state);
+                       drawing_area->grab_focus();
                }
 
                // Make sure we recognize the device
@@ -1922,6 +1921,9 @@ WorkArea::refresh_dimension_info()
        pw=canvaswidth/w;
        ph=canvasheight/h;
 
+       Duckmatic::set_flip_x(pw < 0);
+       Duckmatic::set_flip_y(ph > 0);
+
        scrollx_adjustment.set_page_increment(abs(get_grid_size()[0]));
        scrollx_adjustment.set_step_increment(abs(pw));
        scrollx_adjustment.set_lower(-abs(canvaswidth));
@@ -2256,12 +2258,10 @@ studio::WorkArea::async_update_preview()
        int w=(int)(desc.get_w()*zoom);
        int h=(int)(desc.get_h()*zoom);
 
-       // ensure that the size we draw is a whole number of pixels in each dimension
-       if (low_resolution)
-       {
-               if (w % low_res_pixel_size) w = (w/low_res_pixel_size+1)*low_res_pixel_size;
-               if (h % low_res_pixel_size) h = (h/low_res_pixel_size+1)*low_res_pixel_size;
-       }
+       // ensure that the size we draw is at least one pixel in each dimension
+       int min_size = low_resolution ? low_res_pixel_size : 1;
+       if (w < min_size) w = min_size;
+       if (h < min_size) h = min_size;
 
        // Setup the description parameters
        desc.set_antialias(1);