My panels were drifting one or two pixels each time I started studio. This seems...
[synfig.git] / synfig-studio / trunk / src / gtkmm / workarea.cpp
index 72acd90..22b0526 100644 (file)
@@ -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
@@ -2256,12 +2255,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);