Changeset 483
- Timestamp:
- 03/15/2008 13:43:54 (5 months ago)
- Location:
- trunk/shoes
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/shoes/app.c
r472 r483 1536 1536 g_signal_connect(G_OBJECT(gk->window), "expose-event", 1537 1537 G_CALLBACK(shoes_app_gtk_paint), app); 1538 g_signal_connect(G_OBJECT(gk->window), "size-allocate", 1539 G_CALLBACK(shoes_app_gtk_paint), app); 1538 1540 g_signal_connect(G_OBJECT(gk->window), "motion-notify-event", 1539 1541 G_CALLBACK(shoes_app_gtk_motion), app); -
trunk/shoes/canvas.c
r481 r483 432 432 canvas->cx = 0; 433 433 canvas->cy = 0; 434 canvas->marginy = 0;435 434 canvas->endy = 0; 436 435 canvas->endx = 0; … … 1177 1176 self_t->cx = self_t->place.ix; 1178 1177 self_t->cy = self_t->place.iy; 1179 self_t->marginy = 0;1180 1178 self_t->endx = self_t->place.ix; 1181 1179 self_t->endy = self_t->place.iy; … … 1225 1223 self_t->endx = self_t->cx = 0; 1226 1224 self_t->topy = self_t->endy = self_t->cy = 0; 1227 self_t->marginy = 0;1228 1225 if (!NIL_P(self_t->parent)) 1229 1226 { … … 1338 1335 self_t->cy = c1->place.y; 1339 1336 self_t->endx = self_t->cx; 1340 self_t->endy = c1->place.y + c1->place.h;1337 self_t->endy = max(self_t->endy, c1->place.y + c1->place.h); 1341 1338 } 1342 1339 if (ck == cStack) { -
trunk/shoes/canvas.h
r474 r483 227 227 double sw; // current stroke-width 228 228 int cx, cy; // cursor x and y (stored in absolute coords) 229 int marginy; // value for next y-margin230 229 int endx, endy; // jump points if the cursor spills over 231 230 int topy, fully; // since we often stack vertically -
trunk/shoes/ruby.c
r477 r483 384 384 canvas->cx = place->x = CPX(canvas); 385 385 canvas->cy = place->y = canvas->endy; 386 canvas->marginy = bmargin;387 386 } 388 387 } … … 392 391 place->iw = place->w - (lmargin + rmargin); 393 392 place->ih = place->h - (tmargin + bmargin); 394 INFO("PLACE: (%d, %d), (%d, %d) [%d, %d] % d %x\n", place->x, place->y, place->w, place->h, ABSX(*place), ABSY(*place), place->flags, canvas->marginy);393 INFO("PLACE: (%d, %d), (%d, %d) [%d, %d] %x\n", place->x, place->y, place->w, place->h, ABSX(*place), ABSY(*place), place->flags); 395 394 } 396 395 … … 490 489 canvas->cy = self_t->place.y; \ 491 490 canvas->endx = canvas->cx; \ 492 canvas->endy = self_t->place.y + self_t->place.h; \491 canvas->endy = max(canvas->endy, self_t->place.y + self_t->place.h); \ 493 492 } \ 494 493 if (ck == cStack) { \ … … 2413 2412 { 2414 2413 self_t->place.x = CPX(canvas); 2415 self_t->place.y = canvas->endy;2414 canvas->cy = self_t->place.y = canvas->endy; 2416 2415 } 2417 2416 else … … 2445 2444 pango_layout_set_indent(self_t->layout, 0); 2446 2445 self_t->place.x = CPX(canvas); 2447 self_t->place.y = canvas->endy;2446 canvas->cy = self_t->place.y = canvas->endy; 2448 2447 pd = 0; 2449 2448 } … … 2451 2450 self_t->place.y = ((canvas->endy - ld) - lrect.height); 2452 2451 } 2453 if (!ABSY(self_t->place) && !ABSX(self_t->place) && !pd)2454 tmargin = max(tmargin, canvas->marginy);2455 2452 self_t->place.ix = self_t->place.x + lmargin; 2456 2453 self_t->place.iy = self_t->place.y + tmargin; … … 2498 2495 self_t->place.y, self_t->place.iy, self_t->place.w, self_t->place.h, pd); 2499 2496 2497 int endy = 0; 2500 2498 if (!ABSY(self_t->place)) { 2501 2499 // newlines have an empty size 2502 2500 if (ck != cStack) { 2503 2501 if (li == 0) { 2504 canvas->endy = self_t->place.y;2502 endy = self_t->place.y; 2505 2503 canvas->cx = self_t->place.x + lrect.x + lrect.width + rmargin + pd; 2506 2504 } else { 2507 canvas->endy = self_t->place.y + py - lrect.height;2505 endy = self_t->place.y + py - lrect.height; 2508 2506 if (lrect.width == 0) { 2509 2507 canvas->cx = self_t->place.x + lrect.x; … … 2511 2509 canvas->cx = self_t->place.x + lrect.width + rmargin; 2512 2510 } 2513 canvas->cy = canvas->endy;2511 canvas->cy = endy; 2514 2512 } 2515 2513 } else { 2516 canvas->endy = self_t->place.y + self_t->place.h; 2517 } 2514 endy = self_t->place.y + self_t->place.h; 2515 } 2516 2517 canvas->endy = max(endy, canvas->endy); 2518 canvas->endx = canvas->cx; 2519 2518 2520 if (ck == cStack || canvas->cx - CPX(canvas) > canvas->width) { 2519 2521 canvas->cx = CPX(canvas); … … 2523 2525 bmargin = lrect.height; 2524 2526 2525 if (!pd) 2526 canvas->marginy = bmargin; 2527 else 2528 canvas->marginy = max(canvas->marginy, bmargin); 2529 canvas->endx = canvas->cx; 2530 2531 INFO("CX: (%d, %d) / LRECT: (%d, %d) / END: (%d, %d) %d\n", 2527 INFO("CX: (%d, %d) / LRECT: (%d, %d) / END: (%d, %d)\n", 2532 2528 canvas->cx, canvas->cy, 2533 2529 lrect.x, lrect.width, 2534 canvas->endx, canvas->endy , canvas->marginy);2530 canvas->endx, canvas->endy); 2535 2531 } 2536 2532 return self;
