ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/command.C
(Generate patch)

Comparing rxvt-unicode/src/command.C (file contents):
Revision 1.517 by root, Wed Jun 6 08:59:13 2012 UTC vs.
Revision 1.523 by sf-exg, Fri Jun 29 13:57:26 2012 UTC

1467 while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) 1467 while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev))
1468 ; 1468 ;
1469 1469
1470 bool want_position_change = SHOULD_INVOKE (HOOK_POSITION_CHANGE); 1470 bool want_position_change = SHOULD_INVOKE (HOOK_POSITION_CHANGE);
1471 1471
1472 bool moved = false;
1472#ifdef HAVE_BG_PIXMAP 1473#ifdef HAVE_BG_PIXMAP
1473 if (bg_window_position_sensitive ()) 1474 if (bg_window_position_sensitive ())
1475 {
1474 want_position_change = true; 1476 want_position_change = true;
1477 if (!(bg_flags & BG_IS_VALID))
1478 moved = true;
1479 }
1475#endif 1480#endif
1476
1477 bool moved = false;
1478 1481
1479 if (want_position_change) 1482 if (want_position_change)
1480 { 1483 {
1481 int x, y; 1484 int x, y;
1482 1485
1488 else 1491 else
1489 get_window_origin (x, y); 1492 get_window_origin (x, y);
1490 1493
1491 if (x != parent_x || y != parent_y) 1494 if (x != parent_x || y != parent_y)
1492 { 1495 {
1493 HOOK_INVOKE ((this, HOOK_POSITION_CHANGE, DT_INT, x, DT_INT, y, DT_END));
1494 parent_x = x; 1496 parent_x = x;
1495 parent_y = y; 1497 parent_y = y;
1498 HOOK_INVOKE ((this, HOOK_POSITION_CHANGE, DT_INT, x, DT_INT, y, DT_END));
1499 moved = true;
1496 } 1500 }
1497
1498 if (bg_set_position (x, y)
1499 || !(bg_flags & BG_IS_VALID))
1500 moved = true;
1501 } 1501 }
1502 1502
1503 if (szHint.width != ev.xconfigure.width || szHint.height != ev.xconfigure.height) 1503 if (szHint.width != ev.xconfigure.width || szHint.height != ev.xconfigure.height)
1504 { 1504 {
1505 seen_resize = 1; 1505 seen_resize = 1;
3472#if BG_IMAGE_FROM_FILE 3472#if BG_IMAGE_FROM_FILE
3473 case Rxvt_Pixmap: 3473 case Rxvt_Pixmap:
3474 if (!strcmp (str, "?")) 3474 if (!strcmp (str, "?"))
3475 { 3475 {
3476 char str[256]; 3476 char str[256];
3477 int h_scale = 0, v_scale = 0;
3478 int h_align = 0, v_align = 0;
3479 if (image_vec.size () > 0)
3480 {
3481 h_scale = image_vec[0].h_scale; 3477 int h_scale = fimage.h_scale;
3482 v_scale = image_vec[0].v_scale; 3478 int v_scale = fimage.v_scale;
3483 h_align = image_vec[0].h_align; 3479 int h_align = fimage.h_align;
3484 v_align = image_vec[0].v_align; 3480 int v_align = fimage.v_align;
3485 }
3486 3481
3487 sprintf (str, "[%dx%d+%d+%d]", 3482 sprintf (str, "[%dx%d+%d+%d]",
3488 h_scale, v_scale, 3483 h_scale, v_scale,
3489 h_align, v_align); 3484 h_align, v_align);
3490 process_xterm_seq (XTerm_title, str, CHAR_ST); 3485 process_xterm_seq (XTerm_title, str, CHAR_ST);
3493 { 3488 {
3494 bool changed = false; 3489 bool changed = false;
3495 3490
3496 if (*str != ';') 3491 if (*str != ';')
3497 { 3492 {
3498 if (image_vec.size () > 0)
3499 changed = image_vec[0].set_file_geometry (str);
3500 else 3493 try
3501 { 3494 {
3502 rxvt_image *image = new_image ();
3503 if (!image->set_file_geometry (str)) 3495 fimage.set_file_geometry (this, str);
3504 image_vec.pop_back ();
3505 else
3506 changed = true; 3496 changed = true;
3497 }
3498 catch (const class rxvt_failure_exception &e)
3499 {
3507 } 3500 }
3508 } 3501 }
3509 else 3502 else
3510 { 3503 {
3511 str++; 3504 str++;
3512 if (image_vec.size () > 0)
3513 changed = image_vec[0].set_geometry (str, true); 3505 if (fimage.set_geometry (str, true))
3506 changed = true;
3514 } 3507 }
3515 3508
3516 if (changed) 3509 if (changed)
3517 { 3510 {
3518 if (bg_window_position_sensitive ()) 3511 if (bg_window_position_sensitive ())
3519 { 3512 {
3520 int x, y; 3513 int x, y;
3521 get_window_origin (x, y); 3514 get_window_origin (x, y);
3522 bg_set_position (x, y); 3515 parent_x = x;
3516 parent_y = y;
3523 } 3517 }
3524 update_background (); 3518 update_background ();
3525 } 3519 }
3526 } 3520 }
3527 break; 3521 break;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines