comparison src/layout_image.c @ 879:0f85435ac335

Optimize a bit when connected zoom and scrolling are unset, just move the test outside loops.
author zas_
date Fri, 04 Jul 2008 20:32:48 +0000
parents 371a1c3d4504
children ad420f2eb789
comparison
equal deleted inserted replaced
878:1b14c0e177ad 879:0f85435ac335
1051 gint width, height, i; 1051 gint width, height, i;
1052 if (!layout_valid(&lw)) return; 1052 if (!layout_valid(&lw)) return;
1053 1053
1054 image_scroll(lw->image, x, y); 1054 image_scroll(lw->image, x, y);
1055 1055
1056 if (!lw->connect_scroll) return;
1057
1056 image_get_image_size(lw->image, &width, &height); 1058 image_get_image_size(lw->image, &width, &height);
1057 dx = (gdouble) x / width; 1059 dx = (gdouble) x / width;
1058 dy = (gdouble) y / height; 1060 dy = (gdouble) y / height;
1059 1061
1060 for (i = 0; i < MAX_SPLIT_IMAGES; i++) 1062 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
1061 { 1063 {
1062 if (lw->split_images[i] && lw->split_images[i] != lw->image && lw->connect_scroll) 1064 if (lw->split_images[i] && lw->split_images[i] != lw->image)
1063 { 1065 {
1064 gdouble sx, sy; 1066 gdouble sx, sy;
1065 image_get_scroll_center(lw->split_images[i], &sx, &sy); 1067 image_get_scroll_center(lw->split_images[i], &sx, &sy);
1066 sx += dx; 1068 sx += dx;
1067 sy += dy; 1069 sy += dy;
1076 gint i; 1078 gint i;
1077 if (!layout_valid(&lw)) return; 1079 if (!layout_valid(&lw)) return;
1078 1080
1079 image_zoom_adjust(lw->image, increment); 1081 image_zoom_adjust(lw->image, increment);
1080 1082
1083 if (!lw->connect_zoom) return;
1084
1081 for (i = 0; i < MAX_SPLIT_IMAGES; i++) 1085 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
1082 { 1086 {
1083 if (lw->split_images[i] && lw->split_images[i] != lw->image && lw->connect_zoom) 1087 if (lw->split_images[i] && lw->split_images[i] != lw->image)
1084 image_zoom_adjust(lw->split_images[i], increment); ; 1088 image_zoom_adjust(lw->split_images[i], increment); ;
1085 } 1089 }
1086 } 1090 }
1087 1091
1088 void layout_image_zoom_adjust_at_point(LayoutWindow *lw, gdouble increment, gint x, gint y) 1092 void layout_image_zoom_adjust_at_point(LayoutWindow *lw, gdouble increment, gint x, gint y)
1090 gint i; 1094 gint i;
1091 if (!layout_valid(&lw)) return; 1095 if (!layout_valid(&lw)) return;
1092 1096
1093 image_zoom_adjust_at_point(lw->image, increment, x, y); 1097 image_zoom_adjust_at_point(lw->image, increment, x, y);
1094 1098
1099 if (!lw->connect_zoom) return;
1100
1095 for (i = 0; i < MAX_SPLIT_IMAGES; i++) 1101 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
1096 { 1102 {
1097 if (lw->split_images[i] && lw->split_images[i] != lw->image && lw->connect_zoom) 1103 if (lw->split_images[i] && lw->split_images[i] != lw->image)
1098 image_zoom_adjust_at_point(lw->split_images[i], increment, x, y); 1104 image_zoom_adjust_at_point(lw->split_images[i], increment, x, y);
1099 } 1105 }
1100 } 1106 }
1101 1107
1102 void layout_image_zoom_set(LayoutWindow *lw, gdouble zoom) 1108 void layout_image_zoom_set(LayoutWindow *lw, gdouble zoom)
1104 gint i; 1110 gint i;
1105 if (!layout_valid(&lw)) return; 1111 if (!layout_valid(&lw)) return;
1106 1112
1107 image_zoom_set(lw->image, zoom); 1113 image_zoom_set(lw->image, zoom);
1108 1114
1109 for (i=0; i < MAX_SPLIT_IMAGES; i++) 1115 if (!lw->connect_zoom) return;
1110 { 1116
1111 if (lw->split_images[i] && lw->split_images[i] != lw->image && lw->connect_zoom) 1117 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
1118 {
1119 if (lw->split_images[i] && lw->split_images[i] != lw->image)
1112 image_zoom_set(lw->split_images[i], zoom); 1120 image_zoom_set(lw->split_images[i], zoom);
1113 } 1121 }
1114 } 1122 }
1115 1123
1116 void layout_image_zoom_set_fill_geometry(LayoutWindow *lw, gint vertical) 1124 void layout_image_zoom_set_fill_geometry(LayoutWindow *lw, gint vertical)