1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845
|
2008-03-09 Thomas Thurman <tthurman@gnome.org>
* configure.in:
* NEWS: 2.22.0 release.
2008-02-28 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.21.34.
2008-02-28 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.21 release.
2008-02-25 Thomas Wood <thos@gnome.org>
* src/ui/preview-widget.[ch] (meta_preview_get_clip_region):
allow users of the preview widget to get a mask for windows
in the correct shape for the current theme.
2008-02-12 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.21.21.
2008-02-11 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.13 release.
2008-02-04 Thomas Thurman <tthurman@gnome.org>
* src/core/compositor.c: only use compositor version if
we have a compositor. Closes #514453.
2008-02-04 Thomas Thurman <tthurman@gnome.org>
* configure.in, src/ui/ui.c: remove workaround for a problem
in GTK 1.3.9(!) which was causing problems. Closes #513737.
2008-01-28 Michael Meeks <michael.meeks@novell.com>
* src/core/display.c (meta_display_open),
* src/core/compositor.c: fetch & use composite
version, for remote screens that don't match the
compile system's version.
(meta_compositor_manage_screen): bin erroneous FIXME.
(add_win): remove common warning churn for (very)
transient windows
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* tools/patch-wrangler.py: another program I use for maintenance
which other people might find useful and which should probably
be in svn. Also not very polished.
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* test/tokentest/tokentest.c, test/tokentest/tokentest.ini: added
new files for a regression test on the tokeniser. (They aren't very
polished at the moment and aren't included in the autotools build.)
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.21.13.
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.8 release.
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* tools/release-wrangler.py: Fix quoting error and added some
more error checking.
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* tools/release-wrangler.py: basic release script; needs work,
but probably good enough for the current unstable release
2008-02-02 Thomas Thurman <tthurman@gnome.org>
* src/Makefile.am: core.h is in include, not core. (Last one, I
promise.)
2008-02-02 Thomas Thurman <tthurman@gnome.org>
* src/Makefile.am: main.h is in include, not core.
2008-02-02 Thomas Thurman <tthurman@gnome.org>
* src/Makefile.am: draw-workspace.h is in ui, not core.
2008-02-01 Alex R.M. Turner <armtuk@gmail.com>
* src/core/display.c (meta_get_tab_entry_list): Have the list also pull
windows that are in other workspaces that have the
wm_state_needs_attention flag set
* src/core/window.c (meta_window_set_demands_attention): Make windows that
are on other workspaces that demand attention that aren't obscured
count as being obscured
Bug #333548.
2008-01-28 Christian Persch <chpe@gnome.org>
* src/core/display.c (convert_property):
* src/core/screen.c (meta_screen_calc_workspace_layout):
* src/core/xprops.c (meta_prop_get_values):
Use G_STRFUNC instead of the deprecated G_GNUC_FUNCTION.
Bug #512561.
2008-01-21 Thomas Thurman <tthurman@gnome.org>
* src/ui/theme.[ch]: more commenting.
2008-01-18 Thomas Thurman <tthurman@gnome.org>
* src/ui/theme.[ch]: some more commenting.
2008-01-16 Thomas Thurman <tthurman@gnome.org>
* src/core/bell.c: Correct comment.
* src/core/main.c: Correct comment.
* src/ui/theme.c: Much commenting; #ifdeffed-out
debug code removed.
* src/ui/theme.h: Much commenting.
2008-01-13 Thomas Thurman <tthurman@gnome.org>
* src/core/bell.c: Commenting.
* src/core/main.c: Commenting, and fixing existing comments.
2008-01-12 Thomas Thurman <tthurman@gnome.org>
* src/core/main.c: Refactor repeated lines in main() to
iterate instead.
2008-01-12 Thomas Thurman <tthurman@gnome.org>
* src/core/main.[ch] (meta_get_main_loop): removed as it
was never used.
* src/core/main.c: lots of comments.
* src/core/main.c (version): copyright year is 2008.
* src/core/c-screen.[ch], src/core/c-window.[ch]: removed
files from Søren's compositor which were removed by the
merge with Iain's compositor but reintroduced by the split
to separate subdirectories.
* src/core/display.c: fix comments.
2008-01-12 Thomas Thurman <tthurman@gnome.org>
* src/core/display.c: reinstated missing first character!
* Doxyfile: correct reordering of blank fields.
2008-01-12 Thomas Thurman <tthurman@gnome.org>
* src/core/display.c: change comments from /*! to /** because the
other way makes doxygen think they are Qt comments, which messes
up brief descriptions.
* Doxyfile: check in so other people can generate documentation
too.
2008-01-07 Thomas Thurman <tthurman@gnome.org>
* src/core/display.c: further commenting (trying to keep comment
addings down to once a day at most so you don't all get spammed
too much).
2008-01-07 Thomas Thurman <tthurman@gnome.org>
* src/core/main.c (main): g_free is a no-op on nulls; there is no
need to test.
2008-01-06 Thomas Thurman <tthurman@gnome.org>
* src/core/display.c: Function commenting marathon; more to come.
2008-01-02 Thomas Thurman <tthurman@gnome.org>
* src/core/xprops.c (meta_prop_get_cardinal), src/core/compositor.c
(timeout_debug): Two really minor coding standards layout tweaks.
2007-12-27 Iain Holmes <iain@gnome.org>
* src/core/compositor.c: Don't do anything in
meta_compositor_free_window, it doesn't seem to be needed and breaks
things very badly. http://bugzilla.gnome.org/show_bug.cgi?id=504876
2007-12-27 Iain Holmes <iain@gnome.org>
* src/core/compositor.c: When a window is mapped, don't set damaged to
TRUE. Fixes a bug when redrawing shadows.
2007-12-25 Iain Holmes <iain@gnome.org>
* src/core/compositor.c: USe the compositor overlay window instead of
the root window.
2007-12-21 Paolo Borelli <pborelli@katamail.com>
* src/core/core.c (meta_invalidate_default_icons): do not leak list.
* src/core/edge-resistance.c
(meta_display_compute_resistance_and_snapping_edges): ditto.
* src/core/workspace.c (meta_workspace_index): small cleanup in list
handling.
2007-12-19 Havoc Pennington <hp@redhat.com>
* src/core/display.c (meta_display_open): fix a third warning
about %d and long int
* src/core/delete.c (io_from_ping_dialog): fix another warning
about long int to %d
* src/core/compositor.c (meta_compositor_new): fix a warning about
long int to %d
* src/core/iconcache.c (meta_read_icons): use
meta_ui_get_fallback_icons() instead of incorrectly including theme.h
* src/ui/ui.c (meta_ui_get_fallback_icons): new function
2007-12-19 Havoc Pennington <hp@redhat.com>
* src/ui, src/core, src/include: sort source files into these
directories according to which part of the WM they are supposed to
be in. In an eventual plan, we should also create
src/compositor/render, src/compositor/fallback and move some of
the compositor stuff into that.
* autogen.sh: require a newer automake, so we don't have to use
a recursive build
* src/ui/tabpopup.c: put in a hack to make the build temporarily
work, want to commit the large rearrangement before fixing this
not to include workspace.h or frame.h
* src/core/iconcache.c (meta_read_icons): temporarily break this
to get the build to work, want to commit the large rearrangement
before fixing this file not to include theme.h
2007-12-19 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: Post-release bump to 2.21.8.
2007-12-19 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.5 release.
2007-12-19 Thomas Thurman <tthurman@gnome.org>
* configure.in: print "Subversion" and not "CVS".
2007-12-18 Thomas Thurman <tthurman@gnome.org>
* configure.in: compositor enabled by default.
2007-12-18 Iain Holmes <iain@gnome.org>
* configure.in, src/theme.c, src/display.c,
src/theme.h, src/display.h, src/theme-parser.c,
src/compositor.c, src/c-screen.c, src/compositor.h,
src/c-screen.h, src/ui.c, src/screen.c, src/ui.h,
src/screen.h, src/c-window.c, src/c-window.h,
src/theme-viewer.c, src/Makefile.am: Merge compositor branch.
2007-12-14 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: Post-release bump to 2.21.5.
2007-12-14 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.3 release.
2007-12-11 Thomas Thurman <tthurman@gnome.org>
* src/theme-parser.c: remove dead code; closes #501365.
2007-12-08 Thomas Thurman <tthurman@gnome.org>
* src/metacity.schemas.in: rewrite long description of
/schemas/apps/metacity/general/focus_new_windows because we
love the translators really. Closes #474889.
2007-12-08 Matthias Clasen <mclasen@redhat.com>
* src/menu.c (meta_window_menu_new): check for null before adding
menu; closes #496054.
2007-12-08 Thomas Thurman <tthurman@gnome.org>
* src/keybindings.c (meta_display_process_key_event): Recur if the
keypress ended a grab, so it can be processed in its own right.
Closes #112560.
2007-12-08 Martin Meyer <elreydetodo@gmail.com>
* src/theme-parser.c (parse_draw_op_element): Fix
typo where wrong variable was checked (reported by
Kjartan Maraas). Closes #501362.
2007-11-19 Lucas Rocha <lucasr@gnome.org>
* src/main.c (main): try to get the session client ID from
DESKTOP_AUTOSTART_ID environment variable in case the --sm-client-id
is not used. Closes #498033.
2007-11-17 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: Post-release bump to 2.21.3.
2007-11-17 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.21.2 release.
2007-11-17 Benjamin Gramlich <benjamin.gramlich@gmail.com>
* src/theme-parser.c (meta_theme_load): make our theme
search compliant to the XDG Base Directory Specification.
Closes #480026.
2007-11-15 Thomas Thurman <thomas@thurman.org.uk>
* src/api.[ch]: remove almost-unused files.
* src/colors.[ch]: move the used parts of api.[ch] in here.
Closes #496947.
2007-11-13 Peter Bloomfield <pbloomfield@bellsouth.net>
* src/window.c: (meta_window_save_user_rect): new helper, saves
only unmaximized dimensions, and not when fullscreen.
(meta_window_move_resize_internal,
meta_window_move_resize_request): use it. (#461927)
2007-11-11 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: Post-release bump to 2.21.2.
2007-11-11 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.21.1 release.
2007-11-11 Thomas Thurman <thomas@thurman.org.uk>
* src/window.c (meta_window_show): adjust expression which decides
whether new windows should not go on top, so that restacking happens
only the first time a window is mapped. Thanks to Olav Vitters for
pointing out the problem. Re-fixes #486445.
2007-11-11 Alex R.M. Turner <armtuk@gmail.com>
* src/tabpopup.c (tab_entry_new, meta_ui_tab_popup_new): Instruct the
GtkLabel in the tabpopup to ellipsize text that is too big. Set the
maximum window width of the tabpopup to screen_width/4, which seems a
sensible size for the popup.
2007-11-09 Elijah Newren <newren gmail com>
* src/window.c (meta_window_new_with_attrs): If a window is
launched without any kind of launch timestamp, grab the current
time and stash it away. When transients of that window are also
launched without a timestamp, we can use the stashed timestamp
from the parent. Fixes #488468.
2007-11-07 Federico Mena Quintero <federico@novell.com>
* src/window-props.c (reload_net_wm_user_time_window): Fix typo;
the arguments to meta_window_reload_property_from_xwindow() were
reversed. This is why the wm_user_time wasn't getting initialized
properly from the _NET_WM_USER_TIME_WINDOW. Fixes part of
http://bugzilla.gnome.org/show_bug.cgi?id=488468
2007-11-06 Peter Bloomfield <pbloomfield@bellsouth.net>
* src/window.c (meta_window_move_resize_internal): save
unmaximized part of client root coords. (#461927)
2007-11-06 Peter Bloomfield <pbloomfield@bellsouth.net>
* src/window.c (meta_window_move_resize_internal): do not save
client root coords while window is maximized. (#461927)
2007-10-30 iain Holmes <iain@gnome.org>
* src/main.c (meta_parse_options): Add --sync option
(main): Check if the --sync option was passed on command line.
2007-10-28 Jans Granseuer <jensgr@gmx.net>
* src/preview-widget.c (meta_preview_finalize): Free title of
preview when the preview is destroyed. Closes #469682.
2007-10-27 Alex R.M. Turner <armtuk@gmail.com>
* src/tabpopup.c (tab_entry_new): Truncate the string to
max_char_per_title before adding bold tags and fix general flow of
function.
2007-10-16 Thomas Thurman <thomas@thurman.org.uk>
* src/window.c (window_would_be_covered): new function.
* src/window.c (meta_window_show): rewrite assertion not
to put window on top in terms of window_would_be_covered();
remove assertion because it's no longer valid; explicitly
don't focus windows that shouldn't be focussed; closes #486445.
2007-10-14 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: Post-branch bump to 2.21.1.
2007-10-03 Kjartan Maraas <kmaraas@gnome.org>
* configure.in: Remove circular dep metacity<->gnomecc.
2007-09-15 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.20.1
2007-09-15 Elijah Newren <newren gmail com>
* configure.in:
* NEWS:
2.20.0 release
2007-09-15 Elijah Newren <newren gmail com>
* src/session.c (warn_about_lame_clients_and_finish_interact):
Patch from Alexey Rusakov to prevent a crash on logout with
metacity subsequently not being restored in future sessions.
Fixes #433253.
2007-09-01 Elijah Newren <newren gmail com>
* HACKING: update; cvs->svn & mention GConf needed
* MAINTAINERS: Make it match idiotic format requirements (I love
you Olav!)
2007-08-07 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.19.89.
2007-08-07 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.19.55 release.
2007-08-06 Thomas Thurman <thomas@thurman.org.uk>
If KEY_AUTO_RAISE_DELAY is undefined or non-integer, it is not treated
as zero.
* src/prefs.c (meta_prefs_init): check type of key, and behave sensibly
if it's unexpected.
* src/prefs.c (find_and_update_list_binding): remove old comment.
2007-08-03 Frederic Crozat <fcrozat@mandriva.com>
* src/delete.c: Fix mangled window title in "Force Quit"
dialog when using non-UTF8 locale. Close #462734.
2007-08-02 Thomas Thurman <thomas@thurman.org.uk>
Move "close" to bottom of window menu; allow workspace list to appear
at any position in the menu. Closes #104026.
* src/menu.c (MetaMenuItemType): added new MENU_ITEM_WORKSPACE_LIST
item.
* src/menu.c (menuitems): reordered "close", added a workspace list.
* src/menu.c (menu_item_new): return null for workspace lists.
* src/menu.c (meta_window_menu_new): handle workspace lists.
2007-07-31 Thomas Thurman <thomas@thurman.org.uk>
* src/window.c (meta_window_show_menu): windows which are
always on top have the "stick" menu option insensitive. (#460997).
2007-07-23 Thomas Thurman <thomas@thurman.org.uk>
* src/window.h (MetaWindow): Put all bitfields together to
help with optimisation. Closes #450271 (for real this time).
2007-07-23 Matthias Clasen <mclasen@redhat.com>
* configure.in:
* src/Makefile.am: Use the correct directory when
installing keybindings. (#454055)
2007-07-22 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.19.55.
2007-07-22 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.19.34 release.
2007-07-22 Rob Bradford <rob@robster.org.uk>
Fix a bug where the window can be focused without being raised
if the maximize is aborted. Fixes #459027.
* src/frames.c (meta_frames_button_press_event,
meta_frames_button_release_event): When maximising only focus
the window once the button press is released.
2007-07-22 Cosimo Cecchi <anarki@lilik.it>
Unset fullscreen is an allowed action where relevant. Fixes #449427.
* src/window.c (set_allowed_actions_hint): Separate FULLSCREEN action
from RESIZE action.
2007-07-22 Yair Hershkovitz <yairhr@gmail.com>
Reverse window buttons and align them to the left for RTL locales.
Fixed #92212.
* src/prefs.c (button_layout, init_button_layout, update_button_layout):
Support reversing and left-aligning of buttons for both Gconf and
NO-Gconf modes.
* src/main.c (main): Call meta_ui_init() before meta_prefs_init().
meta_prefs_init() check for RTL locales which is initialized in
meta_ui_init().
* src/theme.c (meta_frame_layout_calc_geometry): Fixed access to
button_layout to stop iterating when getting to a
META_BUTTON_FUNCTION_LAST value.
2007-06-23 Thomas Thurman <thomas@thurman.org.uk>
* src/window.c (MetaWindow): Put all bitfields together to
help with optimisation. Closes #450271.
2007-06-18 Thomas Thurman <thomas@thurman.org.uk>
* src/main.c (version): Update copyright year because it was
five years out of date.
2007-06-18 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.19.34.
2007-06-18 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.19.21 release.
2007-06-18 Thomas Thurman <thomas@thurman.org.uk>
* src/place.c (find_first_fit, meta_window_place): Only open new
windows on the current xinerama. Closes #145503, for now.
2007-06-17 Thomas Thurman <thomas@thurman.org.uk>
* src/screen.[ch] (meta_screen_apply_startup_properties): return a
boolean instead a void, to show whether startup properties were
applied. Also some commenting.
* src/window-props.c: (reload_net_startup_id): Only activate the
window if the startup_id was actually changed. Closes #400167.
2007-06-16 Damien Carbery <damien.carbery@sun.com>
* effects.h: MetaCloseEffect and MetaFocusEffect, which were empty
structs, #ifdeffed out because they broke the build on Solaris.
Closes #397296.
2007-06-16 Damien Carbery <damien.carbery@sun.com>
* window.h: make prototype of meta_window_unqueue match
implementation. Closes #446535.
2007-06-10 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.19.21.
2007-06-10 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.19.13 release.
2007-06-10 Thomas Thurman <thomas@thurman.org.uk>
Refactor thrice-duplicated queue code in window.c. Closes #376760.
* src/window.c (meta_window_queue, meta_window_unqueue):
New functiortl.patchns.
* src/window.[ch] (meta_window_unqueue_*, meta_window_queue_*):
Removed functions.
* src/window.c (meta_window_new_with_attrs, meta_window_free,
meta_window_flush_calc_showing, queue_calc_showing_func,
meta_window_minimize, meta_window_unminimize, meta_window_maximize,
meta_window_make_fullscreen, meta_window_shade,
meta_window_unshade, meta_window_move_resize_internal,
window_stick_impl, window_unstick_impl,
meta_window_client_message, process_property_notify): Modified to
use new queueing functions.
* src/window.c (idle_move_resize, idle_update_icon,
idle_calc_showing): update to receive queue number from pointer.
* src/window.h (MetaQueueType): new enum.
* src/window.h (MetaWindow): *_queued replaced with is_in_queue
bitfield.
* src/core.c (meta_core_queue_frame_resize):
* src/display.c (event_callback,
meta_display_queue_retheme_all_windows): Using new queueing functions.
* src/frame.c (meta_window_destroy_frame): Using new queueing functions.
* src/screen.c (queue_resize, meta_screen_resize_func,
queue_windows_showing): Using new queueing functions.
* src/window-props.c (reload_mwm_hints, reload_wm_hints,
reload_transient_for): Using new queueing functions.
* src/workspace.c (meta_workspace_add_window,
meta_workspace_remove_window, meta_workspace_queue_calc_showing,
meta_workspace_invalidate_work_area): Using new queueing functions.
2007-06-09 Thomas Thurman <thomas@thurman.org.uk>
* src/50-metacity-key.xml.in: added switch_group; closes #444879.
2007-06-08 Elijah Newren <newren gmail com>
* src/metacity.schemas.in:
Update the raise_on_click description to try to prevent misuses,
to appropriately warn users, and to stop wasting the time of
application developers. #445447, #389923
2007-06-06 Thomas Thurman <thomas@thurman.org.uk>
* frames.c, core.[ch]: changed all tabs to spaces.
* core.[ch] (meta_core_get_client_size, meta_core_window_has_frame,
meta_core_titlebar_is_onscreen, meta_core_get_client_xwindow,
meta_core_get_frame_flags, meta_core_get_frame_type,
meta_core_get_mini_icon, meta_core_get_icon, meta_core_get_position,
meta_core_get_size, meta_core_get_frame_workspace,
meta_core_get_frame_extents, meta_core_get_screen_size): Removed
and replaced with meta_core_get().
* core.[ch] (meta_core_get): New function.
* core.h (MetaCoreGetType): New enum.
* frames.c (meta_frames_ensure_layout, meta_frames_calc_geometry,
meta_frames_get_geometry, meta_frames_apply_shapes,
meta_frame_titlebar_event, meta_frames_button_press_event,
populate_cache, clip_to_screen, meta_frames_paint_to_drawable,
meta_frames_set_window_background, get_control): Replace use of
removed functions in ui.c with meta_core_get().
All this should make things a little faster. Closes #377495.
2007-06-04 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: Added translators' names from 2.19.8 (sorry, folks:
I forgot to save NEWS with their names in it before shipping.)
2007-06-04 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.19.13.
2007-06-04 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.19.8 release.
2007-06-04 Thomas Thurman <thomas@thurman.org.uk>
* src/metaaccellabel.c (meta_accel_label_expose_event): fix
label layout for RTL languages. Closes #433400.
2007-06-03 Thomas Thurman <thomas@thurman.org.uk>
* src/frames.c (meta_frames_ensure_layout): Pango layout for
titlebars should take LTR/RTL-ness from the underlying widget
and not from sniffing the content. Closes #438944.
2007-05-25 Yair Hershkovitz <yairhr@yahoo.com>
* src/workspace.c (meta_workspace_get_neighbor): Add support
for RTL languages so that alt-tab, etc., go the other way.
* src/keybindings.c (handle_activate_menu): In RTL locales,
pop up the menu on the right-hand side when the menu keystroke
is pressed.
* src/fixedtip.c (meta_fixed_tip_show): right-justify tooltips
in RTL locales.
* src/menu.c (popup_position_func): popup menus in RTL locales
are flush with the right-hand side of the window where possible.
* src/frames.c (show_tip_now, meta_frames_button_press_event):
tooltips are aligned with the right-hand side of buttons in
RTL locales.
* src/ui.[ch] (meta_ui_get_direction, enum MetaUIDirection):
New content.
* src/window.c (meta_window_show_menu): "move left" appears above
"move right" in the window menu for LTR locales, and vice versa
for RTL locales.
This is all to close bug #387893.
2007-04-24 Linus Torvalds <torvalds@woody.linux-foundation.org>
* src/prefs.[ch] (init_action_meta_prefs, meta_prefs_init,
action_change_titlebar, change_notify, update_action_titlebar,
meta_preference_to_string): Add code to configure what happens
when the titlebar is right or middle clicked as well as
double clicked.
2007-04-23 Elijah Newren <newren gmail com>
* configure.in: post-release bump to 2.19.8.
2007-04-23 Elijah Newren <newren gmail com>
* NEWS: 2.19.5 release.
2007-04-23 Elijah Newren <newren gmail com>
Fix some uninitialized memory usage errors. #427385
* src/frame.c (meta_window_ensure_frame):
* src/frames.c (meta_frames_manage_window):
Do not try to set the window background in
meta_frames_manage_window() since the frame window is not yet
created and not yet registered with the corresponding MetaWindow.
Do it inside meta_window_ensure_frame() instead.
2007-04-17 Elijah Newren <newren gmail com>
Fix some fallout from #426519; update user_rect for all position
changes prior to the window being marked as placed. Prevents
emacs in particular from flickering on start and always being
shoved to the upper-left corner.
* src/window.c (meta_window_move_resize_internal):
Record position in user_rect if the window is not yet marked as
placed too
* src/window.c (struct MetaWindow, meta_window_new_with_attrs,
meta_window_move_resize_internal):
Remove window->user_has_move_resized; it's not needed or used
anymore.
* src/window.[ch] (meta_window_get_user_position):
Remove this function as it is no longer needed or used.
2007-04-16 Elijah Newren <newren gmail com>
Prevent metacity from "forgetting" which machine a window is on.
#418552
* src/window.c (meta_window_new_with_attrs): reorder the property
loading so that we know the wm_client_machine when we load the
name of the window and can modify the window name accordingly.
2007-04-16 Elijah Newren <newren gmail com>
* configure.in: post-release bump to 2.19.5.
2007-04-16 Elijah Newren <newren gmail com>
* NEWS: 2.19.3 release.
2007-04-15 Elijah Newren <newren gmail com>
Preserve stacking order across restarts.
* src/display.c (meta_display_unmanage_windows_for_screen):
unmap windows in stacking order so that stacking is preserved upon
shutdown
* src/display.[ch] (meta_display_stack_cmp):
* src/session.c (stack_cmp, save_state):
rename stack_cmp() -> meta_display_stack_cmp() and move it to a
different function so that it can be used in both
session.c:save_state() and
meta_display_unmanage_windows_for_screen()
2007-04-15 Elijah Newren <newren gmail com>
Remove incorrect usage of window.h from menu.c. See #426791 &
#382962.
* src/menu.c (enum MetaMenuItemType, variable menuitems,
meta_menu_item_new):
cleanup: add a MENU_ITEM_RADIOBUTTON for the sticky stuff
* src/menu.c (variable menuitems):
* src/core.c (meta_core_get_menu_accelerator):
* src/window.c (menu_callback, meta_window_show_menu):
* src/common.h (enum MetaMenuOp):
reinstate META_MENU_OP_UNABOVE
* src/menu.c (meta_window_menu_new):
remove hacks (using inappropriate data) for STICK/UNSTICK/ABOVE
and clean it up while just setting STICK/UNSTICK activeness as
necessary
* src/menu.[ch] (meta_window_menu_new):
* src/ui.[ch] (meta_ui_window_menu_new):
make the active_workspace parameter an unsigned long
2007-04-15 Bruno Boaventura <brunobol@gnome.org>
* src/menu.c (meta_window_menu_new): don't show the current
workspace as a possible workspace to switch to. Fixes #426791.
2007-04-12 Elijah Newren <newren gmail com>
* src/place.c (meta_window_place): do not auto-maximize windows
larger than the workarea in only a single direction. Fixes
#419810.
2007-04-11 Elijah Newren <newren gmail com>
Make sure apps have correct info about their coordinates, even on
unmap. Fixes temporary hang with libXt (XtVaSetValues setting x &
y coordinates). #399552.
* src/frame.c (meta_window_destroy_frame): Add a comment noting
that the current choice causes the need for a ConfigureNotify
event
* src/window.c (meta_window_free): Send a configure notify event
due to our XReparentWindow coordinate choices on withdrawal,
(unmaximize_window_before_freeing): no need to send a configure
notify from here since it is always done in meta_window_free new,
(send_configure_notify): have to special case the coordinates used
when withdrawing the window
2007-04-11 Thomas Thurman <thomas@thurman.org.uk>
Workaround for a gdk bug which dies with BadAlloc if you try
to allocate an insanely huge rectangle for an insanely huge
window. Fixes #399529.
2007-04-11 Elijah Newren <newren gmail com>
Advertise support of Above and Below operations (assuming the
proposed EWMH additions of _NET_WM_ACTION_(ABOVE|BELOW) will be
accepted, otherwise these changes will have to be modified). Part
of #115247.
* src/display.[ch] (meta_display_open, struct MetaDisplay):
* src/screen.c (set_wm_check_hint):
Add support for _NET_WM_ACTION_ABOVE and _NET_WM_ACTION_BELOW
* src/window.c (set_allowed_actions_hints):
add active_above and action_below
2007-04-10 Elijah Newren <newren gmail com>
* src/window.c (recalc_window_features): make sure to set
_NET_WM_ALLOWED_ACTIONS so that libwnck menus don't have sensitive
but ineffective menu items. The "On Top" item is now buggy, but
due to the fact that _NET_WM_ACTION_ABOVE is not yet defined in
the EWMH. Fixes #115247.
2007-04-09 Elijah Newren <newren gmail com>
Add support for _NET_MOVERESIZE_WINDOW. Based on patch from
Magnus Therning. #344521.
* src/display.c (handle_net_moveresize_window, event_callback):
Remove handle_net_moveresize_window() and the call to it; this
code was highly buggy, though to be fair it was never tested and
had simply been put into the code in commented out form.
* src/screen.c (set_supported_hint):
add atom_net_moveresize_window
* src/window.[ch]:
(meta_window_configure_request, meta_window_move_resize_request):
Split out the moving/resize part of the configure request and put
it into meta_window_move_resize_request
(meta_window_client_message):
check for NET_MOVERESIZE_WINDOW messages and call
meta_window_move_resize_request() with the appropriate parameters
to handle them
(meta_window_move_resize_internal):
fix some of the big comment at this function -- it wasn't quite
right, use the passed in gravity instead of
window->size_hints.win_gravity when calling adjust_for_gravity()
to make sure the correct adjustments are used.
(meta_window_get_gravity_position,
meta_window_get_geometry, meta_window_move_resize_request):
add a gravity parameter to meta_window_get_gravity_position and
have it use that gravity instead of window->size_hints.win_gravity
2007-04-09 Elijah Newren <newren gmail com>
* configure.in: post-release bump to 2.19.3.
2007-04-09 Elijah Newren <newren gmail com>
* NEWS: 2.19.2 release.
2007-04-08 Elijah Newren <newren gmail com>
Remove grab_start_serial, which we expect to be an ancient attempt
to workaround sloppy/mouse focus bugs that have since been
correctly fixed. May fix some race conditions. May cause nasty
bugs in sloppy/mouse focus modes. We'll find out soon enough...
See #304430.
* src/display.c (event_callback):
remove event->xany.serial >= display->grab_start_serial in several
event callback handlers
* src/display.[ch] (struct _MetaDisplay, meta_display_begin_grab_op):
* src/keybindings.c (do_choose_window, handle_workspace_switch):
* src/frames.c (meta_frames_button_press_event):
* src/core.[ch] (meta_core_begin_grab_op):
* src/window.c (meta_window_client_message, meta_window_begin_grab_op):
don't require an event_serial to be passed to
meta_display_begin_grab_op () and don't record it anymore.
* src/ui.c (struct _EventFunc, filter_func,
meta_ui_get_last_event_serial)
* src/core.h (meta_ui_get_last_event_serial):
remove meta_ui_get_last_event_serial() function (don't ask me why
it was declared in core.h) and the last_even_serial field of
_EventFunc
2007-04-08 Elijah Newren <newren gmail com>
Fix move/resize events in relation to combinations of
ConfigureRequest and WM_NORMAL_HINTS change notifications (plus a
few code cleanups). Fixes #426519.
* src/window.c (meta_window_move_resize_now):
move to the user_rect position, not some weird combination of rect
and user_rect
* src/window.c (meta_window_configure_request):
set user_rect in response to ConfigureRequest events (after the
ConfigureRequest values have been constrained) and add a big
comment explaining this change, remove unused only_resize variable
and irrelevant huge FIXME comment about it
* src/window.[ch] (meta_window_get_client_root_coords):
new function
* src/display.c (meta_display_begin_grab_op):
* src/keybindings.c (process_keyboard_move_grab):
* src/window.c (meta_window_unmaximize,
meta_window_move_resize_internal, meta_window_begin_wireframe,
update_move, meta_window_refresh_resize_popup,
warp_grab_pointer)
combine multi-step client rect root coord setting into a single
function call to meta_window_get_client_root_coords()
2007-04-08 Thomas Thurman <thomas@thurman.org.uk>
* ChangeLog: removed conflict line.
2007-04-07 Elijah Newren <newren gmail com>
* src/prefs.[ch] (screen_bindings array,
META_KEYBINDING_SET_SPEW_MARK definition):
* src/keybindings.c (handle_spew_mark, screen_handlers array):
Add an (unbound by default) keybinding for setting spew marks in
verbose debugging logs. I'm not sure why this was ever removed;
I've wanted it so many times.
* HACKING:
valgrind wants --log-file not --logfile.
2007-04-07 Elijah Newren <newren gmail com>
* src/window.c (meta_window_free): Fix memory bug (invalid free)
introduced in 2007-04-02 strut cleanup commit. Part of #427385.
2007-04-05 Thomas Thurman <thomas@thurman.org.uk>
* src/theme_parser.c: if theme is invalid and therefore got
freed, don't attempt to read from it. Closes #423855.
2007-04-05 Bastien Nocera <hadess@hadess.net>
* src/50-metacity-desktop-key.xml.in:
* src/50-metacity-key.xml.in:
* src/Makefile.am:
Add new control-center key bindings definitions (Closes: #420145)
2007-04-04 Elijah Newren <newren gmail com>
* configure.in: post-release bump to 2.19.2.
2007-04-04 Elijah Newren <newren gmail com>
* NEWS: 2.19.1 release.
2007-04-04 Elijah Newren <newren gmail com>
* src/window.c (meta_window_move_resize_internal): send synthetic
configurenotify events also in response to MapRequest events when
the window has a frame and the application specifies PPosition or
UPosition hints. I believe they are already sent for all other
cases. Should fix #322840. Fixes the testcase at least. :)
2007-04-04 Elijah Newren <newren gmail com>
Fix lots of little issues with min/max constraints and size
increment constraints. Fixes #329152, #418395, and possibly
others.
* src/window-props.c (meta_set_normal_hints):
Do more checking to make sure application specified constraints
are self-consistent, modifying the size_hints as necessary to
achieve self-consistency.
* src/constraints.c (setup_constraint_info): remove ugly
copy-pasto, (constrain_size_increments): be careful that fixing
violation of the constraints doesn't cause a violation of the
minimum size constraints.
* src/window.c (ensure_size_hints_satisfied): new function,
(meta_window_unmaximize, meta_window_unmake_fullscreen): the
saved_rect may no longer be valid (as in the case of #329152) so
call ensure_size_hints_satisfied to fix it up.
* doc/how-to-get-focus-right.txt: Some minor spacing and wording
fixes completely unrelated to the rest of this commit
2007-04-03 Elijah Newren <newren gmail com>
* src/window.c (meta_window_unmaximize):
Only use saved_rect for determining the position to unmaximize to
for the previously-maximized direction(s). Fixes #355497.
2007-04-03 Elijah Newren <newren gmail com>
* MAINTAINERS: Update. #412319.
2007-04-03 Elijah Newren <newren gmail com>
* src/display.c (meta_display_update_active_window_hint):
_NET_ACTIVE_WINDOW is a single xwindow id, not two.
2007-04-03 Elijah Newren <newren gmail com>
* src/keybindings.c (handle_panel_keybinding): turn mouse_mode off
to prevent focus issues with the run application dialog. Fixes
#374752.
2007-04-03 Elijah Newren <newren gmail com>
Avoid some crashes when dragging windows partially offscreen.
Possible (or at least partial) fix for #353513.
* src/edge-resistance.c (apply_edge_resistance): be more careful
about calls to find_index_of_edge_near_position() returning
possibly invalid indices. Also, add a warning comment to
find_index_of_edge_near_position().
2007-04-03 Elijah Newren <newren gmail com>
Patch from Carlo Wood to do some miscellaneous code cleanups found
while working on #358311.
* src/constraints.c (do_screen_and_xinerama_relative_constraints):
nicer way of avoiding compilation warning
* src/boxes.c (meta_rectangle_clamp_to_fit_into_region,
meta_rectangle_clip_to_region, meta_rectangle_shove_into_region):
Much cleaner way of ignoring invalid boxes in comparisons
2007-04-02 Elijah Newren <newren gmail com>
Patch from Carlo Wood to fix handling of unidirectional
maximization and partial struts. #358311.
* src/constraints.c (constrain_maximization):
determine target size for unidirectionally maximized windows by
determining how far they can be maximized without hitting
orthogonal struts. Avoids weird "empty spaces".
* src/boxes.[ch] (meta_rectangle_expand_to_avoiding_struts):
new function
2007-04-02 Elijah Newren <newren gmail com>
Make the strut lists (stored in workspaces) record both the
rectangle and the side that the strut is on. Lots of code
cleanups relating to struts.
* src/boxes.h (struct MetaStrut):
new struct for struts
* src/window.[ch] (struct MetaStruts, struct MetaWindow,
meta_window_update_struts):
overhaul to make window's struts remember their side as well as
their rectangular location, and just use a list instead of several
copies of near-identical code for left/right/top/bottom (allowing
us to nuke MetaStruts struct as well)
* src/testboxes.c (new_meta_strut, get_strut_list):
* src/workspace.c (ensure_work_areas_validated):
* src/boxes.c (meta_rectangle_get_minimal_spanning_set_for_region,
meta_rectangle_expand_to_avoiding_struts,
get_disjoint_strut_rect_list_in_region, fix_up_edges,
meta_rectangle_find_onscreen_edges,
meta_rectangle_find_nonintersected_xinerama_edges):
modify to handle struts being rectangle + side instead of just rectangle
* src/workspace.c (ensure_work_areas_validated):
simplify strut list creation considerably given MetaWindow change,
modify work_area computations to take advantage of region
computations being done (makes the code shorter as well as more
robust against pathological cases).
* src/util.[ch] (meta_free_gslist_and_elements):
new convenience function
* src/common.h (enum MetaDirection):
* src/edge-resistance.c (movement_towards_edge):
* src/boxes.c (meta_rectangle_edge_aligns,
rectangle_and_edge_intersection, split_edge):
Add more MetaDirection fields for convenience
* src/boxes.h (enum FixedDirections):
* src/constraints.c (setup_constraint_info, place_window_if_needed):
add a FIXED_DIRECTION_NONE to the FixedDirections enum to make
code more clear
2007-04-01 Bruno Boaventura <brunobol@gnome.org>
* src/theme.c (kill_window_question): Fallback to NORMAL state after
checking for the middle button. Fixes bug #419043.
Patch from Benjamin Berg <benjamin@sipsolutions.net>.
2007-03-31 Elijah Newren <newren gmail com>
Clean up event mask handling and meta_create_offscreen_window, to
prevent nasty metacity/gdk interactions causing hangs. See #354213.
* src/screen.[ch] (meta_create_offscreen_window):
* src/display.c (meta_display_open):
* src/screen.c (meta_screen_new):
Add a valuemask parameter to meta_create_offscreen_window
* src/display.c (meta_display_open):
make it explicit that we can't rely on PropertyNotify events for
the leader_window due to nasty metacity/gdk interaction
* src/session.c (warn_about_lame_clients_and_finish_interact):
remove cut-and-paste code for timestamp pinging and just call
meta_display_get_current_time_roundtrip
2007-03-30 Elijah Newren <newren gmail com>
Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on
context switches. Fixes #354213.
* src/display.c (meta_display_open):
* src/display.h (struct _MetaDisplay):
* src/screen.c (set_supported_hint):
new atom
* src/display.c (meta_display_open,
meta_display_get_current_time_roundtrip):
* src/display.h (struct _MetaDisplay):
create a dedicated timestamp pinging window instead of reusing
display->leader_window
* src/display.c (event_callback):
* src/window-props.c (reload_net_wm_user_time_window):
* src/window.c (meta_window_new_with_attrs, meta_window_free,
process_property_notify):
* src/window.h (struct _MetaWindow):
monitor property notify events on _NET_WM_USER_TIME_WINDOW windows too
* src/window-props.[ch]:
new meta_window_reload_propert(y|ies)_from_xwindow() functions
* src/window-props.[ch]
(init_net_wm_user_time_window, reload_net_wm_user_time_window,
meta_display_init_window_prop_hooks):
* src/window.c (meta_window_new_with_attrs):
new hooks to handle new atom
2007-03-26 Josselin Mouette <joss@malsain.org>
* src/session.c (meta_session_init): if previous client ID
was supplied, use it in filename.
* src/session.c (set_clone_restart_commands): use --sm-client-id
in command line to restore session, not original file name.
* src/session.c (regenerate_save_file): generate filename using
client ID and not original file name.
* src/session.c (base_save_file): removed function.
Closes GNOME 407981, Debian 391287, Debian 315169.
2007-03-25 Elijah Newren <newren gmail com>
* configure.in: bump version to 2.19.1; doesn't make sense to have
the development version have a version number less than the stable
version. ;-)
2007-03-20 Arthur Taylor <theycallhimart@gmail.com>
* src/frames.c (meta_frames_apply_shapes): adjusted the rounded
corners so that they fit nicely with the arcs around them.
Fixes #399373.
2007-03-17 Kjartan Maraas <kmaraas@gnome.org>
* src/ui.c: Remove #include <pango/pangox.h> since it's
apparently not installed anymore. Builds just fine without it too.
2007-03-10 Charlie Brej <cbrej@cs.man.ac.uk>
* src/metacity.schemas.in: add action_{middle|right}_click_titlebar.
Closes #408903.
2007-03-09 Linus Torvalds <torvalds@woody.linux-foundation.org>
* src/frames.c (meta_frame_middle_click_event,
meta_frame_right_click_event): honour preferences.
* src/prefs.[ch] (meta_prefs_get_action_middle_click_titlebar,
meta_prefs_get_action_right_click_titlebar): new functions.
2007-02-20 Kjartan Maraas <kmaraas@gnome.org>
* Makefile.am: Add MAINTAINERS to EXTRA_DIST so others
can find out where to send patches. Hi Linus :-)
2007-02-17 Linus Torvalds <torvalds@woody.linux-foundation.org>
* src/common.h (MetaActionTitleBar): renamed from
MetaActionDoubleClickTitleBar; added _LOWER and _MENU.
* src/frames.c (meta_frame_titlebar_event): renamed
enums as above; added code to handle _LOWER and _MENU,
which is moved in from meta_frame_{middle|right}_click_event.
* src/frames.c (meta_frame_middle_click_event,
meta_frame_right_click_event): rewrote in terms of
meta_frame_titlebar_event.
* src/prefs.c: removed "DoubleClick" from names as above.
* src/prefs.c (action_titlebar_from_string): added cases
for "lower" and "menu".
Fixes #408902.
2007-02-17 Linus Torvalds <torvalds@woody.linux-foundation.org>
* src/frames.c (meta_frames_button_press_event): Split out
code for different kinds of click into separate functions.
Fixes #408899.
* src/frames.c (meta_frame_titlebar_event,
meta_frame_double_click_event, meta_frame_middle_click_event,
meta_frame_right_click_event): new functions.
2007-01-27 Bruno Boaventura <brunobol@gnome.org>
* src/metacity-dialog.c (kill_window_question): Change dialog
icon because gnome-icon-theme have no more "panel-force-quit".
Patch from Jaap A. Haitsma <jaap@haitsma.org>.
2007-01-16 Thomas Thurman <thomas@thurman.org.uk>
* doc/compositor-control.txt: fix silly thinko.
2007-01-16 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.17.8.
2007-01-16 Thomas Thurman <thomas@thurman.org.uk>
* doc/compositor-control.txt: New file.
2007-01-16 Thomas Thurman <thomas@thurman.org.uk>
* src/compositor.c (meta_compositor_new): Removed
#ifdef SPIFFY_COMPOSITOR throughout the file. Replaced with check
for environment variable METACITY_BLING, which may be temporary.
2007-01-13 Bruno Boaventura <brunobol@gnome.org>
* src/frames.c (meta_frames_motion_notify_event): Unmaximize
button must keep preesed appearence when clicked (hold down),
move off, and back over the button. Fixes #395560. Patch from
Mad Alex <madalexonline@yahoo.co.uk>.
2007-01-02 Thomas Thurman <thomas@thurman.org.uk>
* src/c-screen.c (meta_comp_screen_redirect): Remove double unref
of stacker object. Fixes #387761.
2006-12-27 Bruno Boaventura <brunoboaventura@gmail.com>
Move "On Top" option in menu. Fix #382962.
* src/common.h, src/core.c: Remove META_MENU_OP_UNABOVE.
* src/menu.c: remove unabove menu item and put above item
next "Always on Visible Viewport".
* src/window.c: remove handles of META_MENU_OP_UNABOVE.
2006-12-21 Thomas Thurman <thomas@thurman.org.uk>
* src/compositor.c: Disabled bling for now; added function for
handling CirculateNotify XEvent; some commenting.
* src/compositor.h, src/c-window.c: fix function prototype visibility.
2006-12-12 Thomas Thurman <thomas@thurman.org.uk>
* src/compositor.c (do_effect): Sanity check to avoid dereferencing
a null pointer.
2006-12-10 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.17.5.
2006-12-10 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.17.3 release.
2006-12-05 Christof Krüger <mail@pop2wap.net>
* src/window.c (update_move): Fix flickering about when dragging
maximised windows between xineramas. Closes #358715.
2006-12-03 Federico Mena Quintero <federico@novell.com>
Fix http://bugzilla.gnome.org/show_bug.cgi?id=381127:
* src/window.c (idle_calc_showing): Grab the server while the
windows are being shuffled. First show the windows to be shown,
and then hide the windows to be hidden, in order to minimize
the number of expose events.
2006-11-15 Bruno Boaventura <brunoboaventura@gmail.com>
2006-11-15 Björn Lindqvist <bjourne@gmail.com>
* src/menu.c: added MetaMenuItemType enum; added it
to MenuItem; added values of this type to menuitems
array.
* src/menu.c (menu_item_new): rewrite to take a MenuItem
instead of a set of parameters describing the menu item.
* src/menu.c (meta_window_menu_new): use proper checkboxes
or radio buttons on the window menu. (#343108)
* src/window.c (meta_window_show_menu): unstick and stick
are always shown.
2006-11-06 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.17.3.
2006-11-06 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: pre-release bump to 2.17.2.
* NEWS: 2.17.2 release.
2006-11-05 Priit Laes <amd@store20.com>
* src/main.c, src/ui.c: remove deprecated gtk stuff.
2006-11-05 Bruno Boaventura <brunoboaventura@gmail.com>
* src/theme.c, src/testgradient.c: remove deprecated gtk stuff.
2006-11-05 Kjartan Maraas <kmaraas@gnome.org>
* src/ui.c: use g_strdup to allocate a string, not strdup. Fixes
#363354.
* src/metacity-dialog.c: add missing spaces to string. Fixes
#363355.
2006-11-05 Justin Mason <jm@jmason.org>
* src/keybindings.c: implement handle_move_to_{side|corner}_* to
allow the user to flip a window to the side or corner of the
screen. Fixes #317884.
* src/prefs.h: keybindings for the above.
* src/metacity.schemas.in: keybindings for the above.
2006-11-05 Elijah Newren <newren gmail com>
* src/frames.c: improved rounding of rounded corners. Fixes #360542,
mostly.
2006-10-30 Dan Mick <dan.mick@sun.com>
* src/window.c: (__window_is_terminal): Fix strict focus
mode by picking up on res_class. Fixes #361054, strict focus
mode still not working; should look for res_class, not res_name
2006-10-16 Elijah Newren <newren gmail com>
* NEWS: 2.17.1 release.
2006-10-13 Carlo Wood <carlo@alinoe.com>
Fix cases when titlebar is allowed offscreen and shouldn't be (and
vice-versa). #333995.
* src/display.[ch] (struct _MetaDisplay): add grab_frame_action
member
* src/display.[ch] (meta_display_begin_grab_op):
* src/window.[ch] (meta_window_begin_grab_op):
* src/core.[ch] (meta_core_begin_grab_op):
Add frame_action parameter (core & window versions pass it on to
display)
* src/display.c (event_callback):
* src/window.c (meta_window_begin_grab_op,
meta_window_client_message, menu_callback):
* frames.c (meta_frames_button_press_event):
* keybindings.c (do_choose_window, handle_begin_move,
handle_begin_resize, handle_workspace_switch):
Pass whether the action should be considered a 'frame_action',
which will be used to determine whether to force the titlebar to
remain onscreen, to meta_*_begin_grab_op
* constraints.c (constrain_titlebar_visible):
Replace previous ugly hack by using grab_frame_action (and whether
the action is a user action) to determine whether to enforce the
titlebar_visible constraint.
2006-10-10 Elijah Newren <newren gmail com>
* src/draw-workspace.c (draw_window, wnck_draw_workspace): Patch
from Bruno Boaventura to sync metacity workspace previews with
libwnck. #341893
2006-10-07 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.17.1.
2006-10-07 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.17.0 release.
2006-10-07 Thomas Thurman <thomas@thurman.org.uk>
* src/themes/Crux/metacity-theme-2.xml: removed hide_buttons.
Closes #360498.
2006-10-07 Thomas Thurman <thomas@thurman.org.uk>
* MAINTAINERS: added myself.
2006-10-07 Thomas Thurman <thomas@thurman.org.uk>
* doc/theme-format.txt: described new theme format.
* src/themes/Bright, src/themes/Crux: added version 2 themes.
2006-10-07 Thomas Thurman <thomas@thurman.org.uk>
* common.h: Added "above" to the list of flags a frame can have, so
that we know when to mark it as always on top. Added six grab ops,
one to do and one to undo each of the three new titlebar buttons
(shade, above, stick). Added six new button functions, similarly.
(#96229)
* frame.c (meta_frame_get_flags): If a frame has the WM_STATE_ABOVE X
attribute, set META_FRAME_ABOVE in its flags.
* frames.c (meta_frames_apply_shapes): Allow variable amounts of
rounding. (#113162)
* frames.c (show_tip_now, meta_frames_paint_to_drawable, control_rect,
get_control): extend handling of existing buttons to the
3*2 new kinds of button. (#96229)
* frames.c (meta_frames_button_press_event): translate clicks on the 3*2
new kinds of button to the new grab ops. (#96229)
* frames.c (meta_frames_button_release_event): implement the various
actions for the 3*2 new kinds of button. (#96229)
* frames.c (meta_frames_update_prelit_control,
meta_frames_motion_notify_event): extend existing motion
notifications for buttons to the 3*2 new kinds of button. (#96229)
* frames.c (meta_frames_set_window_background): handle specified
background colours and alpha transparency. (#151261)
* frames.h (MetaFrameControl): New control types for the 3*2 new kinds
of button. (#96229)
* iconcache.[ch] (meta_read_icons): use theme's fallback icons if a
window has no icon; use metacity's fallback icons only if the theme
does not provide any. (#11363)
* iconcache.[ch] (meta_invalidate_default_icons (new function)): clear
icon cache on windows using default icons, and update them. (#11363)
* main.c (main): added \n to error message.
* prefs.c (button_function_from_string): extend for 3 new button
types. (#96229)
* prefs.c (button_opposite_function (new function)): return a button
function's inverse (shade -> unshade, etc) (#96229)
* prefs.c (update_button_layout): allocate space for a button's
inverse, if it has one. (#96229)
* theme-parser.c (ParseState): add state for fallback icons (#11363)
* theme-parser.c (ParseInfo): add format_version; remove
menu_icon_* (#114305)
* theme-parser.c (parse_positive_integer): add lookup for integer
constants (#331356)
* theme-parser.c (parse_rounding (new function)): parse window
rounding amount (#113162)
* theme-parser.c (parse_alpha): don't set error if the number can't
be parsed since it'll already be set; change tolerance in comparison
from 1e6 to 1e-6
* theme-parser.c (parse_color (new function)): parse colour, including
possible constant lookup.
* theme-parser.c (parse_toplevel_element): allow defining of various
new kinds of constant; allow
hide_buttons (#121639) and more detailed rounding attributes on
<frame_geometry> (#113162); allow background and alpha attributes on
<frame_style>; (#151261) remove support for <menu_icon> except as
stub; (#114305) add support for loading stock images (#113465); add
support for <fallback>. (#11363))
* theme-parser.c (parse_draw_op_element): add from and to attribute
for arcs. (#121603)
* theme-parser.c (parse_style_element): add check for theme version
supporting a button function. (#96229)
* theme-parser.c (parse_style_set_element): add ability for shaded
windows to be resizable (#114304)
* theme-parser.c (meta_theme_load): add theme versioning routine.
* theme.c ( meta_frame_layout_get_borders): return rectangles for
the new 3*2 kinds of button, except where they're
inapplicable. (#96229)
* theme.c (meta_frame_layout_calc_geometry): don't format buttons on
windows with no buttons (#121639); strip the 3*2 new kinds of button
correctly (#96229); allow variable amounts of rounding (#113162).
* theme.c (meta_frame_style_new): set alpha to 255 by
default. (#151261)
* theme.c (meta_frame_style_unref): free colour spec if
allocated. (#151261)
* theme.c (meta_frame_style_validate): it's only an error not to
include a button if that button is valid in the current
theme. (#96229)
* theme.c (button_rect): return rectangles for the new 3*2 kinds
of button. (#96229)
* theme.c (meta_frame_style_set_unref): free differently resizable
shaded styles. (#114304)
* theme.c (get_style): look up differently resizable styles
for shaded windows. (#114304)
* theme.c (free_menu_ops (removed function), get_menu_icon
(removed function), meta_theme_draw_menu_icon (removed function),
meta_menu_icon_type_from_string (removed function),
meta_menu_icon_type_to_string (removed function),
meta_theme_free, meta_theme_validate): removed menu icon code. (#114305)
* theme.c (meta_theme_load_image): add size_of_theme_icons
parameter. (#113465)
* theme.c (meta_theme_define_color_constant (new function),
meta_theme_lookup_color_constant (new function)): allow
definition of colour constants. (#129747)
* theme.c (meta_button_type_from_string, meta_button_type_to_string):
add the 3*2 new kinds of button. (#96229)
* theme.c (meta_theme_earliest_version_with_button (new function)):
return the theme version each button was introduced in. (#96229)
* theme.h ( MetaFrameLayout): add "hide_buttons" flag (#121639) and
corner radiuses. (#113162)
* theme.h (MetaFrameGeometry): add rectangles for the 3*2 new
buttons. (#96229)
* theme.h (MetaButtonType): the 3*2 new buttons. (#96229)
* theme.h (MetaFrameStyle): add window_background_color and
window_background_alpha so that we can specify background on a
<frame_style>. (#151261)
* theme.h (MetaFrameStyleSet): shaded_styles gets resize
dimension. (#114304)
* theme.h (MetaTheme): added format_version, color_constants
hash, (#129747) fallback_icon and fallback_mini_icon, (#11363)
and removed menu_icons. (#114305)
* theme.h (META_THEME_ALLOWS (new macro)): return whether a theme
supports a given feature. Also, several macros representing
new features in v2.
* ui.c (meta_ui_set_current_theme)): also invalidate default
icons. (#11363)
* window.[ch] (meta_window_update_icon_now)): became
non-static. (#11363)
2006-10-06 Elijah Newren <newren gmail com>
* src/metacity-dialog.c (kill_window_question): Be nice to
translators; remove unnecessary markup from strings marked for
translation (oops, I missed this in my review before previous
commit)
2006-10-06 Elijah Newren <newren gmail com>
* src/metacity-dialog.c (kill_window_question): Patch from Bruno
Boaventura to improve the "Force Quit" dialog. #121936
2006-10-02 Elijah Newren <newren gmail com>
Ignore edge resistance for size-increment windows when resizing
with the keyboard. #346782.
* src/edge-resistance.c (apply_edge_resistance_to_each_side):
ignore edge resistance for size-increment windows when resizing
with the keyboard, (apply_edge_resistance_to_each_side,
meta_window_edge_resistance_for_move,
meta_window_edge_resistance_for_resize): pass a is_resize
parameter as well
2006-10-01 Elijah Newren <newren gmail com>
* src/display.c (meta_display_set_input_focus_window):
* src/window.c (meta_window_focus):
Don't require a push/pop trap around
meta_display_set_input_focus_window(), but rather move the
push/pop into that function surrounding the XSetInputFocus() call
directly. Follow up to #358514.
2006-10-01 Elijah Newren <newren gmail com>
* src/*.[ch]: Stick an emacs comment directive at the beginning of
all the code files so that people using emacs will be more likely
to get coding style correct in their patches. We still need a
similar vi directive. #358866
2006-10-01 Elijah Newren <newren gmail com>
Patch from Carlo Wood to ensure that maximized and minimized
properties are maintained across restarts. #358042.
* src/constraints.c (place_window_if_needed): fix up partial
maximization handling and add minimize_after_placement handling.
* src/display.[ch] (struct MetaDisplay, meta_display_open): add a
new display->display_opening flag to allow handling startup
differently where needed.
* src/window-props.c (reload_net_wm_state): handle
_net_wm_state_hidden as well, setting
window->minimize_after_placement appropriately
* src/window.[ch] (struct MetaWindow, meta_window_new_with_attrs):
add a window->minimize_after_placement field
* src/window.c (meta_window_new_with_attrs): only unminimize the
window and its transients if the display isn't being opened,
(unmaximize_window_before_freeing): don't reset the state unless
the window is becoming withdrawn, if the screen is being closed be
sure to save the unmaximized state of the window so the next
window manager can restore it
2006-10-01 Elijah Newren <newren gmail com>
* src/window-props.c (set_title_text): surround the
XDeleteProperty() call with a
meta_error_trap_push/meta_error_trap_pop pair to prevent a crash
when closing a remote instance of gedit (and perhaps other apps).
#358514.
2006-10-01 Elijah Newren <newren gmail com>
Fix longstanding focus bug with mouse (not sloppy) focus mode with
popup override-redirect windows, particularly mozilla and
firefox's location bar autocompletion. #357695.
* src/display.c (event_callback -- EnterNotify & LeaveNotify events):
for mouse focus, defocus the focused window when the mouse enters
the desktop window rather than when the mouse leaves the focused
window.
* doc/how-to-get-focus-right.txt:
update for the slightly nuanced definition of mouse focus (people
without a DESKTOP window like nautilus get sloppy focus behavior
now)
2006-09-27 Elijah Newren <newren gmail com>
* src/menu.c (var menuitems): Patch from Bruno Boaventura to add
notes to remind translators to keep translations in sync with
libwnck. #355620.
2006-09-18 Elijah Newren <newren gmail com>
* src/window.c (meta_window_show): Patch from Jens Granseuer to
fix c89 cleanness, again. #356631.
2006-09-18 Elijah Newren <newren gmail com>
* src/constraints.c (constrain_maximization): Ignore maximum size
hints when maximizing. Should fix #327543 (see comment 4 and comment
5).
2006-09-18 Elijah Newren <newren gmail com>
* src/ui.c (filter_func): avoid a compilation warning by making
sure to return something. #348067
2006-09-18 Thomas Thurman <thomas@thurman.org.uk>
Branched for Gnome 2.17.
* configure.in: bump version to 2.17.0.
2006-09-18 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.16.3
2006-09-18 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.16.2 release
2006-09-18 Elijah Newren <newren gmail com>
Partial audit to fix timestamp usage. One step towards fixing
#355180; see important comments in that bug.
* src/core.[ch] (meta_core_unshade, meta_core_shade):
* src/delete.c (meta_window_present_delete_dialog,
delete_ping_timeout_func):
* src/display.[ch] (meta_display_open, meta_display_close,
event_callback, meta_display_begin_grab_op,
process_selection_clear, meta_display_unmanage_screen,
meta_display_unmanage_windows_for_screen):
* src/frames.c (meta_frames_button_press_event):
* src/keybindings.c (handle_toggle_shade):
* src/main.c (main):
* src/screen.[ch] (update_num_workspaces, meta_screen_new,
meta_screen_free, prefs_changed_callback):
* src/window.[ch] (meta_window_free, finish_minimize,
implement_showing, meta_window_show, meta_window_maximize,
meta_window_make_fullscreen_internal,
meta_window_unmake_fullscreen, meta_window_shade,
meta_window_unshade, window_activate, send_sync_request,
meta_window_client_message, menu_callback,
meta_window_update_keyboard_resize):
Remove usage of CurrentTime, meta_display_get_current_time() and
meta_display_get_current_time_roundtrip() where possible, or
document why it isn't possible, or at very least add a FIXME with
some explanation of my laziness and what needs to be done.
2006-09-18 Elijah Newren <newren gmail com>
* src/spring-model.c (on_end_move, model_is_calm): Patch from Maik
Beckmann to remove compilation warnings. Fixes #355876.
2006-09-18 Elijah Newren <newren gmail com>
* configure.in: Make detection of stable vs. unstable automatic
and based upon the version number. Partially based on patch from
Christian Hamar in #356122. Fixes #356122.
2006-09-13 Elijah Newren <newren gmail com>
* HACKING: update -- we depend on gtk+ >= 2.10 since Vincent's
July patches for #348633.
2006-09-13 Elijah Newren <newren gmail com>
* src/window.c (meta_window_show): Patch from Thomas Andersen to
make windows be stacked correctly before showing them, to prevent
flicker with focus stealing prevention. #332385.
2006-09-13 Elijah Newren <newren gmail com>
* src/common.h (MetaWindowMenuFunc):
* src/core.[ch] (meta_core_user_lower_and_unfocus,
meta_core_user_focus, meta_core_show_window_menu,
meta_core_begin_grab_op, meta_core_end_grab_op):
* src/delete.c (delete_ping_reply_func, delete_ping_timeout_func,
meta_window_delete):
* src/display.[ch] (struct MetaDisplay, struct MetaPingData,
sanity_check_timestamps, meta_display_open, event_callback,
meta_spew_event, meta_display_set_grab_op_cursor,
meta_display_begin_grab_op, meta_display_end_grab_op,
meta_display_ping_timeout, meta_display_ping_window,
process_pong_message, timestamp_too_old,
meta_display_set_input_focus_window):
* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard,
meta_screen_grab_all_keys, meta_window_grab_all_keys,
meta_window_ungrab_all_keys, error_on_generic_command,
error_on_command, error_on_terminal_command):
* src/metacity-dialog.c (on_realize, warn_about_no_sm_support,
error_about_command, main):
* src/screen.[ch] (struct _MetaScreen, meta_screen_new,
meta_screen_show_desktop, meta_screen_apply_startup_properties):
* src/session.c (warn_about_lame_clients_and_finish_interact):
* src/window.[ch] (struct _MetaWindow,
intervening_user_event_occurred, window_activate,
meta_window_delete, meta_window_focus,
meta_window_send_icccm_message, meta_window_client_message,
menu_callback, meta_window_show_menu, struct EventScannerData,
check_use_this_motion_notify, meta_window_begin_grab_op,
meta_window_set_user_time):
* src/workspace.[ch] (focus_ancestor_or_mru_window,
meta_workspace_activate_with_focus, meta_workspace_activate,
meta_workspace_focus_default_window,
focus_ancestor_or_mru_window):
Fix issues on 64-bit machines with timestamps by using guint32
(like gtk+ does) instead of Time. #348305
2006-09-12 Elijah Newren <newren gmail com>
* src/theme.c (meta_gtk_arrow_from_string,
meta_gtk_arrow_to_string): patch from Bruno Boaventura de Oliveira
to fix a compiler warning about not handling GTK_ARRROW_NONE.
#355490.
2006-09-12 Elijah Newren <newren gmail com>
* src/compositor.c: Patch from Bruno Boaventura de Oliveira
Lacerda to fix warnings about unused function and global var.
#355489.
2006-09-11 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release bump to 2.16.2
2006-09-11 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.16.1 release
22006-09-09 Elijah Newren <newren gmail com>
* src/display.c (meta_display_open): Fix build when XKB not found.
#354211
2006-09-09 Elijah Newren <newren gmail com>
Avoid a stuck grab, preventing focus from being transferred
between windows. Thanks to Fryderyk Dziarmagowski for steps to
reproduce. Fixes at least part of #354422.
* src/display.c (meta_display_begin_grab_op,
meta_display_end_grab_op): pass timestamp to
meta_screen_ungrab_all_keys, meta_screen_ungrab_all_keys, and
meta_window_ungrab_all_keys
* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard): add a
timestamp parameter and remove call to
meta_display_get_current_time(), (meta_screen_grab_all_keys,
meta_screen_ungrab_all_keys, meta_window_ungrab_all_keys): add a
timestamp parameter and pass it on to grab_keyboard and
ungrab_keyboard
2006-09-07 Elijah Newren <newren gmail com>
* src/constraints.c (update_onscreen_requirements): make sure
windows returning from fullscreen mode are constrained to be
"onscreen"; fixes #353699.
2006-08-30 Colin Watson <cjwatson@ubuntu.com>
* src/window-props.c (reload_transient_for): Clear
window->xtransient_for after emitting the invalid window warning.
#353540
2006-09-07 Elijah Newren <newren gmail com>
* src/metacity-dialog.c: Patch from Bruno Boaventura de Oliveira
Lacerda to replace copy_of_gdk_x11_window_set_user_time() with
gdk_x11_window_set_user_time(). We've long since adopted gtk+ >=
2.6 as a dependency. #352293
2006-09-04 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release version bump to 2.16.1
2006-09-04 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.16.0 release
2006-08-22 Elijah Newren <newren gmail com>
* src/metacity-dialog.c (main): Patch from Jens Granseuer to fix
the build with c89/gcc 2.95.
2006-08-21 Elijah Newren <newren gmail com>
* NEWS: Oops, forgot to mention the translators in the 2.15.34
release; add them retroactively
2006-08-21 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.55
2006-08-21 Elijah Newren <newren gmail com>
* NEWS: 2.15.34 release
2006-08-21 Elijah Newren <newren gmail com>
Patch from Thomas Andersen to fix metacity-dialog handling of
arguments. #340690
* src/metacity-dialog.c (main): replace hackish argument parsing
with GOption parsing. Much nicer. :)
2006-08-21 Elijah Newren <newren gmail com>
Patch from Ed Catmur to fix keybindings with hex-values (coming
from special extended keyboard keys). #140448.
* src/keybindings.c (struct _MetaKeyBinding): change keycode from
KeyCode to unsigned int (comment from Elijah: why???),
(reload_keycodes): only grab keysyms for keybindings that have
them, (count_bindings, rebuild_binding_table): bindings can be
valid either due to a valid keysym or a valid keycode,
(display_get_keybinding_action, meta_change_keygrab,
process_tab_grab, process_workspace_switch_grab): handle keycode
as well as keysym
* src/prefs.[ch] (struct MetaKeyCombo, update_binding,
update_list_binding): handle keycode as well as keysym
* src/ui.[ch] (meta_ui_accelerator_parse): new function special
cases strings of the form "0x[0-9a-fA-F]+" and otherwise calling
gtk_accelerator_parse(), (meta_ui_parse_accelerator,
meta_ui_parse_modifier): call meta_ui_accelerator_parse instead of
gtk_accelerator_parse.
2006-08-21 Elijah Newren <newren gmail com>
Allow drags & resizes to be reverted by hitting escape. Based on
patch from Thomas Andersen. #126497.
* src/display.c (grab_op_is_mouse_only): new function,
(meta_display_begin_grab_op): grab the keyboard when moving or
resizing too so that we can get escape keypresses
* src/display.h (struct _MetaDisplay): add a comment to remind
that grab_was_cancelled is only used in wireframe mode
* src/keybindings.[ch] (process_mouse_move_resize_grab): add new
function for handling keypresses during mouse-only moving and
resizing, (meta_window_grab_all_keys): add a timestamp parameter
and pass it to meta_window_focus(),
(meta_display_process_key_event): make sure
process_mouse_move_resize_grab() gets called when needed,
(process_keyboard_move_grab, process_keyboard_resize_grab):
rearrange some code slightly and improve the comments to make it
more readable
2006-08-21 Elijah Newren <newren gmail com>
Fix several bugs with handling of fullscreen windows, causing them
to not actually be fullscreen. #343115 (and also #346927,
#350547, #351643, the recent additional WINE-related issue
mentioned on the mailing list, and probably others...)
* src/constraints.c (setup_constraint_info): if a window tries to
resize to fullscreen-size and it has a fullscreen function but
isn't actually marked as fullscreen then assist it by marking it
as such, (constrain_fully_onscreen, constrain_titlebar_visible):
ignore this constraint for fullscreen windows since such windows
have a separate specialized constraint
* src/stack.c (window_is_fullscreen_size, get_standalone_layer):
remove the old window_is_fullscreen_size() hack for detecting
windows to treat as fullscreen since it doesn't work well with the
new constraints framework (i.e. we needed a slightly different
hack)
* src/window.[ch] (meta_window_new_with_addrs): shuffle the order
of adding the window to the stack and moveresizing the window
since moveresizing can cause stack changes if the window's initial
size is fullscreen size, (meta_window_make_fullscreen,
meta_window_make_fullscreen_internal): split
meta_window_make_fullscreen() similar to meta_window_maximize() so
that constraints can make use of it
2006-08-19 Baptiste Mille-Mathias <baptiste.millemathias@gmail.com>
* src/stock_delete.png: Update the pixmap to a new one which
fit better with the other pixmaps of the menu. First patch in
metacity, woot! #345498
2006-08-18 Elijah Newren <newren gmail com>
* src/tabpopup.c (meta_ui_tab_popup_new): Patch from Willie Walker
to restore the part of the patch that I should not have reverted
in #123372, in order to fix accessibility. #350624
2006-08-09 Elijah Newren <newren gmail com>
* src/window.c (intervening_user_event_occurred): Vytautus Liuolia
totally rocks; he tested and debugged and tracked down where we
were using the focus window's net_wm_user_time even when it was
uninitialized. This may fix bug 311868 and others I've heard
about (with Valknut, IIRC). It definitely fixes the issues Vytas
was seeing with his single instance library. :-)
2006-08-07 Elijah Newren <newren gmail com>
* src/constraints.c (setup_constraint_info): patch from Stéphane
Rosi to allow moving maximized windows between xineramas again.
#323820
2006-08-07 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.34
2006-08-07 Elijah Newren <newren gmail com>
* NEWS: 2.15.21 release
2006-08-07 Elijah Newren <newren gmail com>
Add a constrain_titlebar_visible constraint; should fix both bug
333328 and bug 345522. Not perfect (minor annoying snap pulling
windows back onscreen, plus an ugly hack almost as bad as the old
one), but tarballs are due in less than half an hour. ;-)
* src/boxes.[ch] (meta_rectangle_overlaps_with_region):
new function
* src/constraints.c (constrain_titlebar_visible): new function,
(enum ConstraintPriority, array all_constraints,
update_onscreen_requirements): various small changes to
accomodate the new function
* src/edge-resistance.c: remove the infinite edge resistance,
which was a big hack of a way to workaround the lack of a
titlebar_visible constraint
* src/window.[ch] (MetaWindow): new require_titlebar_visible
bitfield, (meta_window_new_with_attrs): initialized here
2006-08-07 Elijah Newren <newren gmail com>
* src/frames.c (meta_frames_button_press_event): Patch from Chris
Ball to not minimize in response to double clicks on the titlebar
when minimiziation should not be allowed. #347377
2006-08-07 Elijah Newren <newren gmail com>
Patch from Björn Lindqvist to fix button lighting with dragged
clicks. #321474.
* src/frames.c (meta_frames_button_press_event): update the
prelit_control, (meta_frames_button_release_event): some code
refactoring to simplify things a bit, and make sure to update the
prelit_control
2006-08-07 Elijah Newren <newren gmail com>
* src/keybindings.c (process_keyboard_move_grab): Patch from
Thomas Andersen to return the window to maximized state if the
window was "shaken loose" from maximized state during a resize but
the resize is later aborted. #346719.
2006-08-07 Elijah Newren <newren gmail com>
Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes,
as proposed for the new startup-notification/EWMH spec. #347515
* src/window-props.c (reload_net_startup_id): be sure to act on
the new id instead of just recording it
* src/window.[ch] (window_activate, meta_window_activate,
meta_window_activate_with_workspace, meta_window_client_message):
change window_activate() to take a workspace parameter instead of
hardcoding to the current workspace, add
meta_window_activate_with_workspace() function needed by
reload_net_startup_id().
2006-08-07 Thomas Thurman <thomas@thurman.org.uk>
* src/frames.h: add new MetaButtonSpace struct; use it for
close_rect, max_rect, min_rect and menu_rect. (#97703)
* src/frames.c (control_rect, get_control): modify to support
the new fields in MetaButtonSpace.
* src/theme.c (meta_frame_layout_get_borders, rect_for_function,
meta_frame_layout_calc_geometry, button_rect): add support for
the new fields in MetaButtonSpace.
2006-08-07 Elijah Newren <newren gmail com>
* src/screen.c (meta_screen_resize_func): patch from Dmitry
Timoshkov to make sure window features get recalculated when the
screen is resized via XRandR. Part of #346927.
2006-08-04 Elijah Newren <newren gmail com>
Patch from Dmitry Timoshkov to fix the heuristic for determining
if windows can be made fullscreen (needed for WINE and possible
also some legacy applications). Part of #346927.
* src/window.c (recalc_window_features): ignore window decoration
when checking size for determing whether an unresizable window
should be allowed ot be considered for fullscreening
2006-07-31 Björn Lindqvist <bjourne@gmail.com>
* src/window.c: Make it so maximized windows do not have rounded
corners. #336850.
2006-07-30 Jens Granseuer <jensgr@gmx.net>
* src/tabpopup.c: Fix another C89 vs. C99 issue. #347621.
2006-07-26 Vincent Untz <vuntz@gnome.org>
* src/update-from-egg.sh: also kill this
2006-07-25 Vincent Untz <vuntz@gnome.org>
* src/Makefile.am, ui.c: Kill usage of libegg. #348633.
2006-07-24 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: post-release version bump to 2.15.21
2006-07-24 Thomas Thurman <thomas@thurman.org.uk>
* NEWS: 2.15.13 release
2006-07-24 Björn Lindqvist <bjourne@gmail.com>
* src/display.c (meta_display_grab_window_buttons): Grab
Alt+Shift+Button1 as well to partially fix operation ordering
issues when trying to snap-move windows. Part of #112478.
2006-07-21 Thomas Thurman <thomas@thurman.org.uk>
* ui.[ch] (filter_func): Avoid a case where a struct's
fields might be updated after it was freed. #348067.
2006-07-10 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.13
2006-07-10 Elijah Newren <newren gmail com>
* NEWS: 2.15.8 release
2006-06-12 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.8
2006-06-12 Elijah Newren <newren gmail com>
* NEWS: 2.15.5 release
2006-06-10 Elijah Newren <newren gmail com>
Patch from Aidan Delaney to tidy tabpopup.c by factoring out
tab_entry_new(). #166890.
* src/tabpopup.c (tab_entry_new): new function,
(meta_ui_tab_popup_new): use tab_entry_new() to remove a big chunk
of code, plus a few other small cleanups.
Tue Jun 6 12:46:42 2006 Søren Sandmann <sandmann@redhat.com>
* configure.in (GETTEXT_PACKAGE): Bunp intltool requirement to
0.35.0.
2006-05-29 Elijah Newren <newren gmail com>
* HACKING: Slightly more detailed instructions on setting up a
build environment to mention relevant development tools in
addition to the needed development libraries.
Fri May 26 16:48:29 2006 Søren Sandmann <sandmann@redhat.com>
* src/effects.c (meta_effect_run_unminimize): Run an unminimize effect
* src/window.c (meta_window_unminimize): Store a "was_minimized"
boolean in the window.
* src/window.c (meta_window_show): If the window was minimized,
run an unminimize animation.
* src/c-window.c (meta_comp_window_run_unminimize): Add an
unminimize animation, running the minimize one in reverse.
Fri May 26 14:55:07 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (meta_comp_window_run_focus): Rename from
_bounce() to _focus().
2006-05-26 Elijah Newren <newren gmail com>
* src/display.c (meta_display_close): Fix a crash on exit/logout
from assuming a compositor would always exist
2006-05-25 Elijah Newren <newren gmail com>
* src/place.h:
* src/common.h:
Remove MetaWindowEdgePosition enum that isn't used anymore
Thu May 25 15:56:43 2006 Søren Sandmann <sandmann@redhat.com>
* src/effects.h (struct MetaEffect): Move duplicated window field
outside the union
* src/compositor.c: delete duplicated code to get at the window.
Thu May 25 15:17:29 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c: Fix compilation in non-compositor case, by
moving the stack functions into the HAVE_COMPOSITOR defines.
Thu May 25 15:11:58 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.h: Add a destroy notifier to the window.
* src/c-screen.c (on_window_destroy): New function.
* src/c-screen.c (meta_comp_screen_add_window): Use the destroy
notifier here.
* src/c-window.c (generate_phases): New function. Simplify the
minimize animation a lot by generating all the rectangle
information into an array, then processing that.
2006-05-25 Adam Jackson <ajax@freedesktop.org>
* src/c-window.c:
* src/c-window.h:
* src/compositor.c:
* src/compositor.h:
* src/effects.c:
* src/effects.h:
* src/spring-model.c:
* src/window.c:
Bounce on window focus.
Wed May 24 22:15:01 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (do_effect): Make sure windows are kept on top
of the panel during minimize.
Wed May 24 21:17:59 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (do_effect): Shrink the window instead of
explode it.
* src/compositor.c (do_effect): don't read the frame if it is
NULL.
* src/c-window.c (meta_comp_window_run_minimize): Resurrect the
shrinking minimize animation.
* src/c-window.c (meta_comp_window_fade_in): Make dialogs 90%
translucent.
* src/c-window.c (update_fade): End at end_fade, not 1.0.
Wed May 24 19:15:45 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (cancel_fade): Add a fade-in animation when
windows are mapped.
Wed May 24 16:37:11 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (private_metacity_window): New function
* src/c-window.c (meta_comp_window_refresh_attrs): Map metacity's
own windows directly.
Wed May 24 16:35:54 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (private_metacity_window):
Wed May 24 14:36:42 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (meta_comp_window_{freeze,thaw}_stack: Add a
stack-freeze feature to CWindow.
* src/c-screen.c (meta_comp_screen_restack): Don't restack if the
window is frozen.
Wed May 24 13:09:49 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c: Fix compilation in the non-composited case.
Wed May 24 12:57:32 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (meta_comp_window_free): return TRUE when the
window is actually freed.
* src/compositor.c (do_effect): Disable updating before exploding
the window.
* src/c-window.c: Make MetaCompWindow refcounted.
* src/c-window.[ch]: New functions meta_comp_window_{show,hide}
* src/c-screen.c (meta_comp_screen_unmap): Call
meta_comp_window_hide() instead of directly setting the viewable
status of the node.
* src/c-screen.c (meta_comp_screen_remove_window): Only remove the
window when it is actually freed.
Wed May 24 12:45:21 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c: Delete unused meta_comp_screen_hide_window().
2006-05-23 Adam Jackson <ajax@freedesktop.org>
* src/c-window.c:
* src/c-window.h:
* src/compositor.c:
* src/effects.c:
* src/effects.h:
* src/window.c:
Move shrink effect code from compositor.c to c-window.c. Stubs for
restore effect. Notes in various places for where to hook in
other effects.
Tue May 23 16:36:04 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (do_effect): Also use explode when windows close.
* src/c-window.c (meta_comp_window_explode): Add refcounting to
comp window, and use it in the explosion effect
* src/effects.h (struct MetaEffect): Add new MetaCloseEffect.
* src/display.c (event_callback): Run it from the UnmapNotify
event handler.
Tue May 23 15:23:58 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (send_sync_request): New function to send a sync
request to newly mapped windows.
(on_request_alarm): Show the window here.
2006-05-23 Adam Jackson <ajax@freedesktop.org>
* src/effects.h:
Add more effect tokens.
Mon May 22 17:35:52 2006 Søren Sandmann <sandmann@redhat.com>
* src/effects.[ch]: Beginning of new layer that abstracts
transition effects.
New functions:
(meta_push_effect_handler): Install an effect handler
(meta_pop_effect_handler): Remove last effect handler
(meta_effect_run_minimize): Create a minimize effect and pass it
to the handler.
(meta_effect_end): Called by handler when the effect is finished.
* src/compositor.c: Move explosion code form there to src/c-window.c.
* src/c-screen.c: Delete explosion related code.
2006-05-22 Björn Lindqvist <bjourne@gmail.com>
* common.h (enum MetaCursor):
* display.c (meta_display_create_x_cursor): Make mouse cursor when
moving windows become a hand. Fixes #337376.
2006-05-19 Björn Lindqvist <bjourne@gmail.com>
* frames.c: Fix a logic bug so that the whole titlebar becomes
sensitive to mouse clicks. Fixes #336320.
2006-05-18 Björn Lindqvist <bjourne@gmail.com>
* resizepopup.c: Remove the unused attributes resize_gravity,
width_inc, height_inc, min_width, min_height, frame_left,
frame_right, frame_top, frame_bottom, tick_origin_x, tick_origin_y
from the MetaResizePopup struct. Delete all code that references
those attributes.
2006-05-15 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.5
2006-05-15 Elijah Newren <newren gmail com>
* NEWS: 2.15.3 release
2006-05-15 Elijah Newren <newren gmail com>
Revert the accessibility module loading workaround from Gnome
2.6, since gtk+ has long since fixed this for us. #123372.
* src/Makefile.am: remove METACITY_LIBDIR define
* src/main.c (find_accessibility_module,
accessibility_invoke_module, accessibility_invoke, main): remove
the first three of these functions and all calls to them
* src/tabpopup.c (meta_ui_tab_popup_new): not sure if this part of
120025 needed to be reverted but doing the reversion, if wrong, is
the best way to get someone from the accessibility team to scream,
er, I mean comment. ;-)
2006-05-15 Elijah Newren <newren gmail com>
* src/screen.c (reload_xinerama_infos): Patch from
jylefort@FreeBSD.org to prevent a crash when changing resolution.
Fixes #340847.
2006-05-15 Björn Lindqvist <bjourne@gmail.com>
* places.[ch] (intcmp, window_get_edges,
get_windows_showing_on_same_screen, get_vertical_edges,
get_horizontal_edges, meta_window_find_next_vertical_edge,
meta_window_find_next_horizontal_edge,
meta_window_find_nearest_vertical_edge,
meta_window_find_nearest_horizontal_edge): Remove the preceeding
functions as they are all obsoleted by the new edge-resistance
stuff. Fixes #341561.
2006-05-15 Paolo Borelli <pborelli@katamail.com>
* src/prefs.c (update_binding): plug a small leak.
2006-05-12 Elijah Newren <newren gmail com>
* configure.in: I don't think we want a config file for the
no-gconf case; embedded people would prefer hard-coding things
into the binary
(http://mail.gnome.org/archives/metacity-devel-list/2006-May/msg00010.html)
2006-04-25 Elijah Newren <newren gmail com>
* HACKING: Clarify that gnome-common is needed now that autogen.sh
has been rewritten to use gnome-autogen.sh
Fri May 5 12:50:58 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.c (has_counter): Some experimental code to handle
sync counter notifications on a window.
* src/c-screen.c (meta_comp_screen_add_window): Pass a MetaDisplay
2006-04-25 Elijah Newren <newren gmail com>
Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no
longer being used. Fixes #330671.
* src/window.[ch] (struct MetaWindow): new
using_net_wm_visible_name and using_net_wm_visible_icon_name bits,
(meta_window_new_with_attrs): initialize these new bits to false
* src/window-props.c (set_title_text, set_window_title, set_icon_title):
if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
doesn't need to be this time, make sure to clear it
2006-04-25 Elijah Newren <newren gmail com>
* rationales.txt: add three new tracker bugs
Thu May 4 13:30:04 2006 Søren Sandmann <sandmann@redhat.com>
* src/ui.h: Delete unused META_PRIORITY_COMPOSITE
* src/ui.c: Delete argument from meta_ui_get_display().
* src/c-window.c: Remove the xid->window hashtable and associated
code.
* src/c-screen.[ch]: Rename MetaScreenInfo to MetaCompScreen. Put the
xid->windows table here instaed of as a static variable. Also make
sure that CompWindows are freed when the screen is unredirected.
* src/display.c: Delete non USE_GDK_DISPLAY case, as it didn't
work and hasn't been compiled for a long time.
* src/display.[ch] (meta_display_open): Remove argument as it was
always NULL (and couldn't possibly be anything else in the
USE_GDK_DISPLAY case).
Tue May 2 17:12:54 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-window.[ch]: New files
* src/c-screen.c: Move WindowInfo struct to new c-window.[ch]
files. Delete various bits of obsolete, commented-out code.
Fri Apr 28 12:53:23 2006 Søren Sandmann <sandmann@redhat.com>
* src/core.c (get_window): New function.
* src/core.c: Use get_window() instead of cutted-and-pasted code
all over the place.
2006-04-25 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.3
2006-04-25 Elijah Newren <newren gmail com>
* NEWS: 2.15.2 release
2006-04-25 Elijah Newren <newren gmail com>
* autogen.sh: Nuke the old version, copy one from gcalctool that
uses gnome-autogen.sh. Seems to fix the
translations-aren't-included-in-the-tarball problem. Fix from
Rodney in IRC.
2006-04-25 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.15.2
2006-04-25 Elijah Newren <newren gmail com>
* NEWS: 2.15.1 release
* configure.in: belated post-release version bump to 2.15.1
* src/Makefile.am: Include boxes.h so that control-center won't
fail to build #339708.
2006-04-24 Elijah Newren <newren gmail com>
* NEWS: 2.15.0 release
2006-04-20 Brian Pepple <bdpepple@gmail.com>
#337951.
* po/LINGUAS: New file listing all supported languages.
* configure.in: Use po/LINGUAS instead of including all languages
directly in this file. See the wiki for more information:
http://live.gnome.org/GnomeGoals/PoLinguas.
2006-04-19 Thomas Andersen <phomes@gmail.com>
* src/window-props.c (reload_transient_for): warn and ignore if
transient_for is set to a non-top-level window. Fixes #335524.
2006-04-19 Björn Lindqvist <bjourne@gmail.com>
* src/frames.c (struct CachedPixels, meta_frames_destroy,
invalidate_cache, generate_pixmap, populate_cache,
cached_pixels_draw, meta_frames_expose_event,
meta_frames_paint_to_drawable):
Replace while loops iterating over sequences with for loops. Also,
replace the attributes in the CachedPixels struct with a list of
four CachedFramePiece:s, this allows iteration over the four
pixmaps instead of treating each one separately. Fixes #338359.
2006-04-18 Björn Lindqvist <bjourne@gmail.com>
* makefile.am: Add boxes.{c,h} to libmetacity_private
* src/theme-parser.c (check_expression):
* src/theme-viewer.c (run_position_expression_tests):
Use meta_rect ().
* src/theme.c: Replace while loops iterating over sequences with
for loops.
* src/theme.c, src/theme.h (struct _MetaPositionExprEnv,
meta_draw_op_draw, meta_draw_op_list_draw,
meta_theme_draw_menu_icon): Use MetaRectangles in function
prototypes instead of x, y, with, height ints where applicable.
2006-04-18 Kjartan Maraas <kmaraas@gnome.org>
* configure.in: Remove obsolete entry for no_NO
* po/no.po: And the translation.
2004-04-17 Thomas Thurman <thomas@thurman.org.uk>
* keybindings.c (count_bindings, rebuild_binding_table):
* prefs.c (change_notify, screen_bindings,
window_bindings, init_bindings, update_binding,
find_and_update_list_binding, update_list_binding,
meta_prefs_get_window_binding): Allow any keybinding pref
to be specified either with <foo>, a string, or <foo>_list,
a list of strings, or both. Fixes #164831.
2006-04-16 Elijah Newren <newren gmail com>
Patch from Dan Sanders to fix #334899.
* window.c (meta_window_new_with_attrs): Unminimize ancestors of
new windows when mapped; this prevents e.g. confirmation windows
from causing applications to appear locked when closing via the
window list.
2006-04-15 Elijah Newren <newren gmail com>
Patch from Dan Sanders to fix #335076.
* src/core.c (meta_core_maximize, meta_core_toggle_maximize,
meta_core_unmaximize):
* src/window.c (meta_window_client_message):
Raise windows on maximize/unmaximize.
2006-04-15 Elijah Newren <newren gmail com>
* src/display.h: Patch from Andy Morum to fix the build with
--disable-xsync. #336605
2006-04-14 Elijah Newren <newren gmail com>
* HACKING: Include instructions on setting up a minimal
building/testing environment
2006-04-14 Thomas Thurman <thomas@thurman.org.uk>
Add a tabbing function, bound to alt-f6 by default, to cycle
through the windows of the current application. Fixes #94682.
* src/common.h: two new MetaGrabOpts values for group switching
* src/display.c (ping_data_free, meta_display_in_grab_op,
IN_TAB_CHAIN): adapt to new MetaGrabOpts
* src/display.h: new enum value for MetaTabList for group switching
* src/keybindings.c (meta_display_process_key_event):
adapt to new MetaGrabOpts
(process_tab_grab): adapt to new MetaGrabOpts, and use switch
statement for cancelling instead of if statement
* src/metacity.schemas.in: new keybindings
* src/prefs.c, src/prefs.h: handle new keybindings
* src/window.h: define META_WINDOW_IN_GROUP_TAB_CHAIN macro
2006-04-14 Elijah Newren <newren gmail com>
* HACKING: Include reasons why gdk/gtk.h and core includes like
display.h/window.h must be kept separate. Taken from a private
email from Havoc.
2006-04-13 Alejandro Andres <fuzzy.alej@gmail.com>
* README: Fixed broken links. #333303
Thu Apr 13 12:23:28 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_add_window): Check for both
POPUP and DROPDOWN.
2006-04-13 Björn Lindqvist <bjourne@gmail.com>
* src/async-getprop.c, src/async-getprop.h
(async_get_property_handler, ag_task_get_reply_and_free):
* src/testasyncgetprop.c (try_get_reply, run_speed_comparison):
Change unsigned chars to chars.
* src/display.h (struct MetaDisplay):
* src/keybindings.c (reload_modmap):
Change unsigned ints to ints.
* src/screen.c (set_workspace_names)
* src/stack.c (meta_stack_sync_to_server):
* src/xprops.c (utf8_string_from_results, utf8_list_from_results,
class_hint_from_results, meta_prop_get_values):
Introduce casts.
Add a number of casts and change signedness on a number of
variables so that Metacity compiles with many fewer
warnings. Fixes #336032.
2006-04-12 Elijah Newren <newren gmail com>
Patch from Ron Yorston to add a focus_new_windows option. Default
is 'smart' (focus by default but normal focus-stealing-prevention
can kick in); 'strict' is current other choice (like 'smart'
except that programs launched by the terminal will not be
focused). Fixes remainder of #326159. Should also close #152004
and a bunch of others.
* src/common.h:
Add a MetaFocusNewWindows enum giving the current types allowed
* src/display.h:
Update docs on allow_terminal_deactivation to note that it is only
relevant when focus_new_windows is 'strict'
* src/metacity.schemas.in: add the new gconf key and explanation
* src/prefs.[ch] (#define KEY_FOCUS_NEW_WINDOWS, static gboolean
focus_new_windows, update_focus_new_windows, meta_prefs_init,
change_notify, meta_prefs_get_focus_new_windows,
meta_preference_to_string):
Add all the normal preference handling stuff for this new
focus-new-windows option.
* src/window.c (window_state_on_map, meta_window_set_user_time):
Don't focus windows launched from a terminal
Mon Apr 10 16:44:51 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (is_menu): Check if the window is a menu and make
it 90% opaque in that case.
* src/c-screen.c (claim_selection): Handle CM_Sn selection
properly.
* src/c-screen.c: Remove debug spew
* src/screen.c (meta_screen_composite_all_windows): Remove debug spew
2006-04-10 Björn Lindqvist <bjourne@gmail.com>
* display.c (meta_display_open, event_callback):
* ui.c (meta_ui_get_double_click_timeout):
Delete dead code that used to handle double click on the
titlebar. Remove the attributes last_button_time,
last_button_xwindow, last_button_num and is_double_click from
MetaDisplay and the functions meta_ui_get_double_click_timeout()
and meta_display_is_double_click() from their respective
files. Fixes #337507.
2006-03-27 Gora Mohanty <gmohanty@cvs.gnome.org>
* src/metacity.schemas.in:
* src/theme.c:
Changes strings to make them more readable, and more translatable.
Fixes #335720.
2006-04-02 Elijah Newren <newren gmail com>
Fix constraints bug causing negative width windows and crashes.
#336651
* src/constraints.c (constrain_partially_onscreen): Don't
accidentally shove & resize the window by requiring more pixels to
be onscreen than the size of the window.
Fri Mar 31 16:44:56 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_unredirect): Release the GL
window here. Disconect from the magnifier, not the stacker.
Fri Mar 31 12:24:26 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_redirect): Only use magnifier
when USE_MAGNIFIER is set.
* src/compositor.c (meta_compositor_free_window): Only wobble when
USE_WOBBLE is set.
Fri Mar 31 12:13:21 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_redirect): Don't hardcode
screen size.
Thu Mar 30 17:01:12 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (struct MetaCompositor): Fix the memory
corruption in a better way.
Thu Mar 30 16:38:35 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_begin_move): Fix an illegal write.
Thu Mar 30 16:13:52 2006 Søren Sandmann <sandmann@redhat.com>
* composite.c: Turn wobbling back on Add new explosion effect.
2006-03-29 Elijah Newren <newren gmail com>
Fix grouping in the presence of ancestors; caught by Björn.
#336184
* src/group.c (meta_window_compute_group): Use new
meta_window_find_root_ancestor() function to get ancestor; for the
computed group, use the ancestor's group instead of the ancestor
itself
* src/window.[ch] (meta_window_find_root_ancestor,
meta_window_raise): split meta_window_find_root_ancestor()
functionality of meta_window_raise() and make it available
elsewhere
2006-03-29 Elijah Newren <newren gmail com>
* rationales.txt: Add bugs about pointer warping; update
raise-on-click ones.
2006-03-29 Thomas Thurman <thomas@thurman.org.uk>
Abstract out the functions for setting/unsetting demands attention
hint and avoid doing it when the window isn't obscured. Fixes the
remainder of #305882.
* src/window.c, src/window.h (meta_window_set_demands_attention,
meta_window_unset_demands_attention): new functions to mark a
window as needing or not needing the user's attention
* src/window.c (meta_window_show, window_activate,
meta_window_focus, meta_window_configure_request,
meta_window_client_message): use the new set/unset
demands attention functions.
2006-03-29 Björn Lindqvist <bjourne@gmail.com>
* src/resizepopup.c:
* src/resizepopup.h:
* src/window.c (meta_window_refresh_resize_popup):
Aggregate the x, y, width and height attributes of MetaResizePopup
to one MetaRectangle rect attribute and update code using the
MetaResizePopup struct. Fixes #335177.
2006-03-28 Elijah Newren <newren gmail com>
* MAINTAINERS: New file. #335026. ;-)
Tue Mar 28 09:57:26 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_add_window): Also check for overlay_window.
* src/c-screen.c (meta_screen_info_redirect): Trap errors out of
unredirect().
2006-03-25 Thomas Thurman <thomas@thurman.org.uk>
* src/window.c, src/window.h (update_net_wm_state,
update_mwm_hints, update_wm_class, update_transient_for):
deleted and moved into window-props.c
(meta_window_new_with_attrs): added constructing field
and four new initial properties (as above)
(meta_window_recalc_features,
meta_window_recalc_window_type): new functions
* src/window-props.c (init_net_wm_state, reload_net_wm_state
init_mwm_hints, reload_mwm_hints, init_wm_class,
reload_mwm_class, init_transient_for, reload_transient_for):
new functions, moved in from window.c
(meta_display_init_window_prop_hooks): initialise new properties
Closes #309567.
2006-03-25 Paolo Borelli <pborelli@katamail.com>
* src/prefs.c: use g_str_has_prefix instead of a local copy
of the function.
2006-03-16 Ray Strode <rstrode@redhat.com>
Add patch from Elijah Newren to fix type
for compositing_manager schema entry (bug 335901)
* src/metacity.schemas.in: Change type from "boolean" to "bool"
and default value from "FALSE" to "false"
Wed Mar 22 13:16:48 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_remove_window): Actually
remove the window.
* src/c-screen.c (meta_screen_info_remove_window): Only remove
node if non-NULL
Wed Mar 22 10:33:21 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_redirect): Put a square below
the desktop stack.
Mon Mar 20 11:50:44 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_redirect): Put the desktop into
a magnifier.
* src/c-screen.c (struct MetaScreenInfo): Add a CmMagnifier
* src/c-screen.c (meta_screen_info_redirect): Move some of the gl
window related stuff here.
2006-03-16 Soren Sandmann (sandmann@daimi.au.dk)
* src/c-screen.c (meta_screen_info_set_target_rect): Put inside
COMPOSIT_EXTENSIONS
2006-03-03 Thomas Thurman <thomas@thurman.org.uk>
Always set _NET_WM_STATE when a window is shown or
hidden, even if it wasn't mapped. Fixes #315142.
* src/window.c (meta_window_hide, meta_window_show):
call set_net_wm_state unconditionally
2006-03-16 Elijah Newren <newren gmail com>
Add debugging information for edge resistance
* src/edge-resistance.c (cache_edges): print out the edges that
are being cached if in verbose mode,
(meta_window_edge_resistance_for_move,
meta_window_edge_resistance_for_resize): if edge resistance kicked
in then print out a message about it
* src/util.c:
* src/util.h:
Add META_DEBUG_EDGE_RESISTANCE to MetaDebugTopic enum list
Thu Mar 16 14:55:18 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (struct WindowInfo): Maintain the size of the
window.
Wed Mar 15 16:30:09 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (set_geometry): Use set_target_rect() instead
of set_size().
* src/c-screen.c: Add set_target_rect() as a way of scaling windows.
* src/window.c (meta_window_handle_mouse_grab_op_event): Turn
updates on after a button release.
* src/window.c (meta_window_move_resize_internal): Fix
indentation.
Wed Mar 15 11:34:54 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_add_window): Use unset_patch()
instead of unset_geometry().
Tue Mar 14 11:57:46 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Comment out wobbling
* src/compositor.c (blow_up): remove this function
* src/compositor.c (process_configure_notify): Uncomment
set_size().
* src/c-screen.c (meta_screen_info_set_updates): When updates are
true, set all the properties such as size and shape.
* src/c-screen.c (meta_screen_info_add_window): Create a special
WindowInfo structure for each window.
* src/c-screen.c (meta_screen_info_set_size): Set size and output
shape of the drawable node.
2006-03-13 Elijah Newren <newren gmail com>
* README:
* configure.in:
Update to reflect that we're now targetting 2.15 development.
2006-03-12 Thomas Thurman <thomas@thurman.org.uk>
* src/window-props.c (set_title_text): Mark a particular
string for translation. #334332.
2006-03-06 Ryan Lortie <desrt@desrt.ca>
* src/window.c (meta_window_free): Only unmaximise window before
freeing if the window is actually maximised. #333563.
Fri Mar 3 15:31:04 2006 Søren Sandmann <sandmann@redhat.com>
* src/c-screen.c (meta_screen_info_new): Update for libcm API
change.
Wed Mar 3 13:25:03 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c, src/c-screen.[ch]: Split the ScreenInfo data
structure into separate, new files c-screen.[ch].
* src/errors.c (x_error_handler): Forward foreign errors to
foreign displays.
* src/errors.c (meta_errors_register_foreign_display): Implement
this function
* src/errors.h: Add new meta_errors_register_foreign_display()
Tue Feb 28 14:49:23 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Put the windows in a stacker rather than
do the traversing outselves.
2006-02-27 Elijah Newren <newren gmail com>
Patch from Thomas Thurman to prevent setting cycle_windows to
keybindings that won't work. #329676
* src/prefs.c (update_binding):
Make sure that bindings which require a modifier key are set to a
keybinding with one or else that the binding is reverted.
* src/ui.[ch] (meta_ui_accelerator_name):
New function
2006-02-27 Elijah Newren <newren gmail com>
Patch from Thomas Thurman to work around buggy application
grouping with transient windows. #328211
* src/group.c (meta_window_compute_group):
Put transients in the same group with their parent, always.
* src/window.c (update_transient_for):
Update group too
2006-02-27 Elijah Newren <newren gmail com>
* configure.in:
Patch from Sylvain Bertrand to fix build issues with library
search order. #330695.
Sat Feb 25 14:50:17 2006 Søren Sandmann <sandmann@redhat.com>
* src/window.c: Remove include of flash.h
Sat Feb 25 11:46:14 2006 Søren Sandmann <sandmann@redhat.com>
* src/display.c (meta_display_begin_grab_op): Call
meta_compositor_begin_move if there is a compositor
* src/compositor.c (meta_compositor_begin/update/end_move):
Implement those functions.
* src/spring-model.[ch]: New files
Thu Feb 23 15:40:52 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_manage_screen): Don't attempt
to manage the screen if it already is managed.
* src/compositor.c (meta_compositor_unmanage_screen): Synchronize
the display.
2006-02-19 Thomas Thurman <thomas thurman org uk>
Removed "move to another workspace" menu when there are
exactly two workspaces. Fixes #151183.
* src/menu.c (meta_window_menu_new): clear
META_MENU_OP_WORKSPACES bit when n_workspaces==2
Fri Feb 17 11:56:35 2006 Søren Sandmann <sandmann@redhat.com>
* src/screen.c (meta_screen_free): Only uncomposite the screen if
there is a compositor.
* src/compositor.c (meta_compositor_new): Warn and fail if the
server doesn't have composite
Thu Feb 16 18:57:48 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Fix the build when --enable-compositor is
there.
Thu Feb 16 15:54:48 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Insert #ifdef's to make it build again
Thu Feb 16 15:24:42 2006 Søren Sandmann <sandmann@redhat.com>
* src/screen.c (meta_screen_composite_all_windows): New function.
* src/prefs.[ch], src/metacity.schemas.in: Add new
compositing_manager key.
* src/display.c (prefs_changed_callback): Handle
META_PREF_COMPOSITOR_MANAGER
* src/display.c (event_callback): Only call
meta_compositor_process_event() if there is in fact a compositor.
* src/display.c (enable/disable_compositor): Add code to
enable/disable compositor at runtime
Wed Feb 15 18:42:03 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.[ch]: Add code to destroy compositor. Implement
unmanage_screen() functionality.
Wed Feb 15 14:47:50 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_unminimize): Add unused wobbly
unminimize animation by Kristian
* src/compositor.c (meta_compositor_minimize): Add wobbly minimize
animation by Kristian.
* src/compositor.c: Add support for turning updates on and off.
* src/window.c (meta_window_move_resize_internal): Use
sync counter to make composited resizing tear free
2006-02-14 Elijah Newren <newren gmail com>
Patch from Jens Granseuer to fix more build issues with gcc 2.95.
#331166.
* src/prefs.c (meta_prefs_init):
Remove C99 style variable initiailization
2006-02-13 Elijah Newren <newren gmail com>
* configure.in: post-release version bump to 2.13.144
2006-02-13 Elijah Newren <newren gmail com>
* NEWS: 2.13.89 release
2006-02-13 Elijah Newren <newren gmail com>
* src/keybindings.c (process_tab_grab):
We had that prev_window code in multiple places and it was all
identical. Let's just stick it in one place to make the function
easier to read.
2006-02-13 Thomas Thurman <thomas thurman org uk>
* src/keybindings.c (process_tab_grab):
Allow alt-escape to cancel alt-tabbing, and vice versa. Fixes
#141425.
2006-02-11 Thomas Thurman <thomas thurman org uk>
Disable alt-f7 if a window can't be moved, and alt-f8 if it
can't be resized. Fixes #328920.
* src/keybindings.c (handle_begin_move, handle_begin_resize):
check window->has_*_func before beginning operation
2006-02-11 Elijah Newren <newren gmail com>
Add a man page for metacity. Original version taken from Debian
(written by Thom May and Akira Tagoh) and updated by Luke Morton
and Philip O'Brien. Necessary auto-fu supplied by Philip O'Brien.
Fixes #321279.
2006-02-11 Elijah Newren <newren gmail com>
* src/stack.h (enum MetaStackLayer):
* src/stack.c (get_standalone_layer):
actually use META_LAYER_TOP but just manually make it equal to
META_LAYER_DOCK. Add a note point to the EWMH for why we do this.
#330717
2006-02-11 Elijah Newren <newren gmail com>
* src/window.c (enum GnomeWinLayer): remove this legacy cruft that
we stopped using years ago
2006-02-10 Thomas Thurman <thomas thurman org uk>
Avoid a memory leak when checking which workspace(s) a window is
on. Fixes #322059.
* src/workspace.h (struct MetaWorkspace):
* src/workspace.c (meta_workspace_new, meta_workspace_free):
added list_containing_self member to MetaWorkspace
* src/window.c (meta_window_get_workspaces): use
window->workspace->list_containing_self instead of allocating (and
leaking) such a list on the fly.
2006-02-09 Thomas Thurman <thomas thurman org uk>
* src/testboxes.c (test_regions_okay, test_clamping_to_region):
add messages to explain that warnings are harmless
Tue Feb 7 00:58:05 2006 Soeren Sandmann <sandmann@redhat.com>
* src/compositor.c: Wrap fade code in #ifdef HAVE_COMPOSITE_EXTENSIONS
Mon Feb 6 17:45:39 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: New fancy minimize animation. Fade windows in
and out.
2006-02-03 Thomas Thurman <thomas thurman org uk>
* src/display.c (event_callback): produce warning when invalid
events with no timestamp are received, rather than failing an
assertion
Thu Feb 2 17:58:22 2006 Søren Sandmann <sandmann@redhat.com>
* compositor.c (process_map): update the pixmap.
(update) print out framerate.
(dump_stacking_order) new debug
function.
(meta_compositor_add_window) error trap fixes
(MiniInfo): Make the minimize animation fade out.
2006-01-30 Elijah Newren <newren gmail.com>
* configure.in: post-release version bump to 2.13.89
2006-01-30 Elijah Newren <newren gmail com>
* NEWS: 2.13.55 release
2006-01-30 Elijah Newren <newren gmail com>
* src/display.[ch] (struct MetaDisplay), meta_display_open,
meta_display_set_input_focus_window,
meta_display_focus_the_no_focus_window): Track the active_screen,
(event_callback): If the mouse enters a window on a different
screen, activate the default window on the new screen. May need
to be modified for click-to-focus; we'll wait for feedback. Fixes
#319348.
2006-01-23 Elijah Newren <newren gmail com>
* src/display.c (meta_display_check_threshold_reached): change the
order of the ||'ed items in the if to avoid using an uninitialized
value
* src/prefs.c (meta_prefs_init): fix a couple uninitialized value
problems
2006-01-21 Elijah Newren <newren gmail com>
Patch from Christian Kirbach to prevent a critical warning crasher
when switching themes. #327847.
* src/theme.c (meta_theme_free): since themes are only constructed
as needed and may be NULL, check for that before freeing theme
hash tables
2006-01-21 Elijah Newren <newren gmail com>
* src/common.h (enum MetaActionDoubleClickTitlebar):
* src/frames.c (meta_frames_button_press_event):
* src/prefs.c (action_double_click_titlebar_from_string):
* src/metacity.schemas.in:
Patch from Dick Marinus to add a minimize
double-click-titlebar-action; slightly modified to also include a
none action. #300210.
2006-01-20 Elijah Newren <newren gmail.com>
* configure.in: post-release version bump to 2.13.55
2006-01-20 Elijah Newren <newren gmail com>
* NEWS: 2.13.34 release
2006-01-20 Elijah Newren <newren gmail com>
* src/constraints.c (setup_constraint_info): fixed_directions is
only meant for explicit user interactions; disable it for
everything else. There are other bugs and improvements that could
be made with fixed_directions that I should be filing too, but at
least put a FIXME there for now--I'm so lame. Fixes #327822.
2006-01-20 Elijah Newren <newren gmail com>
Avoid flashing when closing a maximized window. Fixes #317254.
* src/window.c (unmaximize_window_before_freeing): new function
that just fixes the net_wm_state and sends a configure_notify,
(meta_window_free): use unmaximize_window_before_freeing() instead
of meta_window_unmaximize() to avoid flicker
2006-01-20 Elijah Newren <newren gmail com>
Fix unitialized value problem when in raise-on-click mode. Søren,
#327572.
* src/display.c (meta_display_check_threshold_reached): make
function be a no op if raise_on_click!=FALSE
* src/display.h (struct MetaDisplay): point out that
grab_initial_[xy] and grab_threshold_movement_reached are only for
raise_on_click==FALSE mode.
2006-01-20 Elijah Newren <newren gmail com>
Patch from Søren to fix some reading-from-free'd-data errors.
#327575
* src/edge-resistance.c (meta_display_cleanup_edges): store the
edges in a hash table so that we can still read their values
within the loop from the other array they are stored in, then free
them all at the end.
2006-01-20 Elijah Newren <newren gmail com>
Fix various initialization and default issues, especially for
--disable-gconf. Make --disable-gconf actually work. #326661.
* configure.in: Fix compilation with --disable-gconf
* src/metacity.schemas.in: Add a note that if any defaults are
changed in this file, src/prefs.c may need to be updated to
reflect the change
* src/prefs.c: set various static global vars to the right default
value, (meta_prefs_init): get the titlebar_font and current_theme
handled better when not using gconf, (struct MetaSimpleKeyMapping,
screen_string_bindings, window_string_bindings): helper vars to
allow some keybindings to work even without gconf,
(init_bindings): initialize bindings for the without-gconf case
too, (init_commands): make sure these are all NULL for the
non-gconf case so that we don't access random memory,
(init_workspace_names): just give these all a default name for the
non-gconf case,
(meta_prefs_change_workspace_name): actually change the name for
the non-gconf case too
2006-01-20 Elijah Newren <newren gmail com>
More careful error handling of values returned by GConf. Fixes
#326615.
* src/prefs.c (get_bool): new helper function, (meta_prefs_init):
use get_bool to handle the case of a gconf key not existing,
(update_cursor_size): sanity check for sane values
2006-01-20 Elijah Newren <newren gmail com>
Prevent rapidly repeated visual bells from hanging metacity.
Fixes #322032.
* src/display.h (struct MetaDisplay): add a last_bell_time field,
(XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS macro,
XERVER_TIME_IS_BEFORE macro): add parentheses around usage of
macro parameter
* src/display.c (meta_display_open): initialize last_bell_time,
(event_callback): don't allow more than one bell per second
2006-01-20 Elijah Newren <newren gmail com>
* src/async-getprop.c:
* src/common.h:
* src/display.c:
* src/eggaccelerators.c:
* src/frames.c:
* src/gradient.c:
* src/iconcache.c:
* src/keybindings.c:
* src/metaaccellabel.c:
* src/place.c:
* src/prefs.c:
* src/preview-widget.c:
* src/screen.c:
* src/session.c:
* src/stack.c:
* src/tabpopup.c:
* src/theme-viewer.c:
* src/theme.c:
* src/window-props.c:
* src/window.c:
* src/workspace.c:
* src/tools/metacity-window-demo.c:
* src/wm-tester/test-gravity.c:
* src/wm-tester/test-resizing.c:
* src/wm-tester/test-size-hints.c:
Patch from Kjartan Maraas to fix a lot of tiny issues (unused
variable removal, making unused variables used again, correction
of types passed/declared for printf arguments, removal of unneeded
breaks and returns, dead code removal, dead code revival, renaming
to prevent shadowed variables, declaring unexported functions as
static) spotted by the intel compiler. #321439
2006-01-20 Elijah Newren <newren gmail com>
Patch from Björn Lindqvist to fix #98340.
* src/screen.c (meta_screen_ensure_tab_popup): Make sure an
outline border is shown even if a window frame's width is 0.
Also, correctly handle window outlines in showing desktop mode.
Fri Jan 20 16:42:25 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Make minimize animation update again.
Thu Jan 19 18:05:47 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_manage_screen):
g_object_unref() rather than ws_region_unref().
Thu Jan 19 16:50:50 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Port to changes in libcm
Tue Jan 17 17:25:29 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c: Port to changes in libcm.
2006-01-16 Elijah Newren <newren gmail com>
* src/window-props.c: manually define HOST_NAME_MAX if not already
defined to fix Solaris compilation issue. Caught by Damien
Carbery, patch from Havoc. #326745
2006-01-16 Elijah Newren <newren gmail.com>
* configure.in: post-release version bump to 2.13.34
2006-01-16 Elijah Newren <newren gmail com>
* NEWS: 2.13.21 release
Mon Jan 16 11:55:20 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_manage_screen): Really turn
off draw-in-a-loop.
2006-01-15 Kyle Ambroff <kambroff@csus.edu>
* src/workspace.c (focus_ancestor_or_mru_window):
If no valid window is found in the MRU list, then set focus to the
desktop window. (#317405)
2006-01-15 Elijah Newren <newren gmail com>
Fix accidental overzealous focus holding by the terminal
introduced by the original patch in bug 326159. Windows launched
from panel icons, the panel menu, or global keybindings should get
focus now. #326159.
* src/display.c (meta_display_open, event_callback):
* src/display.h (struct MetaDisplay):
* src/keybindings.c (process_event):
* src/window.c (meta_window_set_user_time):
Add a new allow_terminal_deactivation field to MetaDisplay and use
it to track whether the user's last action was interaction with
the terminal or some outside action (global keybinding, clicking
on a dock, etc.) likely to launch a new window.
* src/window.c (window_state_on_map):
Allow the focus switch from a terminal to something else if
allow_terminal_deactiviation is true.
* src/keybindings.c (handle_panel_keybinding):
Remove some unneeded code.
2006-01-15 Elijah Newren <newren gmail com>
Patch from Jens Granseuer to fix more build issues with gcc 2.95.
#327050.
* src/boxes.c (meta_rectangle_edge_cmp_ignore_type):
* src/window.c (meta_window_show):
Remove C99 style variable initiailization
2006-01-14 Elijah Newren <newren gmail com>
* src/window.c (__window_is_terminal): Don't dereference a NULL
string. Fixes #327013.
2006-01-14 Elijah Newren <newren gmail com>
* src/compositor.[ch]: fix compilation when
HAVE_COMPOSITE_EXTENSIONS is undefined. #326912
Fri Jan 13 16:37:26 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (update): Only update on damage events.
2006-01-13 Elijah Newren <newren gmail com>
Patch from Damien Carbery. Fixes #326746.
* src/util.c: explicitly #include Xlib.h to fix a compilation
issue on Solaris.
Fri Jan 13 14:40:19 2006 Søren Sandmann <sandmann@redhat.com>
* configure.in: Add a dependency on libcm when building with
compositor.
* src/window.c (meta_window_hide): Make this function static.
* src/window.c (implement_showing): Use meta_compositor_minimize()
to do a weird minimize effect.
* src/compositor.[ch]: Beginning of new GL based compositor.
* src/screen.h (struct _MetaScreen): Add void pointer to
compositor data.
* src/screen.c (meta_screen_new): Remove obsolete compositor
stuff; initialize compositor_data. Don't composite manage screen
out of this function.
* src/errors.c (x_error_handler): Check that display is non-NULL
before using it. Add comment about how that can happen.
* src/display.c (meta_display_{begin,end}_grab_op): Remove
explicity damage of windows.
* src/display.c (meta_display_open): Composite manage all the
screens.
2006-01-11 Elijah Newren <newren gmail com>
* src/textboxes.c (test_area, test_intersect, test_equal,
test_overlap_funcs, test_basic_fitting, test_merge_regions,
test_regions_okay, test_region_fitting, test_clamping_to_region,
test_clipping_to_region, test_shoving_into_region,
test_find_onscreen_edges,
test_find_nonintersected_xinerama_edges, test_gravity_resize,
test_find_closest_point_to_line):
Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser
compilers don't support the former. Caught by Damien Carbery, fix
suggested by Ray Strode. #326281.
2006-01-10 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.21
2006-01-10 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.13 release
2006-01-10 Elijah Newren <newren@gmail.com>
* src/bell.c:
* src/boxes.c:
* src/boxes.h:
* src/constraints.c:
* src/core.c:
* src/display.c:
* src/display.h:
* src/edge-resistance.c:
* src/frames.c:
* src/keybindings.c:
* src/main.c:
* src/prefs.c:
* src/prefs.h:
* src/screen.c:
* src/screen.h:
* src/window.c:
* src/window.h:
Whoops, I forgot to keep my copyright info updated with my previous
commits as Havoc had asked me to do. Doing that now...
2006-01-10 Elijah Newren <newren@gmail.com>
Add a raise on click option, basically only because all the major
distros are patching it in anyway. See #326156.
* src/metacity.schemas.in: add the new gconf key and explanation
* src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean
raise_on_click, update_raise_on_click, meta_prefs_init,
change_notify, meta_prefs_get_raise_on_click,
meta_preference_to_string):
Add all the normal preference handling stuff for this new
raise-on-click option.
* src/core.c (meta_core_show_window_menu):
* src/display.c (event_callback, meta_display_begin_grab_op):
* src/window.c (window_activate, meta_window_configure_request, ):
Only raise the window if in raise_on_click mode.
* src/display.c (meta_display_begin_grab_op,
meta_display_end_grab_op, meta_display_check_threshold_reached):
* src/display.h (struct MetaDisplay):
* src/window.c (meta_window_handle_mouse_grab_op_event):
if not in raise-on-click mode only raise on button release if the
click didn't start a move or resize operation; needs a few extra
MetaDisplay fields to handle this
* src/core.c (meta_core_user_lower_and_unfocus):
no need to do the MRU shuffling if not maintaining the stacking
order == MRU order invariant
* src/frames.c (meta_frames_button_press_event):
* src/window.c (meta_window_begin_grab_op):
remove an unneeded window raising that is already handled elsewhere
2006-01-10 Elijah Newren <newren@gmail.com>
Don't "steal" focus from terminal windows for new window mappings
as the difference in usage between terminals and other apps seems
to suggest this difference in treatment. See #326159 for details,
feedback welcome.
* src/window.[ch] (__window_is_terminal): New function, currently
an ugly hack and should be replaced by a new property set by
applications if the behavior works to our liking,
(window_state_on_map): don't transfer focus to new windows from
terminals unless the new window is a transient of the focused
terminal
* src/keybindigns.c (handle_panel_keybinding): panel run dialog
keybinding should be counted as an explicit transfer of focus to
the new window, so override the
don't-transfer-focus-from-terminals in this case
2006-01-09 Elijah Newren <newren@gmail.com>
More thorough handling of source indication. Part of #326041.
* src/window.c (window_activate): new function based off the old
meta_window_activate but which also takes source indication into
account, (meta_window_active): just call window_activate() with
the necessary source indication to get the behavior wanted,
(meta_window_client_message): check source indication too for
_net_active_window messages
* src/window.h (enum MetaClientType): convenience enum for source
indication handling
2006-01-09 Elijah Newren <newren@gmail.com>
Make the taskbar less flash happy and fix up some related stacking
issues. #326035.
* src/window.c (windows_overlap): new function,
(meta_window_show): if a window is denied focus but doesn't
overlap with the focus window there is no need to set the demands
attention hint nor stack that window below the focus window,
(meta_window_get_outer_rect): we're not modifying the window so
declare it to be const
2006-01-09 Elijah Newren <newren@gmail.com>
Fix window outline for minimized windows when using alt-esc.
#325092.
* src/display.c (meta_display_begin_grab_op): Specify the showing
type of tabbing operation (Alt tab vs. alt-esc) in addition to the
listing type of tabbing operation (docks vs normal windows) to
meta_screen_ensure_tab_popup().
* src/display.h (enum MetaTabShowType): new convenience enum
* src/screen.[ch] (meta_screen_ensure_tab_popup): require the
showing type be specified in addition to the tabbing type; put the
outline around the window instead of the icon when in alt-esc
mode.
2006-01-09 Elijah Newren <newren@gmail.com>
Fix reduced resources resize handling for windows with sizing or
resizing constraints. #325774.
* src/display.c (meta_display_end_grab_op): Provide constraints.c
with the correct gravity information.
2006-01-09 Elijah Newren <newren@gmail.com>
Be more strict about what is considered a valid region with
partial struts. Fixes #322070.
* src/boxes.[ch]:
(meta_rectangle_expand_region_conditionally):
new function behaving like meta_rectangle_expand_region() but
which only does so when the width and height of the rectangles
meet a certain threshold
(replace_rect_with_list):
Remove a compiling warning
* src/constraints.c:
(constrain_partially_onscreen):
provide minimum thresholds in each direction for the size of the
rectangles to avoid cases where only a single pixel thick layer of
a window might be showing
2006-01-09 Elijah Newren <newren@gmail.com>
* src/bell.c (meta_bell_notify_frame_destroy): Use the right
function to remove the timeout so that we don't crash if removed
at an inopportune time. Fixes #322031.
2006-01-09 Elijah Newren <newren@gmail.com>
* src/edge-resistance.c (apply_edge_resistance): Remove the
"pull-away" edge resistance. Fixes another of the zillions of
issues covered in #321905.
2006-01-09 Elijah Newren <newren@gmail.com>
* src/edge-resistance.c (apply_edge_resistance): Revert to the old
edge resistance behavior for keyboard movement/resizing based
resistance. Not only makes the code much simpler and shorter, but
also fixes another of the zillions of issues covered in #321905.
2006-01-09 Elijah Newren <newren@gmail.com>
* src/edge-resistance.c (apply_edge_resistance): Remove the
timeout resistance at screen/xinerama edges for the whiners.
Okay, it made sense. Fixes another of the zillions of issues
covered in #321905.
2006-01-09 Elijah Newren <newren@gmail.com>
* src/edge-resistance.c (apply_edge_resistance): Make extra
timeout edge resistance apply even if one edge already offscreen.
Fixes another of the zillions of issues covered in #321905.
2006-01-09 Elijah Newren <newren@gmail.com>
Allow edge resistance at both sides of a window and also when
edges don't overlap but are a single pixel away from doing so.
Fixes one of the zillions of issues covered in #321905.
* src/boxes.[ch]:
(meta_rectangle_edges_align):
new function to handle the overlap or off by one determining
whether edge resistance should kick in for an edge.
(meta_rectangle_edge_cmp_ignore_type):
new function to sort edges but ignore the type so that e.g. left &
right edges of windows can be used interchangeably.
(meta_rectangle_edge_cmp):
now uses meta_rectangle_edge_cmp_ignore_type() to do most the work
and just adds an extra condition
* src/edge-resistance.c:
(find_nearest_position):
use meta_rectangle_edges_align() now to determine whether the
edges align,
(apply_edge_resistance, apply_edge_resistance_to_each_side):
have the edge resistance kick in if either the beginning or ending
positions would cause overlap in the given direction -- fixes an
uncommon but annoying corner case,
(apply_edge_snapping, apply_edge_resistance_to_each_side,
meta_display_cleanup_edges,
stupid_sort_requiring_extra_pointer_dereference, cache_edges):
mix edges from both sides now
2006-01-09 Elijah Newren <newren@gmail.com>
Plug a few leaks. Fixes #309178.
* src/main.c (main): remove an unneeded g_set_prgname() call, free
some strings allocated by the GOptions parsing
2006-01-02 Elijah Newren <newren@gmail.com>
Patch from Björn Lindqvist to fix a logic error. #322149.
* src/window.c (update_resize): && should have been ||.
2006-01-02 Elijah Newren <newren@gmail.com>
Patch from Jens Granseuer to fix build with gcc 2.95. #322622.
* src/boxes.c (meta_rectangle_region_to_string,
meta_rectangle_edge_list_to_string, fix_up_edges):
* src/constraints.c (meta_window_constrain, setup_constraint_info,
place_window_if_needed, constrain_maximization,
constrain_fullscreen, constrain_size_increments,
constrain_size_limits, constrain_aspect_ratio,
do_screen_and_xinerama_relative_constrai,
constrain_to_single_xinerama, constrain_fully_onscreen,
constrain_partially_onscreen):
* src/edge-resistance.c (find_nearest_position,
apply_edge_resistance, apply_edge_resistance_to_each_side):
* src/testboxes.c (test_clamping_to_region,
test_clipping_to_region, test_shoving_into_region):
* src/window.c (meta_window_new_with_attrs,
meta_window_apply_session_info, meta_window_resize,
meta_window_resize_with_gravity, meta_window_configure_request):
Remove C99 style variable initiailization
2006-01-02 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.13
2006-01-02 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.8 release
2005-12-27 Elijah Newren <newren@gmail.com>
Make the workspace switcher work with dual-head (non-xinerama)
setups. Fixes #319423.
* src/display.c (meta_display_open, event_callback,
meta_display_focus_the_no_focus_window):
* src/display.h (struct MetaDisplay,
meta_display_focus_the_no_focus_window):
* src/keybindings.c (primary_modifier_still_pressed):
* src/screen.c (meta_screen_new):
* src/screen.h (struct MetaScreen):
* src/window.c (meta_window_new_with_attrs, meta_window_show):
* src/workspace.c (meta_workspace_focus_default_window):
Replace display->no_focus_window with a no_focus_window for each
screen.
* src/display.[ch] (meta_display_xwindow_is_a_no_focus_window,
event_callback):
* src/window.c (meta_window_new_with_attrs):
New utility function, meta_display_xwindow_is_a_no_focus_window(),
for checking if the given xwindow is a no_focus_window for one of
the screens.
2005-12-27 Elijah Newren <newren@gmail.com>
* src/tabpopup.c (meta_ui_tab_popup_new): since the title is going
to be treated as markup, escape it. Fixes #324846.
2005-12-13 Kang Jeong-Hee <Keizi@mail.co.kr>
* src/compositor.c: replace old call to width and height
of MetaScreen struct with rect.width and rect.height.
Now compile ok.
* src/delete.c: make an int variable into unsigned int.
Now compile warning has gone.
2005-12-12 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.8
2005-12-12 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.5 release
2005-12-12 Elijah Newren <newren@gmail.com>
* src/window.c (update_net_frame_extents): make the debugging
message actually correspond to the code. Patch from Björn
Lindqvist. Fixes #322051.
2005-11-29 Kjartan Maraas <kmaraas@gnome.org>
* src/screen.h: Make the wireframe a bit slimmer.
Closes bug #320051.
2005-11-24 Davyd Madeley <davyd@fugro-fsi.com.au>
* src/window-props.c: display hostname in titlebar for remote X
clients. Closes bug #322202.
2005-11-22 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.5
2005-11-22 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.3 release
2005-11-22 Elijah Newren <newren@gmail.com>
Don't allow removing a window from maximized or fullscreened state
to place the titlebar under the top panel. Fixes #322075.
* src/display.c (handle_net_moveresize_window): fix up previous
comments now that I know a little more, modify the code just
slightly to clarify that this is NOT a manual user move/resize
operation
* src/window.c (meta_window_unmaximize,
meta_window_unmake_fullscreen,
meta_window_shove_titlebar_onscreen):
don't claim that these are manual user move/resize operations
2005-11-21 Elijah Newren <newren@gmail.com>
* src/constraints.c (constrain_partially_onscreen): Relax the
partially onscreen constraint to allow the titlebar to touch the
bottom panel in order to make the new constraints code function
the same as the old version. Fixes #322071.
2005-11-21 Elijah Newren <newren@gmail.com>
* src/constraints.c (place_window_if_needed): When updating the
xinerama due to placement, update which maximal/spanning rect set
to use as well. Fixes #322068.
2005-11-21 Elijah Newren <newren@gmail.com>
* doc/strut-and-related-updating.txt: It took me a little while to
figure out how struts & workareas are updated and to learn what
all the related functions were used for so I thought I'd clean up
my notes and make them available. This will probably be more
useful now since regions and edges are also computed and stored at
the same time as the workareas.
2005-11-20 Elijah Newren <newren@gmail.com>
* src/constraints.c (place_window_if_needed): compute the frame
geometry due to maximization only after actually maximizing.
Fixes #321902.
2005-11-21 Davyd Madeley <davyd@fugro-fsi.com.au>
* src/edge-resistance.c (meta_display_compute_resistance_and_snap):
Use GPOINTER_TO_INT() macro instead of cast to allow compilation on
64-bit architectures without warning.
2005-11-19 Elijah Newren <newren@gmail.com>
* src/edge-resistance.c (apply_edge_resistance): differentiate
between movement towards an edge and movement away from one. Pick
smaller constants for movement away from an edge.
2005-11-19 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.3
2005-11-19 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.2 release
2005-11-18 Elijah Newren <newren@gmail.com>
Merge of all the changes on the constraints_experiments branch.
This is just a summary, to get the full ChangeLog of those
changes (approx. 2000 lines):
cvs -q -z3 update -Pd -r constraints_experiments
cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog
Bugs fixed:
unfiled - constraints.c is overly complicated[1]
unfiled - constraints.c is not robust when all constraints
cannot simultaneously be met (constraints need to be
prioritized)
unfiled - keep-titlebar-onscreen constraint is decoration
unaware (since get_outermost_onscreen_positions()
forgets to include decorations)
unfiled - keyboard snap-moving and snap-resizing snap to hidden
edges
86644 - resize should have a shift option like move does
109553 - gravity w/ simultaneous move & resize doesn't work
113601 - maximize vertical and horizontal should toggle and be
constrained
122196 - windows show up under vertical panels
122670 - jerky/random resizing of window via keyboard[2]
124582 - keyboard and mouse snap-resizing and snap-moving
erroneously moves the window multidimensionally
136307 - don't allow apps to resize themselves off the screen
(*cough* filechooser *cough*)
142016, 143784 - windows should not span multiple xineramas
unless placed there by the user
143145 - clamp new windows to screensize and force them
onscreen, if they'll fit
144126 - Handle pathological strut lists sanely[3]
149867 - fixed aspect ratio windows are difficult to resize[4]
152898 - make screen edges consistent; allow easy slamming of
windows into the left, right, and bottom edges of the
screen too.
154706 - bouncing weirdness at screen edge with keyboard moving
or resizing
156699 - avoid struts when placing windows, if possible (nasty
a11y blocker)
302456 - dragging offscreen too restrictive
304857 - wireframe moving off the top of the screen is misleading
308521 - make uni-directional resizing easier with
alt-middle-drag and prevent the occasional super
annoying resize-the-wrong-side(s) behavior
312007 - snap-resize moves windows with a minimum size
constraint
312104 - resizing the top of a window can cause the bottom to
grow
319351 - don't instantly snap on mouse-move-snapping, remove
braindeadedness of having order of releasing shift and
releasing button press matter so much
[1] fixed in my opinion, anyway.
[2] Actually, it's not totally fixed--it's just annoying
instead of almost completely unusable. Matthias had a
suggestion that may fix the remainder of the problems (see
http://tinyurl.com/bwzuu).
[3] This bug was originally about not-quite-so-pathological
cases but was left open for the worse cases. The code from
the branch handles the remainder of the cases mentioned in
this bug.
[4] Actually, although it's far better there's still some minor
issues left: a slight drift that's only noticeable after
lots of resizing, and potential problems with partially
onscreen constraints due to not clearing any
fixed_directions flags (aspect ratio windows get resized in
both directions and thus aren't fixed in one of them)
New feature:
81704 - edge resistance for user move and resize operations;
in particular 3 different kinds of resistance are
implemented:
Pixel-Distance: window movement is resisted when it
aligns with an edge unless the movement is greater than
a threshold number of pixels
Timeout: window movement past an edge is prevented until
a certain amount of time has elapsed during the
operation since the first request to move it past that
edge
Keyboard-Buildup: when moving or resizing with the
keyboard, once a window is aligned with a certain edge
it cannot move past until the correct direction has
been pressed enough times (e.g. 2 or 3 times)
Major changes:
- constraints.c has been rewritten; very few lines of code from
the old version remain. There is a comment near the top of
the function explaining the basics of how the new framework
works. A more detailed explanation can be found in
doc/how-constraints-works.txt
- edge-resistance.[ch] are new files implementing edge-resistance.
- boxes.[ch] are new files containing low-level error-prone
functions used heavily in constraints.c and edge-resistance.c,
among various places throughout the code. testboxes.c
contains a thorough testsuite for the boxes.[ch] functions
compiled into a program, testboxes.
- meta_window_move_resize_internal() *must* be told the gravity
of the associated operation (if it's just a move operation,
the gravity will be ignored, but for resize and move+resize
the correct value is needed)
- the craziness of different values that
meta_window_move_resize_internal() accepts has been documented
in a large comment at the beginning of the function. It may
be possible to clean this up some, but until then things will
remain as they were before--caller beware.
- screen and xinerama usable areas (i.e. places not covered by
e.g. panels) are cached in the workspace now, as are the
screen and xinerama edges. These get updated with the
workarea in src/workspace.c:ensure_work_areas_validated()
2005-11-14 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.2
2005-11-14 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.1 release
2005-11-11 Aidan Delaney <a.j.delaney@brighton.ac.uk>
* src/tabpopup.h: (struct _MetaTabEntry):
* src/tabpopup.c: (meta_ui_tab_popup_new):
* src/screen.c: (meta_screen_ensure_tab_popup):
Changed the 'minimized' field of the MetaTabEntry struct to
'hidden'. Fixes reopened bug #168455.
2005-10-29 Kjartan Maraas <kmaraas@gnome.org>
* src/eventqueue.c: (meta_event_queue_new): Merge fix
for bug #320050 from stable.
2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com>
* configure.in: Added ku (Kurdish) to ALL_LINGUAS
2005-10-25 Philip O'Brien <philip.obrien@dal.ca>
* src/prefs.c (meta_preference_to_string): add handling for
META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more complete
debug info
2005-10-24 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.13.1
2005-10-24 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.0 release
2005-10-23 Elijah Newren <newren@gmail.com>
Fix edge snapping for multi-screen (non-xinerama) setups. #319425
* src/place.c (get_windows_showing_on_same_screen,
get_vertical_edges, get_horizontal_edges): rename
get_windows_on_same_workspace() to
get_windows_showing_on_same_screen()
* src/place.c (get_windows_showing_on_same_screen): exclude windows
in the list that are on a different screen
2005-10-20 Elijah Newren <newren@gmail.com>
* HACKING: Clarify why METACITY_VERBOSE=1 is bad without
META_USE_LOGFILE=1; point to bug 305091 for details.
2005-10-13 Muktha <muktha.narayan@wipro.com>
* src/themes/Simple/metacity-theme-1.xml: Make the unfocussed
Simple window border visible with high contrast inverse theme.
Fixes #121361.
2005-10-08 Elijah Newren <newren@gmail.com>
Fix a crash that occurs when removing some virtual desktops and
windows happen to be on those desktops. #318306.
* src/workspace.c (meta_workspace_relocate_windows): Since windows
cannot be on more than one workspace at a time, remove the window
from the old workspace before adding it to the new one.
2005-10-08 Elijah Newren <newren@gmail.com>
Add my copyright notice to a number of files on which it should
already exist.
2005-10-03 Elijah Newren <newren@gmail.com>
* src/metacity.schemas.in: clarify the meaning of the auto_raise
preference. Fixes one of the issues in #312421.
2005-10-03 Elijah Newren <newren@gmail.com>
Patch from Ross Cohen to make alt-esc consistent with alt-tab by
leaving stacking of unselected windows unchanged. Fixes #314285.
* src/keybindings.c (process_tab_grab): before raising and showing
the next candidate, reset the stack positions to what they were
at the beginning of the grab
2005-10-03 Elijah Newren <newren@gmail.com>
Patch from Ross Cohen to make alt-esc (show windows instantly)
actually show minimized windows too. Fixes #107072.
* src/keybindings.c (process_tab_grab): initialize tab_unminimized
to FALSE for the target window when starting the grab, when
advancing through the list check to find the previous window and
re-minimize it if it was tab-unminimized, unminimize the new
window we're alt-esc'ing to if it's minimized, (do_choose_window):
raise and unminimize the initial window as well in alt-esc'ing
* src/window.h (struct _MetaWindow): add a tab_unminimized field
* src/window.c (meta_window_new_with_attrs): initialize
tab_unminimized to false
2005-10-03 Elijah Newren <newren@gmail.com>
Branched for Gnome 2.13. :-)
* configure.in: bump version to 2.13.0. Add UNSTABLE warning.
* README: add 2.13.x to the list of unstable branches
2005-10-03 Elijah Newren <newren@gmail.com>
A combination of a couple memory leaks fixes, from Kjartan,
Soeren, and I. Fixes #313030.
* src/bell.c (meta_bell_flash_screen): call XFreeGC()
* src/frames.c (invalidate_cache): free pixels
* src/window.c (meta_window_show_menu): call
meta_screen_free_workspace_layout()
2005-10-03 Elijah Newren <newren@gmail.com>
Patch from Björn Lindqvist fix the workspace switcher tabpopup to
display the right windows and to fix the
pick-a-new-window-to-focus algorithm in order to not select
windows that aren't showing. Fixes #170475.
* src/tabpopup.c (meta_convert_meta_to_wnck,
meta_select_workspace_expose_event): factor out conversion code
from meta_select_workspace_expose_event() into the new
meta_convert_meta_to_wnck() function
* src/tabpopup.c (meta_select_workspace_expose_event):
* src/workspace.c (focus_ancestor_or_mru_window):
replace the buggy window->minimized logic with
!meta_window_showing_on_its_workspace (window)
2005-10-03 Elijah Newren <newren@gmail.com>
Patch from Björn Lindqvist to have ancestors come along with the
transient when moving the window from one workspace to another.
Fixes #314977.
* src/window.c (meta_window_change_workspace): have all ancestors
change workspaces too
2005-10-03 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.12.2
2005-10-03 Elijah Newren <newren@gmail.com>
* NEWS: 2.12.1 release
2005-10-03 Elijah Newren <newren@gmail.com>
Truncate ridiculously long titles to avoid crashing or letting the
pager crash. Based on patch from Ray, incorporating suggestions
from Havoc and some extensions of my own. Fixes #315070.
* src/display.c (set_utf8_string_hint, meta_display_open):
* src/xprops.[ch] (meta_prop_set_utf8_string_hint):
Move set_utf8_string_hint() to props.[ch], namespace it
("meta_prop_"), and make it public
* src/tabpopup.c (utf8_strndup, meta_ui_tab_popup_new):
* src/util.[ch] (meta_g_utf8_strndup):
Move utf8_strndup() to util.[ch], namespace it ("meta_g_"), and
make it public
* src/display.c (meta_display_open):
* src/display.h (struct _MetaDisplay):
add net_wm_visible_name and net_wm_visible_icon_name atoms to the
list of atoms we work with
* src/window-props.c (set_window_title, set_icon_title): If title
length is greater than 512, truncate it and set
_NET_WM_VISIBLE_NAME or _NET_WM_VISIBLE_ICON_NAME accordingly
2005-10-03 Elijah Newren <newren@gmail.com>
Get the tabbing window outline to work with gtk+ 2.8.4 again.
Fixes #317528.
* src/tabpopup.c (display_entry): gtk+ 2.8.4 needs to know the
mapped state of its windows (see bug 316180), and since we
manually map with gdk_window_show_unraised() we need to manually
set the mapped state too
2005-09-05 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.12.1
2005-09-05 Elijah Newren <newren@gmail.com>
* configure.in:
* README:
* NEWS:
2.12.0 release
2005-09-04 Danilo Šegan <danilo@gnome.org>
* configure.in: Added Armenian (hy) to ALL_LINGUAS.
2005-09-03 Elijah Newren <newren@gmail.com>
* HACKING: Add tips on how to more easily get the ids of windows,
and how to shorten xprop output.
2005-09-02 Brent Smith <gnome@nextreality.net>
* src/place.c: (meta_window_place): Moved the call to
meta_screen_get_natural_xinerama_list to earlier in
function so that xineramas_list is allocated before
find_first_fit is called. Fixes #315000
2005-08-22 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.11.5
2005-08-22 Elijah Newren <newren@gmail.com>
* NEWS: 2.11.3 release
2005-08-22 Elijah Newren <newren@gmail.com>
* configure.in: Patch from Björn Lindqvist to check for the
appropriate versions of glib and gtk. Fixes #314116.
2005-08-12 Elijah Newren <newren@gmail.com>
* src/place.c (meta_window_place): Avoid obscuring
centered-on-desktop windows which are denied focus. Fixes
#313234.
2005-08-08 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.11.3
2005-08-08 Elijah Newren <newren@gmail.com>
* NEWS: 2.11.2 release
2005-08-08 Elijah Newren <newren@gmail.com>
Patch from Brent Smith to fix a duplicate string. Fixes #309774.
* src/theme-parser.c (parse_toplevel_element, parse_draw_op_element):
Change "No \"%s\" attribute on element <%s>" string to "No \"%s\"
attribute on <%s> element"
2005-08-03 Ray Strode <rstrode@redhat.com>
Improve the behavior of keyboard move/resize and edge
snapping. Still not perfect, bug 310888.
* src/effects.c (draw_xor_rect): Make the outside of a
wireframe rectangle line up with the outside edge of its
window, instead of centering the wireframe edges on the
window edges.
* src/keybindings.c (process_keyboard_move_grab): allow
edge snapping in wireframe mode. Adjust code to take
into account changed semantics of find_next_*_edge
functions.
(process_keyboard_resize_grab_op_change): new function
to take some orthogonal logic out of
process_keyboard_resize_grab_op. Only allow keyboard
resize cursor to go to flat edges, not corners.
(process_keyboard_resize_grab): allow edge snapping in
wireframe mode. Fix up snapping logic.
* src/place.c (get_{vertical,horizontal}_edges): use
GArray instead of int *, since the number of output
edges isn't known until the middle of the function now.
Use xor rect extents instead of window extends if in
wireframe mode.
(meta_window_find_next_{vertical,horizontal}_edge: add
new source_edge_position parameter to specify which edge
on the active window to start from when looking for next
edge on the screen. Return the coordinate of the edge
found and not the coordinate of where the window should be
moved to snap to where the edge was found.
* src/window.c (update_move): all the user to specify
an edge to resize with mouse in keyboard resize mode.
window
2005-08-01 Elijah Newren <newren@gmail.com>
* src/metacity.schemas.in: Change default theme from "Simple" to
"Clearlooks".
2005-07-31 Elijah Newren <newren@gmail.com>
* src/stack.c (is_focused_foreach, get_standalone_layer): use only
the expected_focus_window instead of both the focused_window and
the expected_focus_window. Removes an infinite flicker loop in
sloppy and mouse focus, and an ugly one time flicker in click to
focus. Fixes #311400.
2005-07-30 Elijah Newren <newren@gmail.com>
Patch from Jaap Haitsma to make sure that Metacity dialogs have
icons. Fixes #309876.
* src/metacity-dialog.c (kill_window_question,
warn_about_no_sm_support, error_about_command): call
gtk_window_set_icon_name() to set the dialog icon
2005-07-28 Elijah Newren <newren@gmail.com>
* src/place.c (avoid_being_obscured_as_second_modal_dialog):
remove some unneeded debug spew that was causing crashes. Fixes
#311819.
2005-07-24 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.11.2
2005-07-24 Elijah Newren <newren@gmail.com>
* NEWS: 2.11.1 release
2005-07-24 Elijah Newren <newren@gmail.com>
* src/place.c (find_most_freespace): try to place windows denied
focus near the focus window and fix a xinerama bug with the
placement, (avoid_being_obscured_as_a_second_modal_dialog): avoid
modal dialogs being obscured in somewhat pathologically strange
circumstances that Eclipse seems to be good at triggering,
(meta_window_place): have dialog windows make use of
avoid_being_obscured_as_a_second_modal_dialog(). Fixes one of the
issues found in #307875.
2005-07-24 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_raise): raise the window as well as
its ancestor; fixes a stacking bug with an ancestor that has more
than one child window. Fixes one of the issues in #307875.
2005-07-24 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_free): restore original window size if
the window was maximized, as the FIXME says. ;-) Fixes #137185.
Thanks to Christian Persch for the testcase that made this easier
to track down.
2005-07-23 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_activate): revert the patch from
#128380--change _NET_ACTIVE_WINDOW behavior to what it originally
was.
2005-07-18 Matthias Clasen <mclasen@redhat.com>
* configure.in: Add checks for Xcursor, to make the changes
done on 2005-07-11 effective.
2005-07-14 Elijah Newren <newren@gmail.com>
Patch from Ken Harris to provide a more lenient threshold for
drawing rounded corners. Fixes #122065.
* src/theme.c (meta_frame_layout_calc_geometry): use height +
width > 5 instead of height > 3 && width > 3 as criterion
2005-07-13 Elijah Newren <newren@gmail.com>
Fix a slight bug (causing possible miscoloring of parts of the
titlebar) introduced by the patch from #169982.
* src/gradient.c:
(meta_gradient_create_interwoven):
(meta_gradient_create_multi_vertical):
bitshifting operators do not take precedence over typecasting, so
make sure to use parentheses to get the right operation order.
2005-07-12 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.11.1
2005-07-12 Elijah Newren <newren@gmail.com>
* NEWS: 2.11.0 release
2005-07-12 Elijah Newren <newren@gmail.com>
Patch from Andrew Johnson to speed up vertical gradients. Fixes
#169982.
* src/gradient.c:
(meta_gradient_create_interwoven):
(meta_gradient_create_vertical):
(meta_gradient_create_multi_vertical):
use memcpy instead of really long loops to set values in memory to
a given pattern.
2005-07-12 Elijah Newren <newren@gmail.com>
Patch from Björn Lindqvist to split up main() into more manageable
chunks and make use of GOpt. Closes #305331.
* src/main.c (usage): remove this function,
(meta_print_compilation_info): new function taken from main(),
(meta_print_self_identity): new function taken from main(),
(struct MetaArguments) new struct to replace some free variables,
(meta_parse_options): new funcion taken from main() but now using
GOpt, (meta_select_display): new function taken from main()
2005-07-12 Aivars Kalvans <aivars.kalvans@inbox.lv>
* src/screen.c (meta_screen_free): free ->xinerama_infos
Closes #307884
2005-07-11 Elijah Newren <newren@gmail.com>
Stuff I forgot to do when I branched an hour or so ago before
Matthias' commit...
* configure.in: bump version to 2.11.0. Add UNSTABLE warning.
* README: add 2.11.x to the list of unstable branches
2005-07-11 Matthias Clasen <mclasen@redhat.com>
React to cursor theme changes: (#308106)
* src/prefs.h:
* src/prefs.c: Expose the GConf keys for cursor theme
and size as preferences META_PREF_CURSOR_THEME and
META_PREF_CURSOR_SIZE with getters meta_prefs_get_cursor_theme()
and meta_prefs_get_cursor_size().
* src/display.c (meta_display_open): Initialize the cursor
theme and size.
* src/display.h:
* src/display.c (meta_display_set_cursor_theme): New function
to change the cursor theme and update all cursors.
* src/screen.h
* src/screen.c (meta_screen_update_cursor): New function to
refesh the root cursor of a screen.
* src/main.c (prefs_changed_callback): Update the cursor
theme when the cursor preferences change.
2005-06-27 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.10.3
2005-06-27 Elijah Newren <newren@gmail.com>
* NEWS: 2.10.2 release
Sun Jun 26 11:19:18 2005 Soeren Sandmann <sandmann@redhat.com>
* src/frames.c: Add a cache of pixmaps for recently exposed frame
areas. Makes metacity a bit faster when dragging windows around.
See bug 141813.
2005-06-10 Ryan Lortie <desrt@desrt.ca>
* src/frames.c: Prevent using the address of a local variable
as a hash key. (Bug #307209)
* src/xprops.c (meta_prop_get_values): Fix a small leak in the
case of a SYNC_COUNTER property value and HAVE_XSYNC not
defined. (Bug #307214)
2005-06-07 Ray Strode <rstrode@redhat.com>
Cleanup font data when done with it (bug 306720).
* src/effects.c (draw_xor_rect): free font info structure.
* src/screen.c (meta_screen_new): pass a 1 not a 0 to
XFreeFontInfo to free font info structure.
(meta_screen_free): call XUnloadFont on GC font before freeing
the GC.
2005-06-02 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_focus): if the window has a modal
transient which is being unmanaged, don't focus it. Fixes the
Metacity issue reported in #305362.
2005-05-30 Ray Strode <rstrode@redhat.com>
Bug 305564 again.
When drawing XOR resize popup use "fixed" font instead of
-misc-fixed-*-16-* xlfd. Should work on more xservers.
Also take steps to fail better if the xserver isn't
cooperating.
* src/effects.c (draw_xor_rect): if we can't draw font box
for whatever reason, at least draw grid frames.
* src/screen.c (meta_screen_new): use fixed alias instead
of a xfld. Don't pass GCFont to XCreateGC if font couldn't
be loaded. Print a warning if font couldn't be loaded.
2005-05-26 Elijah Newren <newren@gmail.com>
* HACKING: Add a clarification that METACITY_VERBOSE needs to be
accompanied by METACITY_USE_LOGFILE
2005-05-26 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_configure_request): Patch from Greg
Hudson to make sure window position is calculated correctly for
reconfigure requests when part of the XWindowChanges structure is
uninitialized. Fixes #305257.
2005-05-26 Ray Strode <rstrode@redhat.com>
Actually commit the stuff mentioned in the last
ChangeLog entry.
2005-05-26 Ray Strode <rstrode@redhat.com>
Add a resize popup when resizing constrained
windows, (bug 305564).
* src/display.c:
(meta_display_begin_grab_op),
(meta_display_end_grab_op):
* src/keybindings.c (process_keyboard_move_grab),
(process_keyboard_resize_grab): Call
meta_window_{begin,update,end}_wireframe convenience
functions instead of the meta_effects counterparts.
* src/display.h: keep track of old wireframe geometry to
clean up xor popup on resize
* src/effects.[ch] (meta_effects_begin_wireframe),
(meta_effects_update_wireframe),
(meta_effects_end_wireframe),
(draw_xor_rect): take optional width and height arguments
to show to user in resize popup. Draw resize popup if
width and height >= 0 and wireframe isn't smaller than
the popup would be.
* src/screen.c (meta_screen_new): load a largish font for
the resize popup
* src/window.[ch]
(meta_window_move_resize_internal): update
wireframe resize popup when the window is resized.
(meta_window_get_wireframe_geometry): new function to
calculate the numbers to display in resize popup
(meta_window_begin_wireframe),
(meta_window_update_wireframe),
(meta_window_end_wireframe): new functions to reduce
repetitive wireframe code. Functions handle updating
wireframe and resize popup geometry.
(update_move), (update_resize),
(meta_window_refresh_resize_popup): remove fixme and
add debug message.
2005-05-26 Elijah Newren <newren@gmail.com>
* src/window.c (check_maximize_to_work_area): don't accidentally
treat maximize vertically as maximize in both directions. Fixes
#302204.
2005-05-26 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_new_with_attrs): put all transients
of the new window, if any exist, in the calc_showing queue. Fixes
#303284. Thanks to Billy Biggs for the testcase that made this
easy to track down.
2005-04-11 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.10.2
2005-04-11 Elijah Newren <newren@gmail.com>
* NEWS: 2.10.1 release
2005-04-05 Dan Winship <danw@novell.com>
* src/metacity-dialog.c (warn_about_no_sm_support): Make sure the
"Close" button has the focus, not the table. (#172703)
2005-04-05 Pawan Chitrakar <pawan@nplinux.org>
* configure.in: Added ne in ALL_LINGUAS
2005-03-31 Steve Murphy <murf@e-tools.com>
* configure.in: Added "rw" to ALL_LINGUAS.
2005-03-17 Lex Hider <Lex.Hider@gmail.com>
* doc/Makefile.am (EXTRA_DIST): add doc/code-overview.txt and
doc/how-to-get-focus-right.txt
2005-03-10 Adi Attar <aattar@cvs.gnome.org>
* configure.in: Added "xh" to ALL_LINGUAS.
2005-03-07 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.10.1
2005-03-07 Elijah Newren <newren@gmail.com>
* configure.in:
* README:
* NEWS:
2.10.0 release
2005-02-28 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.55
2005-02-28 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.34 unstable release
2005-02-28 Elijah Newren <newren@gmail.com>
Patch from Aidan Delaney to make sure that icons in the alt-tab
popup are dimmed for all hidden windows, not just minimized ones.
Fixes #168455.
* src/screen.c: (meta_screen_ensure_tab_popup): make use
meta_window_showing_on_its_workspace() instead of just checking if
the window is minimized.
2005-02-25 Elijah Newren <newren@gmail.com>
Prevent the visual bell from changing the focus window. Fixes
#123366.
* src/bell.c: (meta_bell_flash_screen): if not in click-to-focus
mode and mouse_mode is also false, increment the focus sentinel so
that we can ignore spurious EnterNotify and LeaveNotify events.
* src.display.c: (event_callback): make sure to also ignore
LeaveNotify events when the focus sentinel isn't clear
2005-02-23 Elijah Newren <newren@gmail.com>
* src/window.c: (meta_window_new_with_attrs): Fix crash that
occurs when stupid apps claim that a window is its own parent.
#168207
2005-02-21 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.34
2005-02-21 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.21 unstable release
2005-02-21 Elijah Newren <newren@gmail.com>
Handle keynav vs. mousenav in mouse and sloppy focus modes. Fixes
#167545.
* doc/how-to-get-focus-right.txt: Update due to this new method
for handling keynav vs. mousenav, plus various other updates that
I previously forgot.
* src/display.h: (struct _MetaDisplay): add a mouse_mode boolean
* src/display.c: (meta_display_open): initialize mouse_mode to
true, (event_callback): have EnterNotify and LeaveNotify events
set mouse_mode to true when focusing a window
* src/keybindings.c: (process_tab_grab): set mouse_mode to false
when using alt-tab/alt-esc, (do_choose_window): likewise,
(do_handle_move_to_workspace): set mouse_mode to false on
move-window-to-workspace-<n> keybindings
* src/window.c (idle_calc_showing): if we're in keynav mode while
using sloppy or mouse focus, use metacity_sentinel to avoid
EnterNotify events being generated from events other than mouse
movement.
* src/workspace.c (meta_workspace_activate_with_focus): add a
FIXME in a potentially duplicate section of code,
(meta_workspace_focus_default_window): use the same focus choice
as click-to-focus if in keynav mode.
2005-02-20 Elijah Newren <newren@gmail.com>
* src/display.c: (event_callback): Handle _NET_CURRENT_DESKTOP
messages that come with timestamps. Fixes the metacity portion of
#161361 other than the portion handled by #128380.
2005-02-20 Elijah Newren <newren@gmail.com>
* src/window.c: (meta_window_activate): when receiving a
_NET_ACTIVE_WINDOW message, switch to the desktop where the window
is located before activating instead of moving the window to the
current desktop. Thanks to Lubos Lunak for catching this issue.
Fixes #128380.
2005-02-20 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_show): Ignore all focus and
focus-stealing-prevention code in meta_window_show when not
showing the window for the first time. Fixes #167199.
2005-02-20 Elijah Newren <newren@gmail.com>
Fix an obscure xinerama placement bug with windows that are too
large to fit in the workarea in both dimensions. #166757
* src/place.c: (meta_window_place): use the current xinerama
instead of arbitrarily resetting to 0
2005-02-20 Elijah Newren <newren@gmail.com>
Patch from Joe Marcus Clarke to fix a possible crash on logout.
#167935. Thanks for fixing my mistakes, Joe!
* src/display.c: (meta_display_open): initialize
display->grab_old_window_stacking to NULL.
2005-02-20 Elijah Newren <newren@gmail.com>
Big patch to cover about 6 different issues in order to correct
rare problems with timestamps (make sure window selected in
tasklist actually gets focus, sanity check timestamps to avoid
rogue apps hosing the system, correct the updating of
net_wm_user_time, correctly handle timestamps of 0 when comparing
xserver timestamps for those who have had their systems up for
over 25 days or so, add some debugging information to verbose
logs, some code cleanups). Fixes all issues listed in #167358.
* src/display.h: (struct _MetaDisplay): clarify comment on
last_focus_time, introduce a new variable--last_user_time,
(XSERVER_TIME_IS_BEFORE macro): put this functionality into a
separate macro and then introduce a new macro with this name that
uses the old one but adds additional special-case checks for
timestamps that are 0, (comment to
meta_display_set_input_focus_window): add information about how
last_user_time should be used in this function
* src/display.c (santiy_check_timestamps): new function,
(meta_display_open): intialize display->last_user_time,
(meta_display_get_current_time_roundtrip): use the timestamp,
which is known to be good, in order to sanity_check_timestamps,
(event_callback): use the new meta_window_ste_user_time() function
in order to correct problems, use the timestamp of KeyPress and
ButtonPress events, which are known to be good, in order to
sanity_check_timestamps, (timestamp_too_old): new function for
common behavior of meta_display_focus_the_no_focus_window and
meta_display_set_input_focus_window, with added checking for
display->last_user_time in addition to display->last_focus_time,
(meta_display_set_input_focus_window): replace some of the code
with a call to timestamp_too_old(),
(meta_display_focus_the_no_focus_window): replace some of th ecode
with a call to timestamp_too_old()
* src/window.h: (meta_window_set_user_time): new function to
abstract the many things that need to be done when updating the
net_wm_user_time of any window
* src/window.c: (meta_window_activate): add debugging spew, make
sure the comparison is made with last_user_time NOT
last_focus_time, use meta_window_set_user_time() function in order
to correct problems, (meta_window_client_message): add a newline
to a debugging message to make them easier to read,
(meta_window_set_user_time): new function
* src/window-props.c (reload_net_wm_user_time): use the new
meta_window_ste_user_time() function in order to correct problems
2005-02-16 Elijah Newren <newren@gmail.com>
* src/display.c: (event_callback): trivial fix to a log message:
change %d to %lu (see debugging log from bug 167358).
2005-02-12 Elijah Newren <newren@gmail.com>
Raise the ancestor of a window instead of the window itself.
Fixes #166894.
* src/window.c: (find_root_ancestor): new function,
(meta_window_raise): get the ancestor of the given window and
raise it if possible instead of the window
2005-02-12 Elijah Newren <newren@gmail.com>
Don't unconditionally place splashscreens (and other
not-to-be-focused windows) below the focus window. Fixes #167042.
* src/window.c: (intervening_user_event_occurred): new function
taken from the timestamp comparison portion of the old
window_takes_focus_on_map function, (window_state_on_map): new
function with remainder of old window_takes_focus_on_map function
that determines both whether the window will take focus and
whether it should be placed on top, (meta_window_show): use
place_on_top_on_map to determine window stacking instead of trying
to infer it from takes_focus_on_map
2005-02-11 Elijah Newren <newren@gmail.com>
Avoid new windows being obscured by the focus window (and thus
possibly lost). Fixes #166524.
* src/place.c: new MetaWindowDirection enum,
(find_most_freespace): new function to find where there is the
most space available around the focused window,
(meta_window_place): if a window is denied focus and the window
overlaps the focused window, retry the first-fit algorithm only
paying attention to the focus window position and if that fails
just find the location on the screen with the most space
available.
* src/window.h: (struct MetaWindow): new
denied_focus_and_not_transient bitfield
* src/window.c: (meta_window_new_with_attrs): initialize
denied_focus_and_not_transient, (meta_window_show): set and unset
the denied_focus_and_not_transient field appropriately
2005-02-08 Aidan Delaney <adelaney@cs.may.ie>
Removed useless function call. #166730
* src/tabpopup.c: (outline_window_expose): Removed unused
references to variables and an unnecessary function call to
gdk_window_get_size().
2005-02-08 Elijah Newren <newren@gmail.com>
Avoid using CurrentTime when focusing, handle it better in case we
miss any cases. Fixes #166732.
* src/window.c: (meta_window_shade): use
meta_display_get_current_time_roundtrip() to ensure we have a
valid timestamp, (meta_window_unshade): same
* src/display.c: (meta_display_set_input_focus_window): If
CurrentTime was passed, get one from the XServer in addition to
throwing a warning, (meta_display_focus_the_no_focus_window): same
2005-02-08 Elijah Newren <newren@gmail.com>
* src/window.c: (meta_window_activate): If we're not passed a
timestamp, make sure to manually get one. Fixes #166728.
2005-02-07 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.21
2005-02-07 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.13 unstable release
2005-02-06 Elijah Newren <newren@gmail.com>
Set a _METACITY_VERSION property (a utf8 string) on the WM check
window. #165350.
* src/display.h: (struct MetaDisplay): add a atom_metacity_version
field
* src/display.c: (meta_display_open): initialize the
_METACITY_VERSION property on the WM check window to the current
version of Metacity.
2005-02-06 Elijah Newren <newren@gmail.com>
Ignore xconfigurerequest events for stacking when it should be
safe to do so. Again, thanks to Crispin Flowerday for the test
case. Thanks to KWin for the inspiration (and to Google for
indexing their source code). Fixes the other half of #166395.
* src/window.c: (meta_window_configure_request): if the
active_window is from a separate application than the one getting
the configure request and the net_wm_user_time of the active
window is later than that of the window getting the configure
request, then ignore the request.
2005-02-06 Elijah Newren <newren@gmail.com>
If activation requests are too old, set the demands_attention hint
instead of actually activating. Thanks to Crispin Flowerday for
the test case and for testing the patch. Fixes half of #166395.
* src/window.c: (meta_window_activate): if the request came before
the last focus time, set the demands attention hint instead
2005-02-04 Dave Ahlswede <mightyquinn@letterboxes.org>
* src/metacity.schemas.in: Add period to the end of
reduced_resources' description. Fixes #165780.
2005-02-04 Elijah Newren <newren@gmail.com>
Make sure window->border_only is initialized so we don't get
random windows without decorations. Thanks to Sinisa Segvic and
Owen Taylor for providing test cases. Fixes #145131.
* src/window.c: (update_mwm_hints): Be sure to call
recalc_window_features even if no MWM hints are set
2005-02-02 Elijah Newren <newren@gmail.com>
Focus parents of dismissed transient windows in preference to the
window that most recently had keyboard focus. Fixes #157360.
* doc/how-to-get-focus-right.txt: Note the distinction between
"most recently used window" and "most recent to have keyboard
focus" that we are now making.
* src/workspace.c: (focus_ancestor_or_mru_window): rename from
meta_workspace_focus_mru_window, and first check whether we need
to focus an ancestor window before looking for the mru window,
(record_ancestor): helper function for
focus_ancestor_or_mru_window,
(meta_workspace_focus_default_window): update due to the function
rename from meta_workspace_focus_mru_window to
focus_ancestor_or_mru_window
2005-01-31 Elijah Newren <newren@gmail.com>
Try 2 to correct misleading and inaccurate wording. Hopefully,
really fixes #165380.
* src/menu.c: Change wording of menu from "Always on Current
Workspace" to "Always on Visible Workspace". "Always on Current
Workspace" could sound like a synonym of "Only on This Workspace"
when it was supposed to be the opposite.
2005-01-31 Elijah Newren <newren@gmail.com>
Correct the stacking when return from fullscreen mode. Fixes
#165718.
* src/window.c: (meta_window_unmake_fullscreen): Update the layer
after resizing the window
2005-01-31 Muktha <muktha.narayan@wipro.com>
src/themes/Atlanta/metacity-theme-1.xml:
src/themes/Simple/metacity-theme-1.xml:
src/themes/Bright/metacity-theme-1.xml:
Make the unfocussed title bar distinguishable. Fixes #125291.
2005-01-28 Elijah Newren <newren@gmail.com>
Patch from RHEL-3 (Havoc doesn't remember how it got there) that
Havoc posted in bug 156511 to fix the problem with fullscreen
windows on a different xinerama monitor not staying on top. I
updated to HEAD. Should fix #156511.
* src/stack.c: (windows_on_different_xinerama): new function,
(get_standalone_layer): let windows on a different screen than the
one with the focus window stay in the fullscreen layer
2005-01-28 Elijah Newren <newren@gmail.com>
* src/metacity-dialog.c: (warn_about_no_sm_support): make this
dialog be sticky. Fixes #164745.
2005-01-28 Elijah Newren <newren@gmail.com>
Patch from Tim Herold to handle xcomposite pkgconfig version
regression. Fixes #149368.
* configure.in: Change XCOMPOSITE_VERSION from 1.0 to 0.2
2005-01-28 Elijah Newren <newren@gmail.com>
Correct misleading and inaccurate wording. Fixes #165380.
* src/menu.c: Change wording of menu to "Always on Current
Workspace" from "Put on All Workspaces", remove a quick-key
conflict between "On _Top" and "Only on _This Workspace" by
switching the latter to "_Only on This Workspace"
* src/window.c: Remove a comment that is no longer necessary
(since bug 87531 has been fixed)
2005-01-28 Elijah Newren <newren@gmail.com>
Take into account the appropriate list of windows when placing a
new one. Fixes #165381.
* src/place.c: (meta_window_place): use
meta_window_showing_on_its_workspace(w) instead of !w->minimzed,
also take into account sticky windows
* src/window.[ch]: rename window_showing_on_its_workspace to
meta_window_showing_on_its_workspace and export it
2005-01-27 Elijah Newren <newren@gmail.com>
Plug a pair of leaks. Fixes #165378
* src/place.c: (meta_window_place, get_windows_on_same_workspace):
free list returned by meta_display_list_windows.
2005-01-27 Elijah Newren <newren@gmail.com>
Treat splashscreens same as other windows for stacking. Fixes
#165243.
* src/stack.h: (MetaStackLayer enum): remove META_LAYER_SPLASH
from the list
* src/stack.c: (get_standalone_layer): remove the special casing
of META_WINDOW_SPLASHSCREEN
2005-01-27 Elijah Newren <newren@gmail.com>
* src/window.c: (set_net_wm_state): shaded windows should not show
up in pagers. Fixes #165377.
2005-01-26 Elijah Newren <newren@gmail.com>
Stick and unstick transients with their parent automatically.
Fixes #152283.
* src/window.c: (window_stick_impl, window_unstick_impl): rename
from meta_window_stick and meta_window_unstick respectively,
(stick_foreach_func): a function to assist calling
window_(un)stick_impl on each transient, (meta_window_stick,
meta_window_unstick): new functions that call window_stick_impl or
window_unstick_impl for the window and each of its transients.
2005-01-26 Elijah Newren <newren@gmail.com>
Patch from John Paul Wallington to keep tooltip on screen
horizontally for xinerama. Fixes #165261.
* src/fixedtip.c: (meta_fixed_tip_show): rename screen_width and
screen_height to screen_right_edge and screen_bottom_edge, set
them using xinerama info instead of just screen geometry, and use
them to determine where to place the tooltip window.
2005-01-26 Arvind Samptur <arvind.samptur@wipro.com>
Don't wireframe when accessibility is on, it apparently
causes a desktop wide freeze.
* src/prefs.[ch] (meta_prefs_init) (change_notify)
(update_gnome_accessibility) (meta_preference_to_string)
(meta_prefs_get_gnome_accessibility) : Add code to monitor
accessibility status.
* src/display.c (meta_display_begin_grab_op): Check
accessibility status before going ahead with wireframe.
Fixes #159538
2005-01-25 Elijah Newren <newren@gmail.com>
* src/tabpopup.c: (meta_select_workspace_expose_event): ignore
sticky windows for non-active workspaces. Fixes #165259.
2005-01-25 Elijah Newren <newren@gmail.com>
* src/window.c: (meta_window_new_with_attrs): set the window state
hints _after_ applying session information. Fixes #164677.
2005-01-25 Elijah Newren <newren@gmail.com>
Add man pages for metacity-window-demo and metacity-theme-viewer.
Man pages from Jose Moya, auto-fu from Dave Ahlswede. (#143513)
* doc/man/metacity-theme-viewer.1:
* doc/man/metacity-window-demo.1:
New man pages
* doc/man/Makefile.am:
* doc/Makefile.am:
* configure.in:
Make sure to install the man pages
* doc/man/.cvsignore:
Silence cvs
2005-01-25 Benjamin Kahn <xkahn@novell.com>
New 48x48 default icon as specified in bug #160660
2005-01-25 Elijah Newren <newren@math.utah.edu>
Patch from Stephane LOEUILLET in bug #151850.
* src/metacity.desktop.in: specify encoding
2005-01-25 Balamurali Viswanathan <balamurali.viswanathan@wipro.com>
* src/prefs.c (meta_prefs_init): Get gconf to load the
terminal dir so that we get the notifications when
the command is changed. Fixes bug #160934
2005-01-25 Elijah Newren <newren@gmail.com>
Refuse to focus a window with a modal transient, and focus the
transient instead. Fixes #164716.
* src/window.c: (get_modal_transient): new function,
(meta_window_focus): if the window has a modal transient, make
sure it is on the current workspace and then focus it instead.
2005-01-24 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.13
2005-01-24 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.8 unstable release
2005-01-24 Elijah Newren <newren@gmail.com>
* src/display.c: (meta_display_begin_grab_op): don't forget to
initialize display->grab_old_window_stacking. Thanks to Sebastien
Bacher and the bleeding edge Ubuntu users for catching the
occasional crash this could cause so quickly, and for verifying
that the patch worked (I couldn't duplicate). Fixes #165093.
2005-01-23 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.8
2005-01-23 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.5 unstable release
* README: there are more stable releases beyond 2.8.6...
2005-01-23 Elijah Newren <newren@gmail.com>
Restore original stacking when aborting an alt-esc window switch
operation. Fixes #123576.
* src/display.c: (GRAB_OP_IS_WINDOW_SWITCH): new macro,
(meta_display_close): clear grab_old_window_stacking if non-NULL,
(event_callback): restore stack positions if alt-esc op cancelled
with button press, (meta_display_begin_grab_op): store the old
stacking positions, (meta_display_end_grab_op): free the old stack
positions
* src/display.h: (struct _MetaDisplay): add a
grab_old_window_stacking list
* src/keybindings.c: (process_tab_grab): restore stack positions
if alt-esc op cancelled with an errant key press
* src/stack.c: (compare_just_window_stack_position): new
GCompareFunc function, (meta_stack_get_positions): get current
stack positions, (compare_pointers): new GCompareFunc function,
(lists_contain_same_windows): simple utility func to see if two
lists contains the same windows, (meta_stack_set_positions): new
function to set the positions of all the windows in the stack
* src/stack.h: (meta_stack_get_postions,
meta_stack_set_positions): new functions
2005-01-23 Elijah Newren <newren@gmail.com>
Patch from John Paul Wallington to fix #163420.
* src/window.c: (check_maximize_to_work_area): fix vertical
maximization for second screen
2005-01-21 Elijah Newren <newren@gmail.com>
* rationales.txt: Add a tracker bug for modal dialog issues
2005-01-20 Elijah Newren <newren@gmail.com>
* src/tabpopup.c (dimm_icon): use pixbuf, not dimmed_pixbuf (which
isn't defined yet). Fixes crash from #136666.
2005-01-20 Vincent Noel <vnoel@cox.net>
* src/screen.c: (meta_screen_ensure_tab_popup),
(meta_screen_ensure_workspace_popup):
* src/tabpopup.c: (meta_ui_tab_popup_new), (display_entry):
* src/tabpopup.h: Show labels in bold for windows that demand
attention. Fixes #164590.
2005-01-18 Vincent Noel <vnoel@cox.net>
* src/screen.c: (meta_screen_ensure_tab_popup),
(meta_screen_ensure_workspace_popup):
* src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new),
(free_entry):
* src/tabpopup.h: In the tab task switcher popup, dim the window
icon and put its name between brackets when the window is
minimized. Fixes #136666.
2005-01-11 Elijah Newren <newren@gmail.com>
Correct highlighting of windows in workspace switcher popup.
Fixes #163450.
* src/tabpopup.c (meta_select_workspace_expose_event): Remove race
between FocusIn/FocusOut events and the expose event by replacing
window->has_focus with
window==window->display->expected_focus_window.
2005-01-09 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.5
2005-01-09 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.3 unstable release
2005-01-09 Elijah Newren <newren@gmail.com>
* src/display.c (meta_display_open):
* src/display.h (struct _MetaDisplay):
* src/window.c (meta_window_free, meta_window_client_message,
meta_window_notify_focus):
Remove the hack from bug 128200; it isn't needed anymore with the
fix from bug #160470.
2005-01-09 Elijah Newren <newren@gmail.com>
Don't focus the panel on click. Fixes #160470 (and 100470 and
removes the need for the hack from 128200)
* doc/how-to-get-focus-right.txt: Update section on focusing
non-decorated windows (specifically, DOCKS and DESKTOPS)
* src/display.c (event_callback): don't focus dock windows on
click
2005-01-06 Elijah Newren <newren@gmail.com>
Make sure the save session dialog appears focused. Fixes #162983.
* src/session.c (warn_about_lame_clients_and_finish_inter): Get a
timestamp by explicit request from Xserver, since none is
available otherwise.
2005-01-06 Leena Gunda <leena.gunda@wipro.com>
* src/window.c (meta_window_unmaximize): Restore the wireframe
rectangle co-ordinates to saved window co-ordinates. Fixes
bug #161236.
2005-01-03 Thomas Fitzsimmons <fitzsim@redhat.com>
* src/Makefile.am (install-data-local): Install schema data from
builddir not srcdir.
2005-01-02 Elijah Newren <newren@gmail.com>
Provide more documentation to make it easier for people to
contribute to Metacity. (#162646)
* HACKING: Add lots of information to extend this document: more
on relevant standards and X properties, lots of information on
debugging and testing, and add a list of some other important
things to read; also move some information to
src/code-overview.txt and organize this file into sections.
* doc/code-overview.txt: New file including some small parts from
the old HACKING file and lots of new stuff. This file gives a
brief overview of some of the bigger structures and files, with
guides for a variety of task categories providing places to start
looking in the code and things to look for.
2004-12-28 Elijah Newren <newren@gmail.com>
Allow users to move the window around immediately after
double-clicking to shade (#90290)
* src/display.c (event_callback): only end the grab op if either
there is no frame or else the frame is not mapped
2004-12-27 Elijah Newren <newren@gmail.com>
Focus windows that manually position themselves too (fixes
#107347).
* src/window.h (struct _MetaWindow): add a new
showing_for_first_time flag
* src/window.c (meta_window_new_with_attrs): initialize
showing_for_first_time flag to !mapped, (meta_window_show):
replace did_placement with showing_for_first_time in the section
to decided whether to focus since did_placement isn't quite what
we want
2004-12-27 Elijah Newren <newren@gmail.com>
* src/display.c (meta_display_set_input_focus_window,
meta_display_focus_the_no_focus_window): Spew warning if
CurrentTime is passed to the function, but don't exit prematurely.
(fixes #162353)
2004-12-24 Elijah Newren <newren@gmail.com>
* src/window.c (meta_window_show_menu): Don't show menu if all
options are invalid (fixes #148915)
2004-12-24 Elijah Newren <newren@gmail.com>
* src/window.c (window_takes_focus_on_map): Fix error in
distinguishing < vs. <= introduced by the patch in #154598,
restructure code so that verbose log matches code better in order
ensure such mistakes are harder to make in the future (fixes
#162172)
2004-12-24 Elijah Newren <newren@gmail.com>
Thanks to mild7@users.sourceforge.net for this fix.
* src/window.h: (META_WINDOW_IN_NORMAL_TAB_CHAIN): Excludes
windows with skip_taskbar hint set from the alt-tab list; they'll
appear in the ctrl-alt-tab list instead. (fixes #106249)
2004-12-22 Elijah Newren <newren@gmail.com>
Wrap XSetInputFocus, making display->expected_focus_window a
little more reliable (see #154598)
* src/display.h: (struct _MetaDisplay): add a large comment about
the expected_focus_window, add a last_focus_time field,
(XSERVER_TIME_IS_BEFORE): new macro moved from window.c but fixed
for 64-bit systems, (meta_display_set_input_focus_window): new
function
* src/display.c (meta_display_open): initialize last_focus_time,
add a comment about brokenness of trying to set intial focus
window, (meta_display_set_input_focus_window): new function that
wraps XSetInputFocus,
(meta_display_focus_the_no_focus_window): make this function
closer to a wrapping of XSetInputFocus for the no_focus_window.
* src/window.c (XSERVER_TIME_IS_LATER): remove this macro in favor
of the improved one added to display.h
* src/display.c (meta_display_open):
* src/window.c (meta_window_focus):
use meta_display_focus_the_no_focus_window and
meta_display_set_input_focus instead of XSetInputFocus
2004-12-22 Elijah Newren <newren@gmail.com>
* src/core.c (meta_core_user_lower_and_unfocus):
* src/display.c (meta_display_get_current_tab):
* src/stack.c (get_default_focus_window, meta_stack_list_windows):
* src/window.c (set_net_wm_state, meta_window_should_be_showing,
implement_showing, meta_window_activate,
meta_window_notify_focus):
* src/window.h:
* src/workspace.c (meta_workspace_list_windows):
Rename meta_window_visible_on_workspace to
meta_window_located_on_workspace (whether or not the window was
showing wasn't taken into account, which made "visible"
confusing). Fixes #136314.
2004-12-22 Elijah Newren <newren@gmail.com>
Partially resolve the conflicting requirements of windows on
multiple workspaces and hidden being a global quantity for windows
(fixes bug 156182; the remainder of the work is bug 87531 and is a
libwnck issue)
* src/display.c (event_callback):
* src/window.c (meta_window_visible_on_workspace, meta_window_unstick):
* src/workspace.c (meta_workspace_add_window,
meta_workspace_contains_window,
meta_workspace_queue_calc_showing):
* src/workspace.h:
Remove meta_workspace_contains_window, replace with simple
comparison utilizing window->workspace
* src/place.c (meta_window_place):
* src/window.c (meta_window_shares_some_workspace):
* src/window.h:
Remove meta_window_shares_some_workspace, replace with a simple
comparison utilizing window->workspace
* src/session.c (save_state),
* src/window.c (meta_window_new_with_attrs,
meta_window_apply_session_info, meta_window_free,
window_showing_on_its_workspace,
meta_window_change_workspace_without_transients,
meta_window_unstick, meta_window_set_current_workspace_hint,
meta_window_get_workspaces):
* src/window.h:
* src/workspace.c (meta_workspace_free, meta_workspace_add_window,
meta_workspace_remove_window):
Only one workspace now
2004-12-20 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.3
2004-12-20 Elijah Newren <newren@gmail.com>
* NEWS: Metacity 2.9.2 unstable release
2004-12-20 Elijah Newren <newren@gmail.com>
* configure.in: re-add the note about Fibonacci sequence micro
version numbers that was lost with 2.8.5
2004-12-19 Elijah Newren <newren@gmail.com>
Thanks to Baptiste Mille-Mathias for this fix.
* src/metacity.schemas.in: Add a missing period at the end of a
sentence.
2004-12-19 Elijah Newren <newren@gmail.com>
When snap-moving, don't snap to transients of minimized windows
since they are hidden. Fixes #157180
* src/place.c (get_windows_on_same_workspace): make the logic to
determine hidden windows more thorough by calling
meta_window_should_be_showing()
* src/window.c (meta_window_should_be_showing): rename this
function from window_should_be_showing and also export it,
(implement_showing):
s/window_should_be_showing/meta_window_should_be_showing/,
(idle_calc_showing):
s/window_should_be_showing/meta_window_should_be_showing/
* src/window.h (meta_window_should_be_showing): Add this function
to the list so that it can be used in src/place.c
2004-12-19 Elijah Newren <newren@gmail.com>
Focus the desktop when showing it. Fixes #159257.
* src/display.c (event_callback): obtain a timestamp to pass to
meta_screen_show_desktop
* src/keybindings.c (handle_toggle_desktop): obtain a timestamp to
pass to meta_screen_show_desktop
* src/screen.c (meta_screen_show_desktop): add a timestamp
parameter, get the most recently used window of type DESKTOP (if
there is one) and focus it
* src/screen.h (meta_screen_show_desktop): add a timestamp
parameter
2004-12-19 Elijah Newren <newren@gmail.com>
Thanks to ash@contact.bg for this fix.
* po/POTFILES.in: Remove reference to metacity-properties.* files
since Alex removed them in his 2004-12-07 commit.
2004-12-13 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.9.2 that I forgot
to do last week (oops)
2004-12-07 Alex Duggan <aldug@astrolinux.com>
* configure.in:
* src/tools/Makefile.am:
Remove deprecated capplet from GNOME 2.0
* src/tools/metacity-properties.c:
* src/tools/metacity-properties.desktop.in:
* src/tools/metacity-properties.glade:
* src/tools/metacity-properties.png:
Removed from cvs
2004-12-06 Elijah Newren <newren@math.utah.edu>
* NEWS: Metacity 2.9.1 unstable release
2004-12-06 Benjamin Kahn <xkahn@novell.com>
* src/default_icon.png: Use a better default application
icon. Fixes bug #160373
2004-11-16 Marco Pesenti Gritti <marco@gnome.org>
* src/Makefile.am:
Fix build out of src directory. Bug #158325
2004-11-10 James Henstridge <james@jamesh.id.au>
* Makefile.am (DISTCLEANFILES): remove intltool stuff on distclean.
* src/themes/Makefile.am (uninstall-local): add uninstall rule.
* src/Makefile.am (libmetacity_private_la_CFLAGS): set this
variable so that the files shared with metacity get compiled with
different names.
* configure.in: use more modern macros in some places, and make
sure that $ACLOCAL_AMFLAGS is set so that rebuilds work better.
* autogen.sh (conf_flags): use newer automake.
2004-11-06 Vincent Untz <vincent@vuntz.net>
* src/metacity.schemas.in: gnome-panel-screenshot was renamed to
gnome-screenshot
2004-11-01 Elijah Newren <newren@math.utah.edu>
* configure.in: bump version to 2.9.1
2004-11-01 Elijah Newren <newren@math.utah.edu>
* NEWS, README: Metacity 2.9.0 (unstable release)
2004-10-25 Elijah Newren <newren@math.utah.edu>
Don't lower newly mapped windows when they're denied focus, if
they are transients of the focused window. Instead, defocus the
currently focused window. (fixes #151996).
(Also, reenable focus stealing prevention and do a small spacing
cleanup)
* src/window-props.c (init_net_startup_id): fix spacing
* src/window.c (window_takes_focus_on_map): re-enable focus
stealing prevention, (meta_window_show): if the new window is
denied focus and is a transient of the currently focused window,
defocus the currently focused window but keep the transient on
top; remove some old code about transients and focus; make sure
that EnterNotify events won't accidentally focus the new window.
2004-10-25 Elijah Newren <newren@math.utah.edu>
Fix the alt-tab order--if the most recently used window is not
focused, start alt tabbing with that window instead of the one
after it (fixes #156251)
* src/display.c (find_tab_forward): add a skip_first parameter,
(find_tab_backward): add a skip_last parameter,
(meta_display_get_tab_next): if a beginning window wasn't given
and the focused window isn't the tab chain, don't skip the MRU
window
2004-10-22 Elijah Newren <newren@math.utah.edu>
Update _NET_WM_STATE_HIDDEN so the pager on the panel will know
whether to display windows as visible or hidden (#105665)
* src/screen.c (queue_windows_showing): Revert the
queue_windows_showing portion of the patch committed on 2004-10-16
for #142198--it was an ill-advised optimization.
* src/window.c (window_showing_on_its_workspace,
window_should_be_showing): split the old window_should_be_showing
into these two functions, (set_net_wm_state): hidden state is more
complex; use window_showing_on_its_workspace to determine the
correct value
2004-10-20 Elijah Newren <newren@math.utah.edu>
Patch from Soeren to fix the modifier key breakage introduced by
an Xorg change. (fixes #151554)
* src/keybindings.c: include X11/XKBlib.h if available,
(handle_spew_mark): remove this unused function declaration,
(end_keyboard_grab): new function, uses XKB if available,
(process_tab_grab): use end_keyboard_grab to determine whether to
end the grab, (error_on_command): make key a const char *,
(process_workspace_switch_grab): use end_keyboard_grab to
determine whether to end the grab
2004-10-19 Anders Carlsson <andersca@gnome.org>
* src/frame.c: (meta_window_ensure_frame):
Don't try to use an ARGB visual at all if the depth isn't
32-bit. This caused major slowdowns with Composite enabled.
2004-10-16 Elijah Newren <newren@math.utah.edu>
Make the "showing desktop" mode be per-workspace instead of
per-screen. (fixes #142198)
* src/keybindings.c (handle_toggle_desktop): access
showing_desktop through the active workspace
* src/screen.c (meta_screen_new): remove initialization of
screen->showing_desktop,
(meta_screen_update_showing_desktop_hint): rename and make not
static and access showing_desktop through the active workspace,
(queue_windows_showing): replace meta_display_list_windows() with
screen->active_workspace->windows,
(meta_screen_minimize_all_on_active_workspace_except): renamed
from meta_screen_minimize_all_except since it now only works on
the active workspace, (meta_screen_show_desktop,
meta_screen_unshow_desktop): access showing_desktop through the
active workspace
* src/screen.h (struct _MetaScreen): remove showing_desktop field,
(meta_screen_minimize_all_on_active_workspace_except): rename from
meta_screen_minimize_all_except,
(meta_screen_update)_showing_desktop_hint): export this function too
* src/window.c (maybe_leave_show_desktop_mode): access
showing_desktop through the active workspace and use new name for
meta_screen_minimize_all_on_active_workspace_except,
(window_should_be_showing): access showing_desktop through the
active workspace
* src/workspace.c (meta_workspace_new): initialize
workspace->showing_desktop, (meta_workspace_activate_with_focus):
add note that old can be NULL, update showing_desktop_hint if
different on this workspace than the previous one
* src/workspace.h (struct _MetaWorkspace): add showing_desktop
field
2004-10-16 Elijah Newren <newren@math.utah.edu>
* rationales.txt: Add new tracker bugs
2004-10-15 Elijah Newren <newren@math.utah.edu>
* src/keybindings.c (reload_keymap): Fix from Rob to correct
requested number of keycodes (#155247)
2004-10-13 Elijah Newren <newren@math.utah.edu>
Code cleanup
* src/window.c (is_in_dock_group, docks_at_end_cmp,
shuffle_docks_to_end): removed functions,
(meta_window_notify_focus): no need to call is_in_dock_group or
shuffle_docks_to_end because of the patch from #120100 that was
committed.
2004-10-13 Vincent Untz <vincent@vuntz.net>
Add a keybinding to launch a terminal
* src/keybindings.c: (handle_run_terminal): new function,
(error_on_generic_command): new function, (error_on_command): wrapper
around error_on_generic_command(), (error_on_terminal_command): new
function
* src/metacity.schemas.in: add run_command_terminal key
* src/prefs.[ch]: (meta_prefs_init): cache the terminal command and
register a gconf callback to update it, (change_notify): handle the
notification of terminal command changes, (meta_preference_to_string):
add the terminal command case, (update_terminal_command): new function,
(meta_prefs_get_terminal_command): new function,
(meta_prefs_get_gconf_key_for_terminal_command): new function
2004-10-11 Rob Adams <readams@readams.net>
* configure.in: bump version to 2.9.0. Add UNSTABLE warning.
2004-10-11 Rob Adams <readams@readams.net>
* NEWS, README: Metacity 2.8.6 (stable release)
2004-10-08 Elijah Newren <newren@math.utah.edu>
Fix middle-frame-click-to-lower focus inconsistency (#154601)
* src/core.c (meta_core_user_lower_and_unfocus): focus the default
window in all focus modes, not just click-to-focus (EnterNotify
events will not handle this case for sloppy and mouse focus)
* src/display.c (event_callback): replace window->has_focus with
window == display->expected_focus_window to avoid a race issue
2004-10-08 Elijah Newren <newren@math.utah.edu>
Alter the meaning of expected_focus_window; doesn't affect
current operation but assists in fixing some other bugs
(#154598)
* src/display.c (meta_display_focus_the_no_focus_window): set the
expected_focus_window to NULL.
* src/window.c (meta_window_notify_focus): don't NULL the
expected_focus_window when that window receives a FocusIn event
2004-10-04 Elijah Newren <newren@math.utah.edu>
* src/display.c (event_callback): if the root window gets focused,
set the focus to the default window; this fixes the
"focus-follows-mouse" behavior seen for click-to-focus mode after
cancelling log out (fixes #153220)
2004-10-04 Elijah Newren <newren@math.utah.edu>
Fix a variety of issues with autoraise (#134206)
* src/display.h: (struct _MetaDisplay): add an autoraise_window
parameter
* src/display.[hc] (meta_display_focus_the_no_focus_window): new
function, (meta_display_queue_autoraise_callback): new function,
(meta_display_remove_autoraise_callback): new function
* src/display.c (meta_display_open): intialize
display->autoraise_window too, (meta_display_close): remove any
pending autoraise callback, (window_raise_with_delay_callback):
clear out auto_raise->display->autoraise_window too,
(event_callback): call meta_display_queue_autoraise_callback
instead of having the code inline, call
meta_display_focus_the_no_focus_window to handle focusing that
window
* src/window.c (meta_window_focus): If there's a window with an
autoraise timeout that isn't the window being focused, remove the
autoraise timeout
* src/workspace.c (meta_workspace_focus_default_window): If no
autoraise timeout is queued for the given window then queue one
now, call meta_display_focus_the_no_focus_window to handle
focusing that window, (meta_workspace_focus_mru_window): call
meta_display_focus_the_no_focus_window to handle focusing that
window
2004-10-04 Elijah Newren <newren@math.utah.edu>
* src/display.c (event_callback): When no window becomes focused,
focus the default window instead of punting to the
no_focus_window. Also, change the warning to a verbose
message--this will happen frequently due to brain-damage in the X
protocol. (see #125492)
2004-10-04 Elijah Newren <newren@math.utah.edu>
Fix a variety of focus race conditions in all focus modes, or at
least make them harder to trigger (fixes #152000)
* src/core.[ch] (meta_core_user_lower_and_unfocus): add a
timestamp parameter; pass it along to
meta_workspace_focus_default_window
* src/display.[ch] (meta_display_get_current_time_roundtrip): new
function
* src/display.c (event_callback): pass a timestamp to the
meta_workspace_activate and meta_workspace_focus_default_window
function calls
* src/frames.c (meta_frames_button_press_event): pass a timestamp
to meta_core_user_lower_and_unfocus
* src/keybindings.c (handle_activate_workspace): pass a timestamp
to meta_workspace_activate, (process_workspace_switch_grab): pass
a timestamp to meta_workspace_focus_default_window and
meta_workspace_activate, (handle_toggle_desktop): pass a timestamp
to meta_workspace_focus_default_window,
(do_handle_move_to_workspace): pass a timestamp to
meta_workspace_activate_with_focus, (handle_workspace_switch):
meta_workspace_activate
* src/screen.c (meta_screen_new): pass a timestamp to
meta_workspace_activate
* src/window.c (meta_window_free): pass a timestamp to
meta_workspace_focus_default_window, (idle_calc_showing): don't
increment the focus sentinel here, (meta_window_minimize): pass a
timestamp to meta_workspace_focus_default_window,
(meta_window_client_message), pass a timestamp to
meta_workspace_focus_default_window
* src/workspace.h (meta_workspace_activate): add timestamp
parameter, (meta_workspace_activate_with_focus): add timestamp
parameter, (meta_workspace_focus_default_window): add timestamp
parameter
* src/workspace.c (meta_workspace_focus_mru_window): make this
function take a timestamp and use it for meta_window_focus or
XSetInputFocus, (meta_workspace_activate_with_focus): make this
function take a timestamp and pass it along to meta_window_focus
and meta_workspace_focus_default_window,
(meta_workspace_activate): make this function take a timestamp and
pass it to meta_workspace_activate_with_focus),
(meta_workspace_focus_default_window): make this function take a
timestamp, warn if its 0 but try to handle that case sanely, and
pass the timestamp on to meta_window_focus or
meta_workspace_focus_mru_window or XSetInputFocus
2004-09-22 Elijah Newren <newren@math.utah.edu>
* src/keybindings.c (process_workspace_switch_grab): Focus the
default window after the user dismisses the workspace switcher
popup (fixes #123803; note that an alternate fix was made
independently by David Baron for sloppy and mouse focus users)
2004-09-22 Elijah Newren <newren@math.utah.edu>
Fix some uninitialized variable errors reported by valgrind (see
#153338)
* src/display.c (meta_display_open): initialize
display->grab_resize_timeout_id, and display->grab_have_keyboard
* src/ui.c (meta_ui_create_frame_window): initialize attrs.width
and attrs.height
2004-09-17 Elijah Newren <newren@math.utah.edu>
* src/workspace.c (meta_workspace_focus_mru_window): Don't focus a
window that is minimized (fixes #147947)
2004-09-17 Kjartan Maraas <kmaraas@gnome.org>
* src/bell.c: (meta_bell_flash_screen):
* src/compositor.c:
* src/effects.c: (meta_effects_draw_box_animation):
* src/fixedtip.c: (meta_fixed_tip_show):
* src/frame.c: (find_argb_visual):
* src/frames.c: (unsigned_long_hash), (meta_frames_manage_window),
(meta_frames_apply_shapes):
* src/iconcache.c: (find_largest_sizes), (find_best_size):
* src/keybindings.c: (meta_spawn_command_line_async_on_screen):
* src/main.c: (main):
* src/menu.c: (meta_window_menu_new):
* src/prefs.c: (meta_prefs_get_visual_bell),
(meta_prefs_bell_is_audible), (meta_prefs_get_visual_bell_type),
(meta_prefs_get_action_double_click_titlebar),
(meta_prefs_get_auto_raise), (meta_prefs_get_auto_raise_delay),
(meta_prefs_get_reduced_resources):
* src/screen.c: (meta_create_offscreen_window):
* src/tabpopup.c: (meta_ui_tab_popup_get_selected):
* src/theme-parser.c: (meta_theme_load):
* src/theme.c: (meta_gtk_widget_get_font_desc):
* src/tools/metacity-mag.c: (mouse_press), (begin_area_grab):
* src/util.c: (meta_unsigned_long_hash): A load of fixes of issues
reported by sparse. Closes bug #152849
2004-09-15 Elijah Newren <newren@math.utah.edu>
* src/display.c (event_callback): Remove some redundant code
regarding focusing the default window (#152117)
2004-09-15 Elijah Newren <newren@math.utah.edu>
Patch from Ken Harris in #135786 to focus a new default window
when lowering via middle-click on the frame.
* src/core.[hc], src/frames.c: rename meta_core_user_lower to
meta_core_user_lower_and_unfocus
* src/core.c (meta_core_user_lower_and_unfocus): if in
click-to-focus mode then also move the window to the back of the
mru list and focus the new default window for the active workspace
2004-09-15 Elijah Newren <newren@math.utah.edu>
Focus the no_focus_window if no suitable window is in the mru list
(should fix the almost contrived extra issue found in #147475)
* doc/how-to-get-focus-right.txt: We no longer need to lie about
only focusing panels upon explicit request.
* src/workspace.c: (meta_workspace_focus_top_window): removed this
function--it was more code than needed and was unreliable anyway,
(meta_workspace_focus_mru_window): if a suitable window isn't in
the mru list, focus the no_focus_window instead of calling
focus_top_window.
2004-09-15 Elijah Newren <newren@math.utah.edu>
Prevent focus inconsistencies by only providing one focus method
(fixes #151990)
* src/screen.c (meta_screen_show_desktop): remove call to
meta_workspace_focus_top_window (it was merely focusing a window
that was going to be hidden anyway, and likely the one that
already had focus)
* src/workspace.[hc]: remove meta_workspace_focus_mru_window and
meta_workspace_focus_top_window from workspace.h, make them static
functions in workspace.c
2004-09-15 Elijah Newren <newren@math.utah.edu>
Remove race condition for focus window choice on window close
followed by rapid mouse movement in sloppy and mouse focus modes
(partially fixes #152000)
* src/window.c (meta_window_free): Don't increment the focus
sentinel for windows being freed, (idle_calc_showing): don't
increment the focus sentinel for windows being minimized
2004-09-15 Elijah Newren <newren@math.utah.edu>
Fix unwanted loss of focus to the mouse window when using keynav
(fixes #101190)
* src/display.c (event_callback): Ignore EnterNotify events with
xcrossing.mode of either NotifyGrab or NotifyUngrab
2004-09-15 Elijah Newren <newren@math.utah.edu>
Focus correct window after minimizing via the tasklist (fixes
#128200; see also #107681)
* src/display.h (struct _MetaDisplay): track the
previously_focused_window
* src/display.c (meta_display_open): initialize
previously_focused_window
* src/window.c (meta_window_free): clear the
previously_focused_window if it's being freed,
(meta_window_client_message): if we get a request to minimize the
previously_focused_window and the focus_window is a dock or the
desktop, focus the default window, (meta_window_notify_focus):
update the previously_focused_window
2004-09-13 Rob Adams <readams@readams.net>
* configure.in: post-release increment
2004-09-13 Rob Adams <readams@readams.net>
* configure.in: bump version number
* NEWS: 2.8.5 release
* README: 2.8.5 release
2004-09-14 Gora Mohanty <gmohanty@cvs.gnome.org>
* configure.in: Added 'or' to ALL_LINGUAS.
2004-09-07 Elijah Newren <newren@math.utah.edu>
Add a new write-up on making window focus consistent (see #152004)
* doc/how-to-get-focus-right.txt: New document
* rationales.txt: Remove references to focus bugs, instead point
to doc/how-to-get-focus-right.txt
2004-09-06 Elijah Newren <newren@math.utah.edu>
* rationales.txt: Add bugs regarding window focus
2004-08-29 Elijah Newren <newren@math.utah.edu>
* NEWS: 2.8.4 release
2004-08-29 Elijah Newren <newren@math.utah.edu>
* src/window.c (window_takes_focus_on_map): Disable
focus-stealing-prevention for now; there are still some issues and
hard code freeze is tomorrow...so this will have to wait until
Gnome 2.10.
2004-08-27 Havoc Pennington <hp@redhat.com>
* src/compositor.c (meta_compositor_new): disable NameWindowPixmap
stuff always for now, it seemed kind of busted
(paint_screen): don't grab the server during repaint, adds to the
speed, though only slightly.
* src/frames.c (meta_frames_set_window_background): factor out all
the set_background stuff to one function; disable setting
background to transparent, because it breaks existing themes. We
need to add a flag in the theme XML file to say "start me with a
transparent background"
2004-08-27 Elijah Newren <newren@math.utah.edu>
Prevent an assertion failure that can occur after increasing the
number of workspaces; also fix a warning and stacking order when a
window is denied focus (fixes #150615)
* src/window.c (meta_window_stack_just_below): the position of the
window should be set equal to that of the one we want to be below,
not 1 lower than that number
* src/workspace.c (maybe_add_to_list): new function to add
on_all_workspace windows to an mru_list, (meta_workspace_new):
call maybe_add_to_list for all windows on the screen in order to
initialize the mru_list
2004-08-26 Havoc Pennington <hp@redhat.com>
* src/frame.c: delete extra copy of find_argb_visual so things
compile
* src/compositor.c (HAS_NAME_WINDOW_PIXMAP): copy the
XCompositeNameWindowPixmap() stuff from xcompmgr, though I can't
say I really know what it's supposed to help with (painting the
window border?)
2004-08-26 Havoc Pennington <hp@redhat.com>
* src/frame.c, src/theme.c: couple of cosmetic tweaks from
resolving my local patch with the bugzilla patch from the 8-19
entry below
2004-08-26 Havoc Pennington <hp@redhat.com>
* configure.in: move the have_xrender variable initialization up
in the file since it can be set as part of composite check
2004-08-19 Havoc Pennington <hp@redhat.com>
Fixes from Rich Wareham
* src/display.h (struct _MetaDisplay): add render extension check
to the display
* src/display.c: check for render
* configure.in: don't build compositing manager by default, don't
want any nasty surprises; check for render separately from
compositing manager
* src/frame.c: use an ARGB visual when available for the window
frame, so we can be all cool-ass
2004-08-25 Elijah Newren <newren@math.utah.edu>
Make dialogs that Metacity shows follow focus-stealing-prevention
conventions. (fixes one issue in #149028; see comments 47-54)
* src/delete.c (delete_ping_reply_func,
delete_ping_timeout_func): Make callback functions take a
timestamp arg, (delete_ping_timeout_func): pass the timestamp to
metacity-dialog
* src/display.c (meta_display_ping_timeout): add a timestamp to
the call to the ping_timeout_func, (meta_display_ping_window,
process_pong_message): add a timestamp to the call to the
ping_reply_func
* src/display.h (MetaWindowPingFunc typedef): add a timestamp to
this function typedef
* src/keybindings.c (error_on_command): require a timestamp and
pass the timestamp on to metacity-dialog, (handle_run_command):
pass a timestamp to error_on_command
* src/metacity-dialog.c (copy_of_gdk_x11_window_set_user_time):
new function (temporary; only for use while using gtk+-2.4),
(kill_window_question, warn_about_no_sm_support,
error_about_command): make these functions take a timestamp and
call copy_of_gdk_x11_window_set_user_time, (main): require the
first two args to the program to be "--timestamp <timestamp>"
* src/session.c (warn_about_lame_clients_and_finish_inter): pass a
timestamp of 0 to metacity-dialog to prevent focus (it's a popup
not generated by and kind of user request).
Fri Aug 20 12:54:12 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* src/display.c (meta_display_end_grab_op): Move wireframe code
before grab is released to prevent endless loops with fullscreen
windows.
2004-08-18 Havoc Pennington <hp@redhat.com>
* src/display.h (struct _MetaDisplay): track the last_xor_rect
separately from the current window size, and then use that to
paint the wireframe including the frame, and taking into
account shaded windows.
* src/window.c (meta_window_get_xor_rect): new function to compute
the xor rect; it is not really 100% right, because it uses the
frame dimensions from the window at the start of the move/resize.
But probably won't break in practice.
2004-08-17 Christian Rose <menthos@menthos.com>
* configure.in: Added "bs" to ALL_LINGUAS.
2004-08-16 Kjartan Maraas <kmaraas@gnome.org>
* configure.in: Added nb to ALL_LINGUAS.
2004-08-15 Rob Adams <readams@readams.net>
* configure.in: Bump version to 2.8.4
2004-08-15 Rob Adams <readams@readams.net>
* NEWS: 2.8.3 release
2004-08-15 Rob Adams <readams@readams.net>
* src/windows.c (meta_window_update_struts): use height and
top/bottom struts to compute gap (copy/paste bug).
2004-08-15 Rob Adams <readams@readams.net>
* src/window.c (meta_window_update_struts): Allow struts larger
than 1/2 the screen width/height, as long as there's a minimum
sized gap between them. Patch from Bill Haneman <billh@gnome.org>
for bug #144126.
2004-08-13 Gurban M. Tewekgeli <gmtavakkoli@yahoo.com>
* po/tk.po: Added Turkmen translation.
* configure.in: Added "tk" to ALL_LINGUAS.
Mon Aug 9 05:38:33 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* src/effects.c (graphics_sync): New function.
* src/effects.c (effects_draw_box_animation_timeout): Use it here
to synchronize with the hardware between each frame.
2004-08-08 Rob Adams <readams@readams.net>
* src/window.c (meta_window_move_resize_internal): Add #ifdef
around XSYNC code; fixes compile problem if XSYNC is disabled.
Path for #149314 from Peter O'Shea and independently Mike Castle.
Sun Aug 8 14:20:00 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* src/frame.c (meta_frame_set_screen_cursor): Flush after setting
cursor. (Rest of #149413).
2004-08-07 Elijah Newren <newren@math.utah.edu>
* src/display.c (event_callback): activating the current workspace
should be a no-op. This prevents a race condition in focus window
choice when activating a window via the taskbar. Fix for #149589.
2004-08-07 Elijah Newren <newren@math.utah.edu>
* src/window.c, src/window.h: Revert Rob's 2004-07-31 patch that
ignored net_wm_user_time when unminimizing a window
* src/window.c (meta_window_activate): If a nonzero timestamp is
passed, update the window's net_wm_user_time accordingly. (see
comments 102-108 of bug 118372)
2004-08-07 Rob Adams <readams@readams.net>
Remove some extraneous items that could sometimes appear in the
window menu. Fix for #144493.
* src/menu.c (menuitems): Change the second separator to key on
whether there are any workspaces.
(meta_window_menu_new): use NULL label instead of 0 op to identify
separator
* src/window.c (meta_window_show_menu): Change the conditions on
the directions to take into account "holes" in the workspace
layout and also only set META_MENU_OP_WORKSPACES when there's more
than one workspace.
2004-08-07 Havoc Pennington <hp@redhat.com>
* src/screen.c (meta_screen_set_cursor): add XFlush() after
setting cursor, #149413
2004-08-06 Elijah Newren <newren@math.utah.edu>
* src/display.c (event_callback): Focusing a window upon unshowing
the desktop in various ways (panel applet or keybinding) was
inconsistent for sloppy and click focus modes. Fix this by
calling meta_workspace_focus_default_window after unshowing the
desktop via a _NET_SHOWING_DESKTOP message. (resolves #149543)
2004-08-06 Elijah Newren <newren@math.utah.edu>
* src/workspace.c (meta_workspace_focus_default_window): prevent
keyboard from "getting locked" upon workspace switch, by making
sure that the no_focus_window has focus if no other window does.
(fixes #147475)
2004-08-05 Elijah Newren <newren@math.utah.edu>
Have newly mapped windows that are denied focus appear after the
focused window in the alt-tab list. This allows one to switch to
such a window with a single alt-tab press. (fixes #149366)
* src/window.c (ensure_mru_position_after): new function,
(meta_window_show): If newly mapped window is denied focus, call
ensure_mru_position_after to make the window appear after the
focus window in the mru list.
2004-08-05 Elijah Newren <newren@math.utah.edu>
* src/window.c (meta_window_stick): prepend window to mru list
instead of appending, since making the window sticky should imply
that it is the most recently used, not the least recently. (fixes
#149369)
2004-08-04 Elijah Newren <newren@math.utah.edu>
* configure.in: post-release version bump (2.8.3) that I forgot to
do yesterday.
2004-08-03 Elijah Newren <newren@math.utah.edu>
Released 2.8.2
* NEWS, README: update
2004-08-02 Elijah Newren <newren@math.utah.edu>
Fix some bugs (reported in #120100) regarding the focus window
when using the workspace switcher.
* src/display.c (event_callback): When switching workspaces due to
a _NET_CURRENT_DESKTOP message, make sure to focus the default
window as well.
* src/workspace.c (meta_workspace_focus_default_window,
meta_workspace_focus_mru_window): Make DOCK or DESKTOP windows
have lower priority than others when choosing a window to focus.
(For the former function, this means don't focus them at all; for
the latter, this means only focus them (via the
meta_workspace_focus_top_window call) if no other mru window can
be found.)
2004-07-31 Rob Adams <readams@readams.net>
Fix bug that caused windows to not be focused on unminimizing
because of user time support.
* src/window.c (meta_window_new_with_attrs): initialize
focus_despite_user_time bit
(window_takes_focus_on_map): focus if focus_despite_user_time
despite user time, interestingly enough
(meta_window_show): reset focus_despite_user_time after showing
* src/window.h (_MetaWindow): add focus_despite_user_time bit
2004-07-31 Rob Adams <readams@readams.net>
Fix some support for EWMH hints, and fix USER_TIME support to
include the DEMANDS_ATTENTION hint. Also includes some code for
implementing _NET_RESTACK_WINDOW and _NET_MOVERESIZE_WINDOW, but
this is disabled pending feature thaw.
* COMPLIANCE: update with new information
* src/display.c (meta_display_open): add new hints to list
* src/display.h (_MetaDisplay): Add new atoms to struct
* src/screen.c (set_supported_hint): update the list of support
hints.
(set_desktop_viewport_hint): new function sets the viewport hint
to (0,0) as required by the spec for WMs with no viewport support.
(set_desktop_geometry_hint): new function to set the desktop size
hint to the size of the display, since we don't implement large
desktop support, as required by the spec.
(meta_screen_resize): update the geometry hint on screen resize
* src/window.c (meta_window_new_with_attrs): Initialize
demands_attention state
(set_net_wm_state): Set demands_attention hint in the window state
(meta_window_show): If we don't pop up a window because of
USER_TIME, set DEMANDS_ATTENTION on the window.
(meta_window_focus): When a window receives focus, remove
DEMANDS_ATTENTION hint
(meta_window_client_message): Allow other apps to set
DEMANDS_ATTENTION on a window. Also, if the _NET_ACTIVE_WINDOW
hint includes a timestamp, use it.
(update_net_wm_state): Read DEMANDS_ATTENTION state also
* src/window.h (_MetaWindow): add wm_state_demands_attention bit.
2004-07-22 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: Add trailing quotes to keybinding
explanation text. Patch from Emil Soleyman-Zomalan.
Fri Jun 25 17:41:53 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* configure.in: Require startup-notification 0.7
2004-06-25 Rob Adams <readams@readams.net>
* COMPLIANCE: indicate that _NET_WM_USER_TIME is now supported
2004-06-24 Elijah Newren <newren@math.utah.edu>
* src/keybindings.c: (handle_toggle_desktop): Choose correct
window to focus when "un-showing" the desktop. Fixes #144900.
2004-06-24 Elijah Newren <newren@math.utah.edu>
Make choice of focus window be consistent for each focus mode.
Fixes #135810.
* src/delete.c: (meta_window_delete): In some #if 0'ed code,
replace meta_workspace_focus_mru_window with
meta_workspace_focus_default_window (just in case the code becomes
un-#if 0'ed out).
* src/screen.c, src/screen.h: Change
meta_screen_focus_mouse_window to meta_screen_get_mouse_window,
and don't focus the window when found but rather return it.
* src/window.c: (meta_window_free, meta_window_minimize): replace
meta_workspace_focus_mru_window with
meta_workspace_focus_default_window.
* src/workspace.c: (meta_workspace_focus_default_window): Focus
appropriately for the given focus method:
click-to-focus: focus MRU window (== toplevel window)
sloppy focus: focus the window under the pointer if there is
such a window, otherwise focus the mru window
mouse focus: focus the window under the pointer if there is
such a window, otherwise don't focus anything
2004-06-24 Elijah Newren <newren@math.utah.edu>
* src/window.c: Avoid a race condition on the choice of window to
focus after the previously focused window gets closed or
minimized. Fixes #131582.
2004-06-24 Elijah Newren <newren@math.utah.edu>
* src/metacity.schemas.in: make naming for "move a window"/"move
the window"/"move window" more consistent. Patch from Michael
Terry for #142235.
2004-06-24 Elijah Newren <newren@math.utah.edu>
* src/session.c: Change meta_warning to meta_topic on failure to
connect to a session manager. Fixes #136218.
2004-06-17 Elijah Newren <newren@math.utah.edu>
Add support for _NET_WM_USER_TIME
* src/display.c:
(meta_display_open): Add _NET_WM_USER_TIME to atom_names[],
(event_callback): Manually set _NET_WM_USER_TIME upon KeyPress
(doesn't work since keyboard isn't grabbed) and ButtonPress (does
work), this is just a fallback for applications that don't update
this themselves.
* src/display.h: (struct _MetaDisplay): Add atom_net_wm_user_time field
* src/screen.c: (meta_screen_apply_startup_properties): Check for
TIMESTAMP provided from startup sequence as well.
* src/stack.c:
s/meta_window_set_stack_position/meta_window_set_stack_position_no_sync/,
(meta_window_set_stack_position): New function which calls the
meta_window_set_stack_position_no_sync function followed immediately
by calling meta_stack_sync_to_server.
* src/window-props.c:
(init_net_wm_user_time), (reload_net_wm_user_time): new functions,
(reload_wm_hints): also load atom_net_wm_user_time
* src/window.c:
new XSERVER_TIME_IS_LATER macro (accounts for timestamp wraparound),
(meta_window_new_with_attrs): add timestamp attributes,
(window_takes_focus_on_map): use TIMESTAMP from startup
notification and _NET_WM_USER_TIME to decide whether to focus new
windows,
(meta_window_show): if app doesn't take focus on map, place it
just below the focused window in the stack
(process_property_notify): check for changes to _NET_WM_USRE_TIME,
(meta_window_stack_just_below): new function
* src/window.h:
(_MetaWindow struct): new fields for initial_timestamp,
initial_timestamp_set, net_wm_user_time_set, and net_wm_user_time,
(meta_window_stack_just_below): new function
2004-06-21 Anders Carlsson <andersca@gnome.org>
* src/common.h:
* src/menu.c: (menu_closed), (activate_cb):
* src/window.c: (menu_callback):
Add a timestamp argument to menu functions and
use it in meta_window_delete.
2004-06-21 Anders Carlsson <andersca@gnome.org>
* src/window.c: (meta_window_client_message):
Get the timestamp from the client message.
Sat Jun 19 02:21:08 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Fix bug 143333, support for update counter spec, and 109362,
schedule compensation events when events are ignored.
* src/display.c (meta_display_open): Add _NET_WM_SYNC_REQUEST and
_NET_WM_SYNC_REQUEST_COUNTER atoms. Remove the old
METACITY_SYNC_COUNTER stuff.
(meta_display_begin_op): Setup the sync counter
* src/xprops.c, src/xprops.h, src/window-props.c, src/display.h:
Add new atoms.
* src/window.c (send_sync_request): new function.
(meta_window_move_resize_internal): send a sync request before
resizing.
(check_move_resize_frequence): Rework logic to also check the SYNC
case. If an event is ignored return the remaining time.
(update_resize_timeout): Timeout that gets called when a
compensation event is scheduled.
(uddate_resize): schedule compensation events when an event is
ignored.
(meta_window_handle_mouse_grap_op_event): When an alarm is
received and sync was turned off, turn it back on.
* src/window.h (struct MetaWindow) Add some variables
2004-06-16 Havoc Pennington <hp@redhat.com>
* configure.in: bump version, add the UNSTABLE note
* Branch off GNOME 2.6, we are now officially unstable
2004-06-04 Jeff Waugh <jdub@perkypants.org>
* src/metacity.schemas.in: Set titlebar_uses_system_font = false. The
previous default was almost violent in its lack of appreciation for
human beings. In fact, this entire setting should probably be removed, but
for now, let's just fix the default. Permission granted by Havoc.
2004-05-04 Elijah Newren <newren@math.utah.edu>
* configure.in: 2.8.1
* NEWS: update
2004-05-02 Rob Adams <readams@readams.net>
* src/metacity-dialog.c (warn_about_no_sm_support): make the no sm
support warning dialog resizable, since the default GTK warning
dialog not has default not resizable. Fix for #141672 from
Olivier Crete.
2004-04-29 Rob Adams <readams@readams.net>
* src/prefs.c (change_notify): Add a value type check for the
visual bell/audible bell gconf settings. Patch from Jarrod
Johnson for #141409.
2004-04-19 Mark McLoughlin <mark@skynet.ie>
Syncing across this change from libwnck.
Patch from Neil Muller <neil@dip.sun.ac.za> in bug #133979.
* src/iconcache.c: (find_largest_sizes), (find_best_size):
Don't down-size nitems from a gulong to an int. Fixes a
crash with enlightenment, apparently.
2004-04-16 Iñaki Larrañaga <dooteo@euskalgnu.org>
* configure.in: Added "eu" (Basque) to ALL_LINGUAS.
2004-04-15 Elijah Newren <newren@math.utah.edu>
* src/display.c: Prevent unwanted grab op from occurring.
Previously, for some people under certain conditions, clicking and
releasing the mouse button rapidly enough would result in Metacity
starting a move operation due to ignoring the button release.
This should fix that problem (it does for me). See bug 136587.
2004-04-11 Rob Adams <readams@readams.net>
* configure.in: Make the --enable-xinerama switch work properly.
Fix for #138562 from foser@gentoo.org.
2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
* configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
2004-03-27 Tõivo Leedjärv <toivo@linux.ee>
* configure.in: Added et to ALL_LINGUAS.
2004-03-24 Guntupalli Karunakar <karunakar@freedomink.org>
* configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
2004-03-21 Havoc Pennington <hp@redhat.com>
* configure.in: 2.8.0
* NEWS: update
2004-03-07 Elijah Newren <newren@math.utah.edu>
* rationales.txt: Bring up to date (see bug 136252).
2004-03-07 Havoc Pennington <hp@redhat.com>
* configure.in: 2.7.1
2004-03-04 Paisa Seeluangsawat <paisa@users.sf.net>
* configure.in: Added "th" (Thai) to ALL_LINGUAS.
2004-03-01 Rob Adams <readams@readams.net>
* src/stack.c (compute_layer): don't promote due to transiency; we
handle that elsewhere now.
(ensure_above): perform layer promotion here as well as stack
position promotion. Note that this means that we need to do stack
constraints now on layer change now.
(get_maximum_layer_of_ancestor): remove function
(max_layer_func): remove function
(MaxLayerData): remove struct
2004-02-28 Rob Adams <readams@readams.net>
Revert 2/27 patch for layer promotion.
2004-02-27 Rob Adams <readams@readams.net>
* src/window.c (meta_window_notify_focus): only move on MRU list
if the window belongs on the workspace, since the FocusIn event
could be for a window whose workspace we've since switched away
from. Possible fix for #122016.
* src/workspace.c (meta_workspace_contains_window): search for the
workspace in window->workspaces rather than the window in
workspace->windows. Since the number of workspaces is at most 36,
this is a O(1) lookup rather than a O(n) lookup. Sorry; couldn't
resist.
2004-02-27 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: Change
move_to_workspace_left/right/up/down keybindings to
<Control><Alt><Shift> arrow to avoid conflicting with new
keybindings in spacial nautilus.
2004-02-27 Rob Adams <readams@readams.net>
Handle layer promotion of transient descendants of layer-promoted
windows to also be layer promoted, using a simple iterative
algorithm.
* src/stack.c (compute_layer): change name to promote_layer, and
convert to simply perform any necessary layer promotion without
computing the standalone layer.
(max_layer_func): use window->layer instead of
get_standalone_layer
(get_maximum_layer_of_ancestor): use window->layer instead of
get_standalone_layer
(meta_stack_ensure_sorted): implement iterative algorithm,
explained in a long comment.
* src/window.h: add a tmp_layer field used by stack.c for
determining if the stack is dirty or not, since maintaining this
information in meta_stack_ensure_sorted is no longer practical.
2004-02-23 Rob Adams <readams@readams.net>
Add my copyright notice to a number of files on which it should
already exist.
* src/window.c (meta_window_notify_focus): modify code to move to
front of MRU list so that we can have an assert that it was there
in the first place. This code may be causing some crashes. See
#131196.
2004-02-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "en_CA" to ALL_LINGUAS.
2004-02-19 Rob Adams <readams@readams.net>
* src/prefs.h: remove trailing comma in MetaKeyBindingAction enum.
Fix for #134868 thanks to bugzilla-gnome@thewrittenword.com.
2004-02-16 Rob Adams <readams@readams.net>
* src/window.c (update_move): reset drag state after shaking loose
or reattaching. Fix for #132625.
2004-02-15 Anders Carlsson <andersca@gnome.org>
* src/menu.c (meta_window_menu_new): Actually translate a message,
don't just mark it for translation.
2004-02-14 Elijah Newren <newren@math.utah.edu>
* src/workspace.c: When moving a window to a different workspace,
prepend it to the mru list insted of appending it. Fixes #134368.
2004-02-14 Rob Adams <readams@readams.net>
If we're moving a window and receive a _NET_CURRENT_DESKTOP
message indicating a workspace switch, bring along the drag window
to the new workspace, solving a potentially weird bug where the
window would be lost on the old workspace. This also makes it
possible to implement edge flipping in an external program with
just a few lines of code. Patch for #131630 from ed@catmur.co.uk.
* src/keybindings.c (switch_to_workspace): remove function -- no
longer needed.
(handle_activate_workspace): call meta_workspace_activate instead
of switch_to_workspace
* src/workspace.c (meta_workspace_activate_with_focus): if we're
in a move grab op, bring along the drag window.
2004-02-14 Rob Adams <readams@readams.net>
* configure.in: Add configure option to not even try using
xinerama, to make metacity buildable on systems with no shared
library version of the xinerama libraries. Patch for #134203 from
Julio M. Merino Vidal.
2004-02-01 Rob Adams <readams@readams.net>
* COMPLIANCE: Bring up to date with current draft EWHM.
2004-01-27 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Use the 'utility' frame
for dialogs too.
2004-01-24 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Updated this theme.
2004-01-21 Elijah Newren <newren@math.utah.edu>
* src/screen.c (set_supported_hint): Removed some duplicate
entries.
2004-01-17 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: Default binding removed for
toggle_shaded, since we don't have anything in the graphical UI
for it any more.
2004-01-17 Rob Adams <readams@readams.net>
* src/window.c (meta_window_show_menu): Don't show
left/right/up/down if a window is sticky. Make "On Top"
insensitive for docks, splash screens, and desktops since it has
no effect anyway.
2004-01-10 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: update default
action_double_click_titlebar to be toggle_maximize instead of
toggle_shade. See #131126.
2004-01-10 Rob Adams <readams@readams.net>
* src/constraints.c (meta_window_constrain): if we maximize after
placement, and the window is too big to fix in the work area,
define a sane saved_rect approximately with dimensions
three-quarters approximately three quarters the size of the work
area. This avoids the problem where large windows would
unmaximize and actually get bigger. See #93590.
2004-01-09 Thomas Fitzsimmons <fitzsim@redhat.com>
Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.
* src/display.c: include xprops.h
(process_request_frame_extents): new function
(meta_display_open): add _NET_FRAME_EXTENTS and
_NET_REQUEST_FRAME_EXTENTS atoms
(event_callback): handle frame extents message
* src/display.h (struct _MetaDisplay): add atom_net_frame_extents
and atom_net_request_frame_extents
* src/theme.c (meta_pango_font_desc_get_text_height): make font_desc
parameter const
* src/ui.c: include prefs.h
(meta_ui_theme_get_frame_borders): new function
* src/window.c (update_net_frame_extents): new function
(meta_window_move_resize_internal): update frame extents
property when frame geometry changes
* src/screen.c (set_supported_hint): add atom_net_frame_extents
and atom_net_request_frame_extents
2004-01-09 Calum Benson <calum.benson@sun.com>
* src/themes/Atlanta/metacity-theme-1.xml:
Ensure Atlanta window buttons get larger when using large
print themes. Fixes #123469.
2003-01-04 Rob Adams <readams@readams.net>
Maintain the button grab for sloppy and mouse focus all the time.
This fixes a number of problem introduced by trying to drop the
grab; we now do this only for click to focus mode. This has the
unfortunate effect that #102209 reappears for sloppy and mouse
focus, but this seems unavoidable, because of limitations in the X
protocol. See #115072.
* src/display.c (meta_display_grab_focus_window_button): #if 0 the
section on not grabbing unless in click-to-focus mode.
* src/window.c (meta_window_notify_focus): drop focus button grab
on FocusIn and acquire it on FocusOut only when in click-to-focus
mode.
2004-01-03 Robert Sedak <robert.sedak@sk.htnet.hr>
* configure.in: Added "hr" in ALL_LINGUAS.
2003-01-02 Rob Adams <readams@readams.net>
* README: Update reference to EWMH.
* HACKING: Add a reference to COMPLIANCE and to the ICCCM and
EWHM.
2003-12-25 Havoc Pennington <hp@redhat.com>
* src/compositor.c (process_reparent): handle ReparentNotify, and
add a lot of debug output.
2003-12-25 Havoc Pennington <hp@redhat.com>
* src/compositor.c (meta_compositor_process_event): change to
track all children of the root window, not only mapped children;
this keeps us from losing track of the stacking order
* src/display.c (event_callback): don't do any of the compositor
event handling inline, do it all in compositor.c
2003-12-21 Rob Adams <readams@readams.net
* src/main.c (main): fix minor punctuation error in a string. Fix
for #129805.
2003-12-20 Rob Adams <readams@readams.net>
Reorganize the window menu according to discussion on #110904.
The workspace name mnemonic chunk of the patch is thanks to
Jonathan Blandford.
* src/common.h: add MENU_OP_ABOVE, MENU_OP_UNABOVE, MENU_UP_MOVE_TO_*
menu ops.
* src/core.c (meta_core_get_menu_accelerator): add accelerator for
the new menu ops.
* src/menu.c: add checked attribute in _MenuItem struct to display
a checkmark next to a menu item. Add the new menu items to
menuitems.
(get_workspace_name_with_accel): Add mnemonics even to renamed
workspaces.
(menu_item_new): provide support for the checked attribute
(meta_window_menu_new): construct new submenu for workspace
switching.
* src/window.c (menu_callback): implement support for the new menu
ops.
(meta_window_show_menu): don't use the OP_*SHAPE operations, and
compute which of the OP_MOVE_TO_* ops should be used for the
current workspace and workspace layout. Add the OP_*ABOVE
operations.
2003-12-20 Arafat Medini <lumina@silverpen.de>
* configure.in: Added Arabic locale "ar" to ALL_LINGUAS
2003-12-17 Rob Adams <readams@readams.net>
* src/display.c (meta_display_open): initialize
grab_wireframe_active to FALSE. Fix for #128090.
2003-12-17 Rob Adams <readams@readams.net>
* src/tabpopup.c (meta_ui_tab_popup_new): Don't try to call
utf8_strndup on a null title for an entry. Fix for #128566.
* src/workspace.c (meta_workspace_free): Call g_list_free on the
mru_list, since with sticky windows that MRU list could well not
be emtpy. See #122016.
2003-12-13 Rob Adams <readams@readams.net>
* src/window.c (meta_window_new_with_attrs): set on_all_workspaces
in all cases _before_ adding to the workspaces, so that windows
initially on all workspaces are added correctly to the MRU lists.
Fix for #120907.
* src/workspace.c (meta_workspace_add_window): handle sticky
windows so that we add to add mru lists if needed
(meta_workspace_remove_window): handle sticky windows so that they
are removed from all mru lists if needed.
2003-12-12 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_free): unstick window to get it out of
mru_list it should not be in; assert that window has been removed
from all mru_list. Perhaps fixes #122016 crash.
2003-11-29 Havoc Pennington <hp@redhat.com>
* fix up compositing manager to somewhat work
2003-11-26 Rob Adams <readams@readams.net>
* COMPLIANCE: fix a couple of minor typos.
2003-11-24 Havoc Pennington <hp@redhat.com>
* src/compositor.c (meta_compositor_new): fix the extension checks
2003-11-24 Havoc Pennington <hp@redhat.com>
* src/iconcache.c (meta_icon_cache_init): init prev_mask field
* src/window.c (meta_window_new_with_attrs): init xgroup_leader
prior to use
2003-11-24 Havoc Pennington <hp@redhat.com>
* src/display.c (meta_display_begin_grab_op): add an event_serial
argument and use it when the pointer is already grabbed
automatically on the button press. May fix bug #126871
2003-11-24 Havoc Pennington <hp@redhat.com>
* Apply patch from Gregory Merchan to avoid using CurrentTime when
setting input focus. Bug #108881
2003-11-23 Havoc Pennington <hp@redhat.com>
* src/compositor.c: move xcompmgr code in here (minus drop
shadows), untested since Keith's server just crashes at the
moment. "It compiles"
2003-11-20 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_new_with_attrs): new function
* src/display.c, src/screen.c: create the compositor and feed
windows and events to it
2003-11-20 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_notify_focus): revert the change here
2003-11-17 Rob Adams <readams@readams.net
* src/window.c (set_allowed_actions_hint): increment i between
resize and fullscreen.
2003-11-16 Rob Adams <readams@readams.net>
Create COMPLIANCE document describing metacity specification
compliance. Right now gives detailed EWMH compliance; still need
to add ICCCM compliance information. Also some minor fixes to
bring metacity into compliance on some points.
* COMPLIANCE: new file
* src/display.h, src/display.c (meta_display_open),
src/screen.c (set_supported_hint): add
atom_net_wm_action_fullscreen and atom_net_wm_action_minimize
* src/window.c (set_allowed_actions_hint): some fixes to which
hints to set and add fullscreen and minimize.
2003-11-16 Rob Adams <readams@readams.net>
* src/window.c (meta_window_notify_focus): add paranoia check to
make sure a window is really on a workspace before inserting it at
the beginning of the MRU list. Maybe there's a race condition
with focusing and workspace switching. Hopefully a fix for
#122016.
2003-11-15 Havoc Pennington <hp@redhat.com>
* src/main.c (main): fix warning
* src/compositor.c: add a new file to contain compositing manager
functionality; not yet implemented at all.
2003-11-15 Rob Adams <readams@readams.net>
Inherit visual from frame window so that metacity will work with
the new compositing manager extension work by Keith on
freedesktop.org, so that ARGB windows can be full
alpha-transparent without a metacity frame getting drawn in the
background. In the long term, we need to actually set alpha
values when drawing the frame so that it will really work; this is
a stopgap solution. Patch from Keith Packard; see Bug 126875.
* src/frame.c (meta_window_ensure_frame): pass client visual to
frame.
* src/ui.[ch] (meta_ui_create_frame_window): add new xvisual
parameter and use it to create new window.
2003-11-15 Rob Adams <readams@readams.net>
* src/window.c (update_net_wm_type): don't set window->type_atom
here so that the type-inference code will actually be called. Fix
for #126873 from Keith Packard.
2003-11-08 Rob Adams <readams@readams.net>
* src/window.c (meta_window_move_resize_internal): configure frame
first if we grow more than we shrink combined in both dimensions.
Patch from Soren Sandmann for #108925.
2003-11-07 Rob Adams <readams@readams.net>
* src/place.c (meta_window_place): use maximize_after_placement to
automaximize in meta_window_place; avoids a problem with not
recalculating the frame geometry after auto-maximizing.
2003-11-07 Rob Adams <readams@readams.net>
* src/window.c (window_should_be_showing): show the window if it's
a transient of a dock or desktop, since otherwise such windows are
invisible in show desktop mode. Fix for #124648.
2003-11-07 Rob Adams <readams@readams.net>
* src/main.c (main): Try harder to find a theme in the event that
the theme in the preference cannot be found. Patch from Marcin
Krzyzanowski. See #125815.
* src/place.c (meta_window_place): use "visual" centering for
dialog placement and clip new dialogs to an xinerama workspace.
Fix for #118336.
2003-10-30 Havoc Pennington <hp@redhat.com>
* src/menu.c (meta_window_menu_new): patch to avoid creating
stick/unstick menu items when only one workspace, bug #116563
from Michael Terry
2003-10-25 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_notify_focus): if a window is focused
which is not either a dock or a transient in the same group as a
dock, shuffle all dock/desktop windows to the end of the MRU list
so they won't annoyingly get focus all the time. #123816
2003-10-15 Yukihiro Nakai <nakai@gnome.gr.jp>
Gettextize metacity-theme-viewer. #121747
* src/theme-viewer.c: gettextize.
* po/POTFILES.in: Add src/theme-viewer.c
2003-10-13 Havoc Pennington <hp@redhat.com>
In the "prefs cause code complexity" department, here's a "sloppy
focus die die die" kind of moment.
* src/display.c (meta_display_grab_focus_window_button): don't
grab in sloppy focus mode, since we were dropping the grab on
window enter anyway this just removes races from the current
behavior.
* src/display.c (prefs_changed_callback): ungrab/grab on focus
mode changes, since we treat sloppy and click differently.
2003-10-12 Havoc Pennington <hp@redhat.com>
Merge reduced_resources mode patch from the branch. Offers
wireframe and no-animations.
* src/window.c (implement_showing): no animation if we are
in reduced resources mode
* src/prefs.c: add REDUCED_RESOURCES pref
* src/window.c (meta_window_update_keyboard_resize): fix to
modify grab_anchor_window_pos to grab_wireframe_rect if
appropriate instead of window->rect
* src/display.h (struct _MetaDisplay): add grab_start_serial used
to avoid responding to events that occurred prior to the grab
initialization.
Still broken in various ways, specifically EnterNotify that
occurred prior to XGrabPointer is processed as if it occurred
after.
* src/window.c (meta_window_update_keyboard_move): add this
instead of meta_window_warp_pointer() crack
* src/effects.c (meta_effects_update_wireframe): draw a kind of
grid for the wireframe, instead of just a rectangle, like twm
* src/screen.c (meta_screen_new): line width of 3 for the XOR gc
"Reduced resources" mode based on wireframe patch from
Erwann Chenede. Still pretty buggy.
* src/keybindings.c (process_keyboard_move_grab)
(process_keyboard_resize_grab): add gruesome wireframe hacks
* src/display.c (meta_display_end_grab_op): end wireframe
(meta_display_begin_grab_op): begin wireframe
* src/effects.c (meta_effects_end_wireframe)
(meta_effects_update_wireframe, meta_effects_begin_wireframe):
routines to draw the wireframe stuff
* src/window.c (window_should_be_showing): hide window when
doing wireframe, commented out as it breaks grab
* src/window.c (meta_window_refresh_resize_popup): handle wireframe
* src/screen.c (meta_screen_new): create a screen->root_xor_gc
for use in drawing wireframes
* src/frames.c (meta_frames_push_delay_exposes): repaint
everything before we delay
2003-10-11 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_begin_grab_op): initialize
display->grab_have_pointer to FALSE, previously I think you could
get a case where we didn't have the grab and thought we did.
Bugs were reported with this happening. Of course we still have
the "why did the grab fail" problem, but it should be less
noticeable with this fixed.
2003-10-06 Rob Adams <readams@readams.net>
* src/constraints.c (constraint_onscreen_*_func): disable onscreen
resize constraints for right, left, and bottom, since there is no
way to violate onscreen constraints by resizing in these
directions and the code to implement the constraints made some
incorrect assumptions. Fix for #120701, #120756, #123165,
#123631, #123838.
2003-10-06 Žygimantas Beručka <uid0@tuxfamily.org>
* configure.in: Added "lt" to ALL_LINGUAS
2003-10-01 Havoc Pennington <hp@redhat.com>
* NEWS: update
* configure.in: 2.6.2
2003-09-30 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_queue_move_resize): add the moveresize
idle at META_PRIORITY_RESIZE so it runs before GTK does any
drawing, may fix bug #109211 (seems to for me)
* src/ui.h (META_PRIORITY_RESIZE): add this between GTK
resize/redraw priorities
* src/display.c (meta_display_queue_retheme_all_windows): remove
some debug spew from meta_warning
2003-09-30 Havoc Pennington <hp@redhat.com>
* src/testasyncgetprop.c: remove nonstandard header include,
#121870
2003-09-30 Havoc Pennington <hp@redhat.com>
* src/tools/metacity-message.c (main): call
bind_textdomain_codeset(), fix from Yukihiro Nakai bug #121743
2003-07-28 Rached Ben Mustapha <rached@benmur.net>
Fix bug #118428
* src/window.c (redraw_icon): Also redraw window icon if the window
is not mapped but its frame is.
(idle_update_icon): Unset the window->update_icon_queued flag.
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/tabpopup.c (meta_ui_tab_popup_new): put a random cap on
number of characters in the title of each window, bug #109301
2003-09-29 Havoc Pennington <hp@redhat.com>
* configure.in: put -lXext in Xrandr check, bug #115996
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/wm-tester/test-size-hints.c: a little program to test size
hints, for now just a 0x0 min size to verify bug #113320
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/async-getprop.c (async_get_property_handler): attempt to fix
this to return the data as an array of long even on 64-bit as with
XGetWindowProperty() breakage, bug #114035, credit to Gwenole
Beauchesne for tracking down.
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/xprops.c (cvtINT16toInt): fix the 64-bit check not to use
macros from the X tree that don't get set
* configure.in: check for sizes of various types
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/delete.c (meta_window_delete): don't move the focus after
you click the close button on a window. bug #108706
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/main.c (find_accessibility_module): fix warnings (one was a
real bug)
* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): fix warning that
probably explains remaining crash on bug #116923. Jeez, need to
use -Werror here or something.
Fix #103575, spawn child processes on proper screen.
* src/keybindings.c (error_on_command): pass --screen to
metacity-dialog
(handle_run_command): launch user command with DISPLAY reflecting
the screen you launch it from
* src/delete.c (delete_ping_timeout_func): pass --screen to
metacity-dialog
2003-09-26 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): when focus on root window
becomes None, set it to something other than None so keybindings
keep working and print a warning about how some application sucks.
#84564
(event_callback): Fix debug spew to print focus event details
properly
(meta_display_open): when setting initial focus, always use
RevertToPointerRoot and fix the focus if it's None or PointerRoot
2003-09-26 Padraig O'Briain <padraig.obriain@sun.com>
* src/Makefile.am: Add -DMETACITY_LIBDIR to support loading of modules
* src/main.c: Add functions find_accessibility_module,
accessibility_invoke_module and accessibility_invoke
(main); Check whether GConf accessibility key is true and if so
load accessibility modules. This code is based on the libgnome code.
src/tabpopup.c (meta_ui_tab_popup_new): Set accessible role of
accessible for label containing window name to STATUSBAR so
AT can be aware of window name.
This fixes bug #120025
2003-09-24 Havoc Pennington <hp@pobox.com>
* src/session.c (io_from_warning_dialog): fix hang when we get
EOF, #121376 from Laurent Vivier
2003-09-22 Taneem Ahmed <taneem@bengalinux.org>
* configure.in: Added "bn" to ALL_LINGUAS.
2003-09-20 Åsmund Skjæveland <aasmunds@fys.uio.no>
* configure.in: Added Norwegian (nynorsk) translation code to
ALL_LINGUAS
2003-09-20 Rob Adams <readams@readams.net>
Fix bug where multiple entries could appear in MRU lists, or no
entry when sticking/unsticking windows. Fix for #122016
* src/window.c (meta_window_stick): use window->screen->workspaces
instead of window->workspaces.
(meta_window_unstick): use window->screen->workspaces instead of
window->workspaces.
2003-09-19 Rob Adams <readams@readams.net>
Fix a bug with partial-width panel struts caused by incorrect
computation of rectangle widths, and another when using different
screen resolutions on xineramas. See #122404. Also fix a crash
bug with the MRU list when sticking and unsticking windows. See
#120809.
* src/constraints.c (get_outermost_onscreen_positions): Fix
off-by-one error with partial-width struts.
* src/window.c (meta_window_update_struts): Fix off-by-one error
with partial-width struts.
(meta_window_stick): assign back to GList after g_list_append
(meta_window_unstick): assign back to GList after g_list_append
* src/workspace.c (ensure_work_areas_validated): For right and
bottom struts, compute strut relative to root window and not to
xinerama edge in compliance with EWMH recommendations.
2003-09-17 Fatih Demir <kabalak@gtranslator.org>
* configure.in: Added "ta" (Tamil) to the languages' list.
Wed Sep 10 15:38:09 2003 Jonathan Blandford <jrb@redhat.com>
* configure.in: Rerelease 2.4.0.1 to fix glib-gettext problem.
2003-09-08 Havoc Pennington <hp@redhat.com>
* configure.in: remove "this is the unstable branch" warning
2003-09-08 Havoc Pennington <hp@redhat.com>
* configure.in: 2.6.0
2003-09-04 Havoc Pennington <hp@redhat.com>
* configure.in: 2.5.5
* HACKING: add instructions on how to make a release
2003-08-29 Rob Adams <robadams@ucla.edu>
* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): harden against null
return from gdk_pixmap_foreign_new. Fix for #116923.
2003-08-26 Guntupalli Karunakar <karunakar@freedomink.org>
* configure.in: Added "hi" (Hindi) to ALL_LINGUAS.
2003-08-20 Rob Adams <robadams@ucla.edu>
Complete the transition to using the MRU window as the default
focus window instead of the topmost window; fixes a number of
problems with sloppy focus and utility windows. See #112031.
* src/window.c (meta_window_free): call
meta_workspace_focus_mru_window
(meta_window_minimize): call meta_workspace_focus_mru_window
2003-08-20 Rob Adams <robadams@ucla.edu>
* src/constraints.c (meta_window_constrain): do northwest resize
when maximizing and fullscreening to avoid potential "off-by-one"
problems.
2003-08-19 Rob Adams <robadams@uclu.edu>
* src/stack.c (get_standalone_layer): put windows with
wm_state_below at the bottom. Make this higher priority than full
screen layer; see #120238.
2003-08-18 Rob Adams <robadams@ucla.edu>
* src/constraints.c (meta_window_constrain): recalculate frame
geometry if the window gets maximized after placement, since it's
likely to change. Fix for #120117.
2003-08-17 Ray Strode <halfline@hawaii.rr.com>
* src/delete.c (meta_window_delete): Use MRU list to find focusing
window after a window is deleted instead of using top window. Fix
for #108643.
2003-08-16 Havoc Pennington <hp@pobox.com>
Patch from Soeren Sandmann #108926 to improve opaque resize
* src/frame.c (meta_window_ensure_frame): new function
* src/ui.c (meta_ui_create_frame_window): new function to create
a frame with GDK, so that GDK's invalidation etc. work properly
2003-08-16 Havoc Pennington <hp@pobox.com>
* src/display.c (xcursor_for_op): fix cursor for
META_GRAB_OP_MOVING, #111943 from John Paul Wallington
2003-08-15 Rob Adams <robadams@ucla.edu>
* src/constraints.c (meta_window_constrain): move to upper left
corner since we're resizing/moving instead of moving/resizing.
Fix for #119988.
2003-08-15 Ray Strode <halfline@hawaii.rr.com>
Changed MRU list to be per workspace instead of per display, so
sticky windows don't hijack the window focus after workspace
switching (Bug #97635).
* src/delete.c (meta_window_delete): Use
meta_workspace_focus_top_window instead of
meta_screen_focus_top_window.
* src/display.c (meta_display_open): Stop using display->mru_list.
(find_tab_forward):
(find_tab_backward):
(meta_display_get_tab_list): Use workspace->mru_list instead of
display->mru_list and remove unneeded calls to
meta_window_visible_on_workspace
* src/display.h: Remove mru_list from MetaDisplay
* src/keybindings.c (handle_toggle_desktop): Use
meta_workspace_focus_top_window instead of
meta_screen_focus_top_window.
* src/screen.c (meta_screen_focus_top_window):
(meta_screen_focus_default_window): Remove functions.
(meta_screen_show_desktop): Use meta_workspace_focus_top_window
instead of meta_screen_focus_top_window.
* src/screen.h: Remove meta_screen_focus_top_window and
meta_screen_focus_default_window declarations.
* src/window.c (meta_window_new): Stop using display->mru_list.
(meta_window_free): Use meta_workspace_focus_top_window
instead of meta_screen_focus_top_window and stop using
display->mru_list.
(meta_window_stick): Add sticky window to all workspace MRU lists.
(meta_window_unstick): Remove non-sticky window from the workspace
MRU lists it doesn't belong in.
(meta_window_notify_focus): Move newly focused window to the front
of active workspace's MRU list.
* src/workspace.c (meta_workspace_new): Initialize
workspace->mru_list to NULL.
(meta_workspace_add_window): Add window to workspace's MRU list.
(meta_workspace_remove_window): Remove window from workspace's MRU
list.
(meta_workspace_activate_with_focus): Use
meta_workspace_focus_default_window instead of
meta_screen_focus_default_window.
(meta_workspace_focus_default_window):
(meta_workspace_focus_mru_window):
(meta_workspace_focus_top_window): Add functions.
* src/workspace.h: Add mru_list to MetaWorkspace and add function
declarations for meta_workspace_focus_default_window,
meta_workspace_focus_mru_window, meta_workspace_focus_top_window.
2003-08-14 Rob Adams <robadams@ucla.edu>
Allow windows that are too tall for the workarea to break the
onscreen constraints just enough so that their bottom edges can be
made visible. Fix for #106740. Also, changes constraints to
constrain the resize and then the move to avoid complexities in
the code for the above fix.
* src/constraints.c (get_outermost_onscreen_positions)
Compute the "effective" height of the work area and the minimum
size for the window to compute a value by which a window is
allowed to violate the top constraint.
(meta_window_constrain): convert to a resize then a move instead
of a move then resize.
2003-08-13 Rob Adams <robadams@ucla.edu>
* configure.in: remove metacity.spec from AC_OUTPUT
2003-08-13 Havoc Pennington <hp@redhat.com>
* metacity.spec.in: remove, nobody is maintaining it.
2003-08-13 Laurent Dhima <laurenti@alblinux.net>
* configure.in: Added "sq" to ALL_LINGUAS.
2003-08-10 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_new): don't select for button
press/release events, as that keeps other clients from doing so,
and it doesn't seem that metacity has any reason to do it.
Patch from Andreas Volz.
2003-08-08 Bastien Nocera <hadess@hadess.net>
* src/metacity-dialog.c: (kill_window_question),
(warn_about_no_sm_support): fix markup being ignored when a window
title has a forbidden character in it (eg. "Send & Receive")
* src/tools/metacity-window-demo.c: fix warning
2003-07-29 Arvind Samptur <arvind.samptur@wipro.com>
* src/xprops.c (utf8_list_from_results): Number of
strings we are processing is one more than required.
Also get the string count right even without a null byte at the end.
Pointed out by Havoc.
2003-07-27 Rob Adams <robadams@ucla.edu>
* src/window.c (update_move): Update window shaking loose so that
the window is moved to the pointer and certain drag state is
properly restored once windows "reattach". Fix for #115000 based
on the patch by Jurg Billeter.
* src/screen.c (meta_screen_resize): Invalidate work areas after
an xrandr screen size update. Fix for #117230.
* src/stack.c (window_is_fullscreen_size): Check the bottom corner
of the window in addition to the top corner. Fix for #118194.
* src/constraints.c (meta_window_constrain): Support aspect ratio
hints in the new constraints code. Fix for #113798.
* src/tools/metacity-window-demo.c (toggle_aspect_ratio): toggle
the aspect ratio hints to force a 16:9 aspect ratio.
(do_appwindow): add a button to toggle aspect ratio.
2003-07-27 Havoc Pennington <hp@pobox.com>
* src/theme-viewer.c (run_theme_benchmark): also measure wall
clock time, and run over a number of window sizes.
2003-07-15 Havoc Pennington <hp@redhat.com>
* NEWS: update
* configure.in: 2.5.3
2003-07-12 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Walloon (wa) to ALL_LINGUAS
2003-07-04 Havoc Pennington <hp@pobox.com>
* Makefile.am (EXTRA_DIST): add rationales.txt
2003-07-02 Jordi Mallach <jordi@sindominio.net>
* src/metacity.desktop.in: Add X-GNOME-Bugzilla entries.
2003-07-01 Padraig O'Briain <padraig.obriain@sun.com>
* src/keybindings.c (process_tab_grab): Activate window before ending
grab. This fixes bug #114037.
2003-06-20 Rob Adams <robadams@ucla.edu>
* src/window.c (meta_window_unmaximize): Update grab state when we
unmaximize so double-clicking doesn't cause weird window-jumping
problems. See #116292.
2003-06-29 Rob Adams <robadams@ucla.edu>
* src/constraints.c (meta_window_constrain): Actually maximize
after placement. See #116285.
2003-06-26 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_invalidate_work_area): nuke the
lists of struts here, to improve confidence that we never try to
use them after a window with rects in the list gets freed.
(it wasn't broken before I don't think, just making the
code more robust against future mods)
* src/window.c (meta_window_update_struts): replace magic "75"
with a macro
* src/constraints.c (constraint_hints_applies_func): don't apply
hints to maximized or fullscreen, rather than only fullscreen
(constrain_move): add paranoia max number of iterations to the
heuristic loop
2003-06-26 Rob Adams <robadams@ucla.edu>
Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on
windows. Disabled by default. See #98387.
* src/keybindings.c (handle_toggle_above): new function implements
the keybinding
* src/metacity.schemas.in: add toggle_above keybinding
* src/prefs.[ch]: add toggle_above keybinding
* src/window.[ch] (meta_window_make_above): new function to put a
window into the above state
(meta_window_unmake_above): new function takes a window out of the
above state
2003-06-26 Mohammad DAMT <mdamt@bisnisweb.com>
* po/id.po: Added Indonesian translation
* configure.in: Added "id" to ALL_LINGUAS
2003-06-25 Rob Adams <robadams@ucla.edu>
Update constraints code to support the new _NET_WM_STRUT_PARTIAL
EWMH draft specification. See #86682. Also, fix a bug involving
work area invalidation on metacity startup. Fix for #108497.
Finally, some minor fixes for full screen windows.
* src/window.h: Add new MetaStruts structure to store strut rects
for a window. Remove has_struts and do_not_cover flag, and
support new MetaStruts instead of the four ints.
* src/window.c (meta_window_new): change initialization to work
with new struts. Also, move meta_window_update_struts call to
after the workspaces are initialized to fix #108497. Remove
do_not_cover and related code.
(process_property_notify): add strut_partial
(update_struts): change function name to meta_window_update_struts
and expose in external MetaWindow API. Support partial width
struts and the new strut rects.
* src/workspace.h: add new GSLists containing pointers to all
relevant struts for this workspace.
* src/workspace.c (meta_workspace_new): initialize the list of
strut rects for this workspace.
(meta_workspace_free): free the strut rect lists
(ensure_work_areas_validated): support new struts and new strut
rect lists. Unleash the per-xinerama work areas.
* src/constraints.c (get_outermost_onscreen_positions): Use the
current window position along with the new per-workspace strut
rects to compute the constraints that apply to a particular
window.
(constraint_hint_applies_func): don't do hints constraints on
fullscreen windows
(update_position_limits): for maximized windows use the work areas
to set the position limits; for other windows rely on the struts
constraints to be computed later in
get_outermost_onscreen_positions
(meta_window_constrain): don't apply aspect ratio hints to full
screen windows
* src/display.c (meta_display_open): add _NET_WM_STRUT_PARTIAL atom
(meta_rectangle_equal): new helper function for MetaRectangles
(event_queue_callback): #ifndef out if USE_GDK_DISPLAY not set to
avoid compiler warning
* src/display.h: add atom_net_wm_strut_partial, and add
meta_rectangle_equal.
* src/screen.c (meta_screen_rect_intersects_xinerama): change
_window_intersects_ to _rect_intersects_ which is more useful now.
(meta_screen_resize_func): update struts on windows with struts
since struts are relative to the screen size, and this function is
called when the screen size updates.
* src/screen.h (meta_screen_rect_intersects_xinerama): change
_window_intersects_ to _rect_intersects_ which is more useful now.
* src/window-props.c (meta_display_init_window_prop_hooks): add
hook for strut_partial
* src/tools/metacity-window-demo.c: Support partial-width struts
on the dock window tests for metacity testing purposes.
2003-06-22 Samúel Jón Gunnarsson <sammi@techattack.nu>
* configure.in: Added "is" to ALL_LINGUAS
2003-06-12 Rob Adams <robadams@ucla.edu>
* src/display.c (event_callback): Focus on mouse click in
sloppy/mouse to fix keynav. Fix for #115072.
2003-06-12 Rob Adams <robadams@ucla.edu>
* src/Makefile.am: honor --disable-schemas-install. Fix for
#106123 from Julio Merino
2003-06-12 Rob Adams <robadams@ucla.edu>
Remove legacy support for Gnome 1 hints, since we deem it unlikely
that anyone is running a current metacity with Gnome 1. The
removed hints are _WIN_WORKSPACE, _WIN_LAYER, _WIN_PROTOCOLS,
_WIN_SUPPORTING_WM_CHECK, and _WIN_HINTS. Thanks to Ben Jansens
for much of this patch.
* display.c (meta_display_open): remove hints
* display.h: remove atoms for hints
* screen.c (set_wm_check_hint): don't set legacy hint
(set_supported_hint): don't set legacy hint
* window-props.c (init_win_workspace): removed
(reload_win_workspace): removed
(meta_display_init_window_prop_hooks): remove hints
* window.h: remove do_not_cover flag
* window.c: remove GnomeWinHints enum
(recalc_do_not_cover_struts): removed
(meta_window_new): don't initialize removed flags or compute
legacy struts
(move_resize_cmp): removed
(idle_move_resize): Don't bother sorting the idle queue
(meta_window_client_message): don't set legacy hint
(process_property_notify): remove hints
(update_net_wm_type): don't fall back to WIN_LAYER hint
(update_struts): remove legacy struts
2003-06-12 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): make raise-on-click explicitly
only happen in click to focus mode.
* src/window.c (update_move): apply patch from Jurg Billeter to
allow you to "shake loose" maximized windows and move them between
Xinerama heads. #93586
* src/display.c: delete event_queue_callback
* src/display.h (struct _MetaDisplay): get rid of
grab_current_window_pos and grab_current_root_[xy] as I could find
absolutely no code using them for anything. They were just sort of
randomly assigned to for no apparent reason.
* src/display.c (event_callback): double-click timeout is per
screen, so get the screen and pass screen->ui to
meta_ui_get_double_click_timeout()
* src/ui.c (meta_ui_get_double_click_timeout): take a MetaUI
argument so we get the right settings for each screen
(meta_ui_get_drag_threshold): new function
2003-06-09 Rob Adams <robadams@ucla.edu>
Revamp placement policy for windows that are maximized when they
are mapped, including windows that set a hint to be maximized or
windows that are auto-maximized using our heuristic. See #111902.
* src/window.h: add new flag maximize_after_placement and new
function meta_window_maximize_internal.
* src/window.c (meta_window_new): initialize
maximize_after_placement to FALSE and remove the automaximize
heuristic.
(meta_window_maximize_internal): new function accepts a saved_rect
argument to be used as the new saved_rect for the window, and does
not queue a move_resize.
(meta_window_maximize): re-implement using
meta_window_maximize_internal.
(update_net_wm_state): If a window has a maximize hint set on
startup set maximize_after_placement to TRUE
* src/constraints.c (meta_window_constrain): Update the xinerama
information in the ConstraintInfo after placing the window, and
maximize the window after placement if
window->maximize_after_placement
* src/place.c (find_first_fit): take a natural xinerama list as an
argument instead of generating it here
(constrain_placement): remove function, since it is no longer
needed
(meta_window_place): generate the natural xinerama list here and
pass it into find_first_fit. If find_first_fit fails, use the
list to find empty xineramas where we can place windows that may
be maximized later. This makes maximized windows follow the
correct placement policy. Move the automaximize heuristic here.
2003-06-09 Rob Adams <robadams@ucla.edu>
* src/metacity-dialog.c (warn_about_no_sm_support): install an
alarm to timeout the no-sm-dialog after 4 minutes of inactivity.
Patch from Ximian. See #114789.
2003-06-07 Rob Adams <robadams@ucla.edu>
* src/window.c (meta_window_new): call meta_group_compute_group
after setting window->desc to avoid SIGSEGV when verbose mode is
enabled.
2003-06-07 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_notify_focus): drop the mouse button
grabs for the focused window; we'll see if this breaks anything.
It should fix #102209
Fri Jun 6 19:27:53 2003 Jonathan Blandford <jrb@gnome.org>
* src/metacity.schemas.in: fix the location of the schemas file.
2003-06-04 Rob Adams <robadams@ucla.edu>
* src/window.c (meta_window_new): don't be stupid and set
window->group = NULL after calling meta_window_compute_group.
* src/group.c (meta_window_get_group): assert that window->group
!= NULL in here instead of computing the group to ensure
robustness.
2003-06-04 Rob Adams <robadams@ucla.edu>
Precompute groups to guarantee that meta_group_list_windows always
returns the correct list of windows. See Bug #96973
* src/window.h: change cached_group variable to group
* src/window.c (meta_window_new): change cached_group to group and
call meta_window_compute_group
* src/groups.c (meta_window_get_group): simply return
window->group rather than computing it and returning
window->cached_group
(meta_window_compute_group): new function computes window->group.
Designed to be called once from meta_window_new
(remove_window_from_group): change cached_group to group
(meta_window_group_leader_changed): call meta_window_compute_group
instead of meta_window_get_group
2003-05-29 Rob Adams <robadams@ucla.edu>
Use a new property _METACITY_SENTINEL to eliminate a race
condition that causes focus to behave badly with sloppy/mouse
focus when lots of windows are mapped/unmapped, such as with a
workspace switch. The EnterNotify events on a display are ignored
until the PropertyNotify sent after all the window maps is
received. This is a fix for #110970.
* src/display.[ch]: New _METACITY_SENTINEL atom.
(event_callback): ignore EnterNotify if the sentinel isn't clear,
and decrement the sentinel counter when the PropertyNotify is
received.
(meta_display_increment_focus_sentinel): new function. Increments
the sentinel counter and updates the property on a root window on
this display.
(meta_display_decrement_focus_sentinel): Decrement the sentinel
counter.
(meta_display_focus_sentinel_clear): returns whether the sentinel
counter is zero.
* src/window.c (idle_calc_showing): after showing windows, call
meta_display_increment_focus_sentinel on each display for windows
to be shown.
* src/workspace.[ch] (meta_workspace_activate_with_focus): new
function activates a workspace and focuses a particular window
after the workspace is activated.
(meta_workspace_activate): now just a wrapper for
meta_workspace_activate_with_focus
* src/keybindings.c: use new meta_workspace_activate_with_focus
function to ensure that focus will follow the focused window
through the workspace switch.
2003-05-29 Havoc Pennington <hp@redhat.com>
* src/theme-parser.c (meta_theme_load): s/int/gsize/ for
g_file_get_contents() (found independently by
marcus@freebsd.org on SPARC and James Laska on s390x;
#113661
* src/main.c (main): fix theme location mentioned in error message
2003-05-29 Ray Strode <halfline@hawaii.rr.com>
Get and use double-click speed from GtkSettings (Bug #103218).
* src/ui.c, src/ui.h:
add function meta_ui_get_double_click_timeout for looking up
the global double-click speed.
* src/display.c, src/display.h: remove double_click_time
field from MetaDisplay and use meta_ui_get_double_click_timeout
instead.
2003-05-29 Rob Adams <robadams@ucla.edu>
* src/main.c (main): chdir to the user's home directory on
startup. See #113755.
* src/stack.c (get_standalone_layer): a window should be in the
fullscreen layer if it or any of its transient descendants are
focused or expecting the focus and it is either fullscreen or
fullscreen sized. Fix for #104369.
* src/stack.c (is_focused_foreach): foreach used by
get_standalone_layer to find focused transient descendants.
2003-05-20 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (meta_change_keygrab): the mask
display->ignored_modifier_mask wasn't being bound,
due to "<" instead of "<=" (most people didn't notice
as display->ignored_modifier_mask included Scroll_Lock).
Red Hat bugzilla #91301 reported by Youssef Makki
* src/display.c (meta_change_button_grab): make corresponding
change for button grabs.
2003-05-20 Havoc Pennington <hp@redhat.com>
* NEWS: update
* configure.in: 2.5.2
2003-05-20 Anders Carlsson <andersc@codefactory.se>
* src/metacity-dialog.c: (kill_window_question):
Split up the strings to make life easier for translators.
2003-05-20 Anders Carlsson <andersca@codefactory.se>
* src/metacity-dialog.c: (kill_window_question):
Fix the wording and HIGify the dialog.
2003-05-18 Havoc Pennington <hp@pobox.com>
* src/window.c (unminimize_window_and_all_transient_parents):
revert broken change that assumed foreach_ancestor iterated
over the window itself. Andrew Sobala, Rob Adams,
#113232
2003-05-16 Rob Adams <robadams@ucla.edu>
Flip the workspace when using up/down/left/right for move window
to, but not when specifying a workspace explicitly as in move to
workspace 4. Possible fix for #105492.
* src/keybindings.c (do_handle_move_to_workspace): new function
moves a window to a workspace with the option to flip to that
workspace.
(handle_move_to_workspace): Use new do_handle_move_to_workspace
function without flipping (a keybinding)
(handle_move_to_workspace_flip): Use new
do_handle_move_to_workspace function with flipping (a keybinding)
2003-05-16 Havoc Pennington <hp@redhat.com>
* src/frames.c (meta_frames_paint_to_drawable): fix for
bug #104018 from David Santiago, change button state to
normal while it's being pressed if you move the mouse
outside it. Do this by tracking prelit_control for whether
to draw a button as active, not just for whether to draw
it as prelit.
(meta_frames_motion_notify_event): also update prelit_control
while clicking a button
2003-05-16 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_new): fill in window->desc sooner
since we use it sooner now.
* src/display.c (meta_display_open): init
display->grab_update_alarm
* src/window.c (meta_window_new): initialize the always_sticky
field
(meta_window_new): initialize the update_icon_queued field
Patch from Julien Olivier bug #92335 for converting "show desktop
mode" to "all windows are minimized" when you open a new window,
instead of just mapping all the windows again.
* src/window.c (meta_window_activate): minimize all windows before
coming out of show desktop mode.
(meta_window_unminimize): don't toggle show desktop mode here
* src/screen.c (meta_screen_minimize_all_except): new function
2003-05-01 Havoc Pennington <hp@redhat.com>
* src/theme-parser.c (meta_theme_load): fix memleak on error
2003-05-16 Telsa Gwynne <hobbit@aloss.ukuu.org.uk>
* configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
2003-05-06 Danilo Ã
egan <dsegan@gmx.net>
* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
2003-05-03 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (handle_move_to_workspace): when moving
window to another workspace, don't switch to that workspace.
* src/window.c (menu_callback): when moving window to another
workspace, don't switch to that workspace.
2003-05-03 Havoc Pennington <hp@pobox.com>
* configure.in: 2.5.1
* NEWS: update
2003-05-01 Rob Adams <robadams@ucla.edu>
* src/constraints.c (constraint_onscreen_applies_func): Don't
apply onscreen constraints to full screen windows. Fix for
#110048
2003-04-29 Havoc Pennington <hp@redhat.com>
* src/bell.h: include Xlib.h before XKBlib.h which is required on
Solaris. #111877 from Peter O'Shea
2003-04-23 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (process_keyboard_move_grab): support
diagonal keypad keybindings, from Dafydd Harries
2003-04-21 Havoc Pennington <hp@redhat.com>
* purge HAVE_GTK_MULTIHEAD from the source code, not just from
configure.in. Yes I am a loser.
2003-04-19 Masahiro Sakai <sakai@tom.sfc.keio.ac.jp>
* configure.in: call AC_LIBTOOL_WIN32_DLL.
* src/Makefile.am: add -no-undefined to libmetacity_private_la_LDFLAGS
and write dependency libraries in libmetacity_private_la_LIBADD.
2003-04-06 Rob Adams <robadams@ucla.edu>
* src/place.c (find_next_cascade): cascade on xinerama with
pointer instead of on first xinerama.
2003-04-05 Rob Adams <robadams@ucla.edu>
Update placement policy for screen with multiple xineramas.
Windows will be placed preferentially on the xinerama with the
pointer, and progressively further away as needed to find a place
where the window does not overlap other windows.
* src/place.c (rect_fits_in_work_area): function
fit_rect_in_xinerama greatly simplified to work with new placement
policy.
(find_first_fit): implement new first fit placement scheme
* src/screen.c (meta_screen_get_xinerama_neighbor): look for an
xinerama in the xinerama list that is adjacent to the specified
xinerama.
(meta_screen_get_natural_xinerama_list): return a list of
xineramas in the order to be preferred by the placement algorithm
as determined by the current location of the pointer.
* src/screen.h: add function prototypes and an enum used by
meta_screen_get_xinerama_neighbor.
2003-04-05 Rob Adams <robadams@ucla.edu>
* src/place.c (center_tile_rect_in_area): Fix a minor off-by-one
error. See #110079.
2003-03-30 Rob Adams <robadams@ucla.edu>
* src/window.c (meta_window_move_resize_internal): When passing
frame geometry to meta_window_constrain, send null if no frame.
Possible fix for #109039.
2003-03-29 Havoc Pennington <hp@pobox.com>
* src/wm-tester/test-gravity.c (main): add --noframes option for
testing, showing how broken we currently are.
Fri Mar 28 14:13:37 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* src/window.c (update_resize): Only cap refresh rate when not
using SYNC. Remove bogus update-if-we-moved-more-than-a-delta.
* src/window.c (update_move): Don't cap refresh rate during
moves. Remove bogus update-if-we-moved-more-than-a-delta.
2003-03-26 Havoc Pennington <hp@pobox.com>
* NEWS: update
* configure.in: release 2.5.0
Sun Mar 23 23:04:06 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* src/display.c (meta_spew_event): just return if we are not
verbose.
2003-03-11 Havoc Pennington <hp@pobox.com>
Should fix #108108, #106217, tracked down by Owen Taylor and
Frederic Crozat
* src/window.c (meta_window_foreach_transient): change
MetaWindowForeachFunc to return a boolean for whether to continue
(meta_window_foreach_ancestor): new function
(window_should_be_showing): use meta_window_foreach_ancestor
(unminimize_window_and_all_transient_parents): ditto
(update_sm_hints): ditto
(meta_window_is_ancestor_of_transient): ditto
* src/stack.c (get_maximum_layer_of_ancestor): use
meta_window_foreach_ancestor
2003-03-16 Rob Adams <robadams@ucla.edu>
* window.c (meta_window_show_menu): Free old window menu if it
already exists so we don't end up with more than one. Fix for
#108392.
2003-03-14 Rob Adams <robadams@ucla.edu>
* contraints.c (get_outermost_screen_positions): Don't try to
force a window onscreen by more than its width. Fix for #94815.
2003-03-13 Rob Adams <robadams@ucla.edu>
Make it so that the alt-tabbing won't try to go to a minimized
window by default. Fix for #107071.
* display.c (meta_display_get_tab_list): use a GList instead of a
GSList
(meta_display_get_tab_next): use meta_display_get_tab_list to
decide what the next/previous tab window should be.
* display.h (meta_display_get_tab_list): update function prototype
to return GList instead of GSList.
* screen.c (meta_screen_ensure_tab_popup): update function to deal
with GList returned by meta_display_get_tab_list instead of GSList.
2003-03-13 Christian Rose <menthos@menthos.com>
* configure.in: Added "ml" to ALL_LINGUAS.
2003-03-11 Paul Duffy <dubhthach@zion.nuigalway.ie>
* configure.in: Added "ga" to ALL_LINGUAS
2003-03-11 Rob Adams <robadams@ucla.edu>
* src/constraints.c (meta_window_constrain): include left frame
geometry when maximizing or fullscreening windows. Fix for
#108127.
2003-03-10 Roozbeh Pournader <roozbeh@sharif.edu>
* configure.in: Added "fa" to ALL_LINGUAS.
2003-02-27 Havoc Pennington <hp@redhat.com>
Switch over to new constraints code, unquestionably introduces
some bugs, but should get us on the right path.
* src/window.c (meta_window_get_work_area_all_xineramas): create
this function again as it turned out to be legitimate for window
position constraint
(adjust_for_gravity): use the width/height from the configure
request to compute the requested move
(meta_window_move_resize_internal): use meta_window_constrain
(update_size_hints): clamp max size to MAXSHORT to avoid worrying
about overflow stuff
* src/constraints.c (meta_window_constrain): don't base placement
on uninitialized variables, general hacking
* src/Makefile.am (metacity_SOURCES): add constraints.c,
constraints.h
* src/constraints.c (meta_window_constrain): update the
cut-and-paste aspect ratio code to have latest bugfixes
2003-03-08 Rob Adams <robadams@ucla.edu>
* src/window-props.c (reload_normal_hints): Check that window min
and max size hints are at least 1. Fix for #107110.
2003-02-27 Havoc Pennington <hp@pobox.com>
Changes made on plane from FOSDEM, syncing from laptop.
* src/main.c (main): add more debug spew about conditional
build stuff
(main): panic to "Simple" theme
* src/window.c, src/window-props.c: move WM_NORMAL_HINTS and
WM_PROTOCOLS to new property system; don't queue move resize on
updating WM_PROTOCOLS; move WM_HINTS to new property system;
reload icon in an idle handler.
2003-02-28 Mark McLoughlin <mark@skynet.ie>
Give me back my keys.
* src/keybindings.c: (meta_window_grab_keys): don't
grab keys on DOCK windows.
* src/window.c: (recalc_window_type): re-grab the
keys.
2003-02-26 Dmitry G. Mastrukov <dmitry@taurussoft.org>
* configure.in: Added Belarusian to ALL_LINGUAS.
2003-02-26 Mark McLoughlin <mark@skynet.ie>
* src/keybindings.c: (handle_panel_keybinding): release
the keyboard grab before sending the action message to
the panel.
2003-02-24 Mark McLoughlin <mark@skynet.ie>
Take control of the panel's global keybindings. The
screenshot utility is hooked up using a special case
run_command and the menu and run dialog bindings are
done using the _GNOME_PANEL_ACTION ClientMessage
protocol.
* src/display.[ch]: (meta_display_open): add some atoms.
* src/keybindings.c:
(handle_panel_keybinding): impl to handle a keybinding
by sending an action message to the panel.
* src/metacity.schemas.in: add schemas for the panel and
screenshot keybindings and the screenshot commands.
* src/prefs.[ch]: (update_command),
(meta_prefs_get_gconf_key_for_command): impl special case
handling for the screenshot commands. They are stored at
the the end of the commands array but have named keys.
2003-02-23 Havoc Pennington <hp@pobox.com>
Patch from Rob Adams addresses #95014 (placement issues),
makes first fit algorithm "center tile", adds most code
for per-xinerama workspaces (#86682) but disables it for now.
* src/workspace.c (meta_workspace_get_work_area_for_xinerama)
(meta_workspace_get_work_area_all_xineramas): new xinerama
functions, maintain workspace->work_areas with a different
work area for each xinerama. However for now all the work
areas are the same, because haven't quite figured out how
_NET_WM_STRUT is supposed to work
* src/window.c: adapt to new meta_window_* xinerama APIs
(meta_window_get_work_area_current_xinerama): new xinerama
API
(meta_window_get_work_area_for_xinerama): new xinerama API
(constrain_position): be a bit more clever about which xinerama's
work area we choose to use.
* src/stack.c: adapt to new Xinerama API
* src/screen.c (reload_xinerama_infos): invalidate all work areas
(meta_screen_get_xinerama_for_rect): new function
(meta_screen_window_intersects_xinerama): new function
* src/place.c (find_first_fit): change to use
"center tiling" (center a screen full of tiled windows,
rather than aligning them top left). Adapt to new
xinerama functions.
2003-02-22 Rob Adams <robadams@ucla.edu>
* src/metacity.schemas.in: change toggle_maximized to
toggle_maximize and toggle_shaded to toggle_shade in
action_double_click_titlebar long description to match the values
used by metacity
* po/*.po: change toggle_maximized to toggle_maximize and
toggle_shaded to toggle_shade in action_double_click_titlebar long
description to match the values used by metacity
2003-02-22 Rob Adams <robadams@ucla.edu>
* window.c (set_wm_state): modify comment to explain why the icon
window element is set to None. Fix for #97357 thanks to Gregory
Merchan.
2003-02-22 Havoc Pennington <hp@pobox.com>
* README: fix a typo, pointed out by Steve Kemp
2003-02-22 Havoc Pennington <hp@pobox.com>
* src/prefs.c (MAX_REASONABLE_WORKSPACES): change max workspaces
to 36 #81855
2003-02-22 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): fix to unfocus window only when
you leave the window frame, not when you leave the window itself,
unless window has no frame. #100248 fix from Orien Vandenbergh
2003-02-22 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_get_tab_next): when tabbing
backward, we are still tabbing *from* the most recently used
window, not from the least recently used window.
* src/keybindings.c (struct _MetaKeyBinding): make keycode
unsigned to match XEvent
Patch for #84999 based on patch from Mark McLoughlin
* src/prefs.c: add an add_shift field to MetaKeyPref to
add shift when grabbing the given keybinding.
* src/keybindings.c (rebuild_screen_binding_table)
(rebuild_window_binding_table): refactor to share code,
and honor add_shift field in MetaKeyPref
2003-02-20 Havoc Pennington <hp@redhat.com>
* src/stack.c (create_constraints): don't create constraints
between windows on different screens, #106086 tracked down
by Arvind
2003-02-14 Arvind Samptur <arvind.samptur@wipro.com>
* src/screen.c: (meta_screen_new) : Update the workspace
names from gconf and set the NET_DESKTOP_NAMES atom.
Renamed update_workspace_names() to set_workspace_names().
Fixes #105498
2003-02-13 Havoc Pennington <hp@redhat.com>
* configure.in: require GTK+ 2.2.0
* src/ui.c (meta_ui_init): remove hackaround for Pango X core
fonts backend
2003-02-05 Abel Cheung <maddog@linux.org.hk>
* configure.in: Added "en_GB" and "nl" to ALL_LINGUAS.
2003-02-05 Akira TAGOH <tagoh@gnome.gr.jp>
* src/main.c (usage): fix a typo and missing option. (#105186)
2003-02-04 Havoc Pennington <hp@redhat.com>
* src/themes/Simple/ChangeLog: nuke subdir ChangeLog,
there can be only one true ChangeLog.
2003-01-30 Havoc Pennington <hp@redhat.com>
* src/keybindings.c (process_event): match handlers to key events
using key codes, not key syms
Thu Jan 30 22:55:16 2003 Jonathan Blandford <jrb@redhat.com>
* src/themes/Makefile.am (THEMES): add Simple to the list of
themes.
* src/metacity.schemas.in: change default theme to Simple.
2003-01-29 Havoc Pennington <hp@pobox.com>
* src/menu.c (meta_window_menu_new): don't create workspaces
menu items if only 1 workspace. Fix for #101952 from
Orien Vandenbergh
2003-01-28 Bill Haneman <bill.haneman@sun.com>
* Re-instated visual-bell patch
(please see ChangeLog entry for 2002-12-16 for details).
* src/prefs.c:
(visual_bell_type_from_string):
Accept a NULL string for 'visual-bell-type'.
2003-01-25 Havoc Pennington <hp@pobox.com>
* src/stack.c (window_is_fullscreen_size): When checking if a
window is fullscreen size, only require it to be at the origin
of the work area, not at the origin of the screen/xinerama.
Still require it to be full screen in width x height.
May fix xine in the case where the user has a top panel.
* src/window.c (constrain_position): restore the ability for
undecorated windows to position themselves overlapping the top
panel, but don't let decorated windows do so. Oh the hacks...
2003-01-08 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_apply_startup_properties): small code
snippet to fix startup sequences that set legacy class/name
2003-01-22 Havoc Pennington <hp@redhat.com>
* src/async-getprop.c (async_get_property_handler): do not read
sizeof(long) off the X connection. The X protocol does not vary
by architecture. Fixes longstanding hang on all 64-bit platforms.
2003-01-22 Havoc Pennington <hp@redhat.com>
* src/tools/Makefile.am: fix conditional so we get
metacity-properties.c in the distribution #103071
2003-01-22 Havoc Pennington <hp@pobox.com>
* src/window.c (update_struts): be robust against the panel's
lame "set a negative number for struts" thing, even though
we'll also fix the panel.
2003-01-21 Havoc Pennington <hp@pobox.com>
Fix for the "mangles focus window when switching workspaces
and using mouse focus" bug
* src/stack.c (meta_stack_get_default_focus_window_at_point): new
function
* src/screen.c (meta_screen_focus_mouse_window): new function
(meta_screen_focus_default_window): new function
* src/workspace.c (meta_workspace_activate): use the
new meta_screen_focus_default_window()
2003-01-17 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_handle_mouse_grab_op_event): fix event
compression code to use GDK algorithm suggested by Owen, should be
more efficient.
2003-01-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "mn" to ALL_LINGUAS.
2003-01-21 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): only hop window to the current
workspace if the window was previously minimized. Should keep
mozilla from popping windows over to your current workspace.
2003-01-20 Havoc Pennington <hp@redhat.com>
Attempt to fix #85916
* src/keybindings.c (primary_modifier_still_pressed): new function
(handle_workspace_switch): handle modifier release prior to
getting the grab
(do_choose_window): handle modifier release prior to getting the
grab
* src/keybindings.c (grab_keyboard): properly return failure
if the GrabKeyboard doesn't work
2003-01-19 Havoc Pennington <hp@pobox.com>
* configure.in: add note about how this is the unstable branch,
set version to 2.5.0
2003-01-14 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_maximize, meta_window_unmaximize)
(meta_window_make_fullscreen, meta_window_unmake_fullscreen):
recalc_window_features() after making these changes, should fix
#103317
2003-01-14 Rob Adams <robadams@ucla.edu>
* src/prefs.c: Increase the number of run_command bindings in
screen_bindings from 12 to 32.
* src/prefs.h: Increase the number of META_KEYBINDING_COMMAND_N
macros from 12 to 32.
* src/keybindings.c: Increase the number of run_command handlers
from 12 to 32.
2003-01-11 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_handle_mouse_grab_op_event): implement
compression of motion events (drop all but the most recently
received), guessing at fixes for #103009
2003-01-11 Havoc Pennington <hp@pobox.com>
* configure.in: add ability to --disable-shape
2003-01-11 Akira TAGOH <tagoh@gnome.gr.jp>
* configure.in: fix the behavior of --enable-*.
2003-01-10 Havoc Pennington <hp@redhat.com>
* src/Makefile.am (desktopfiles_in_files): revert that change, I
got the wrong .desktop file. doh.
2003-01-10 Havoc Pennington <hp@redhat.com>
* src/Makefile.am (desktopfiles_DATA): don't install .desktop file
for properties dialog if we aren't building/installing the
properties dialog.
2003-01-10 Havoc Pennington <hp@pobox.com>
* NEWS: update
* configure.in: bump to 2.4.13, require 2.2.0 for multihead
2003-01-09 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Use a line for the titlebar
text bg.
2003-01-09 Havoc Pennington <hp@redhat.com>
* src/window.c (recalc_window_features): argh, we were making all
dialogs skip taskbar; when did that get added. Fix to match
libwnck, only skip taskbar when the dialog is transient for some
other app window.
2003-01-09 Havoc Pennington <hp@redhat.com>
* src/metacity.schemas.in: change Windows+click back to Alt+click,
Windows+click just surprised everybody and didn't work half the
time. Maya users can configure it, and GTK DND can change its
default.
2003-01-08 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas.in: assign Alt+F12 to shade window,
per #102658
2003-01-07 Havoc Pennington <hp@pobox.com>
* src/screen.c (update_num_workspaces): fix off-by-one, patch from
readams@hmc.edu, #102806
2003-01-06 Arvind Samptur <arvind.samptur@wipro.com>
* src/window.c: (constrain_position) don't apply
offscreen height difference. This would get the
window under the panel on a resize or a move.
Fixes #102418
2003-01-05 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_calc_workspace_layout): invert
vertical_workspaces cases (we want to go down each column if
it's vertical, and across each row if horizontal). Patch
from readams@hmc.edu
2003-01-05 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Macedonian (mk) to ALL_LINGUAS
2003-01-05 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_apply_shapes): put in the
HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0
2003-01-05 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_show): focus new windows even in
mouse focus mode, #89981, patch from readams@hmc.edu
2003-01-05 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_get_neighbor): redo using new
calc_workspace_layout to fix #98302
* src/util.c (topic_name): shorten default prefix
* src/screen.c (meta_screen_calc_workspace_layout): enhance this
to handle all the funky layouts and calculate more information
than before
2003-01-05 Pauli Virtanen <pauli.virtanen@hut.fi>
* configure.in (ALL_LINGUAS): Added "fi" (Finnish).
2003-01-05 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_apply_shapes): handle
the client having a shape mask, fixes #101806
* src/core.c (meta_core_get_client_xwindow): new function
* src/frame.c, src/frame.h: keep a flag for whether we need to
update the frame shape
* src/window.c (meta_window_new): select for ShapeNotify
* src/display.h, src/display.c: actually query the shape
extension, instead of just using it all over the place.
* src/prefs.c (update_application_based): don't let people turn on
application_based, as it just causes funky bugs. We can reenable
the pref when/if it ever does something useful.
2003-01-03 Havoc Pennington <hp@redhat.com>
* src/display.c: include the Xrandr header file
* src/window.c (meta_window_fill_horizontal)
(meta_window_fill_vertical): maximize to work area, not entire
screen. doh.
2002-12-19 Ross Burton <ross@burtonini.com>
* doc/metacity-theme.dtd: Fix a typo and loosen the requirements
for the resize element.
2002-12-19 Havoc Pennington <hp@pobox.com>
* Reverted visual bell patch, #99886
2002-12-19 Yanko Kaneti <yaneti@declera.com>
* configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
2002-12-18 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_new): select ColormapChangeMask
on toplevel windows, maybe a partial fix for #101478
Tue Dec 17 17:50:19 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
* src/themes/AgingGorilla/metacity-theme-1.xml: added support for
border only windows. #100984.
2002-12-17 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_begin_grab_op): don't use "(null)"
for null pointers, use "none", so I can distinguish
glibc-generated (null) which is a bug.
(key_event_description): ditto
(meta_display_begin_grab_op): ditto
* src/window.c (update_sm_hints): ditto
* src/keybindings.c (reload_modmap): ditto
(meta_display_process_key_event): ditto
2002-12-17 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas.in: s/focussed/focused/
2002-12-17 Havoc Pennington <hp@pobox.com>
* src/xprops.c (validate_or_free_results): add a comma to message #101401
2002-12-16 Bill Haneman <bill.haneman@sun.com>
* configure.in:
Check for XKB extension.
* src/Makefile.am:
Added bell.c and bell.h to metacity sources.
* src/common.h:
(MetaFrameFlags):
Added META_FRAME_IS_FLASHING flag.
* src/frame.h:
(MetaFrame): Added is_flashing field.
* src/frame.c:
(meta_window_ensure_frame):
Initialize the is_flashing flag to FALSE.
(meta_frame_get_flags):
Handle the FRAME_IS_FLASHING flag.
(meta_window_destroy_frame):
Call meta_bell_notify_frame_destroy.
* src/prefs.h:
(MetaPreference):
Added META_PREF_VISUAL_BELL, META_PREF_AUDIBLE_BELL,
META_PREF_VISUAL_BELL_TYPE.
(MetaVisualBellType): New enum.
(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible):
(meta_prefs_get_visual_bell_type):
New accessor declarations.
* src/prefs.c:
(#includes): Include "display.h", since we now call
meta_displays_list() in our update func.
(#defines):
Define KEY_VISUAL_BELL, KEY_AUDIBLE_BELL,
and KEY_VISUAL_BELL_TYPE.
(provide_visual_bell, bell_is_audible, visual_bell_type):
New static state variables.
(update_visual_bell): New method to update visual-bell
boolean settings from keys "visual_bell" and "audible_bell".
(update_visual_bell_type):
New method to update visual-bell type setting.
(visual_bell_type_from_string) :
New method to convert from gconf string to visual-bell
type enum. Only currently recognized values are "fullscreen"
and "frame_flash".
(change_notify):
Handle changes to visual and audible bell properties.
(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible):
(meta_prefs_get_visual_bell_type):
New accessor definitions.
(meta_prefs_init): Added a second call to notify_add,
listens to "/desktop/gnome/interface" as well as "apps/metacity".
Also call the update funcs for the new visual-bell gconf keys.
(meta_preference_to_string):
Handle the visual/audible bell cases.
* src/bell.h:
(meta_bell_notify);
New method, calls a visual notifucation
method based on the visual-bell-type, or none if the type
is unrecognized or invalid.
(meta_bell_set_audible):
New public method for setting the audible bell setting,
used in updater for new gconf key "audible_bell".
(meta_bell_init):
Initialize the bell notification for a display.
(meta_bell_shutdown):
Shutdown the bell notification for a display.
(meta_bell_notify_frame_destroy):
Remove pending idle handlers on notification.
* src/bell.c:
Include "bell.h", and conditionally include <Xll/Xkblib.h>.
(meta_bell_set_audible):
If XKB is present, enable/disable the audible system
bell based on the gconf key /desktop/gnome/interface/audible_bell.
(meta_bell_init):
Query and initialize XKB if present, register for notification
on the bell, and set audible bell according to gconf settings.
(meta_bell_flash_screen):
Maps and unmaps a fullscreen X window (painted white, then
black), which causes a fullscreen 'flash' transient.
(meta_bell_flash_window_frame):
Flashes the titlebar of a specified window.
(meta_bell_flash_frame):
Calls meta_bell_flash_window_frame on the window which
was the source of the current bell event, or the currently
focussed window if the event source cannot be determined.
(meta_bell_unflash_frame):
Restore the frame's appearance to normal.
(meta_bell_flash_fullscreen):
Call meta_bell_flash_fullscreen for all screens.
(meta_bell_shutdown):
New method.
(meta_bell_notify_frame_destroy):
Remove pending idle handlers on notification,
testing for frame->is_flashing first.
* src/display.h:
(MetaDisplay): Added xkb_base_event_type field.
* src/display.c:
Check for XKB and include "X11/XKBlib.h" if present.
(meta_display_open): Call meta_bell_init.
(event_callback): Call meta_bell_notify
when event comes from XKB and is XkbBellNotify
(prefs_changed_callback):
Handle META_PREF_AUDIBLE_BELL notification.
* src/screen.h:
(MetaScreen): Add flash_window field.
* src/screen.c:
(meta_screen_new):
Initialize flash_window field.
* src/theme.c:
(theme_get_style):
New heuristic for focus-style, to invert sense of focus
flag when META_FRAME_IS_FLASHING flag is set.
* src/metacity.schemas.in:
Added scheme information for
/apps/metacity/general/visual_bell,
/apps/metacity/general/audible_bell, and
/apps/metacity/general/visual_bell_type.
2002-12-16 Havoc Pennington <hp@pobox.com>
* src/window-props.c (init_wm_name): argh, screwed that up. get
WM_NAME as VALUE_TEXT_PROPERTY #101383
2002-12-16 Bill Haneman <bill.haneman@sun.com>
* configure.in:
Check for XKB extension.
* src/Makefile.am:
Added bell.c and bell.h to metacity sources.
* src/common.h:
(MetaFrameFlags):
Added META_FRAME_IS_FLASHING flag.
* src/frame.h:
(MetaFrame): Added is_flashing field.
* src/frame.c:
(meta_window_ensure_frame):
Initialize the is_flashing flag to FALSE.
(meta_frame_get_flags):
Handle the FRAME_IS_FLASHING flag.
(meta_window_destroy_frame):
Call meta_bell_notify_frame_destroy.
* src/prefs.h:
(MetaPreference):
Added META_PREF_VISUAL_BELL, META_PREF_AUDIBLE_BELL,
META_PREF_VISUAL_BELL_TYPE.
(MetaVisualBellType): New enum.
(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible):
(meta_prefs_get_visual_bell_type):
New accessor declarations.
* src/prefs.c:
(#includes): Include "display.h", since we now call
meta_displays_list() in our update func.
(#defines):
Define KEY_VISUAL_BELL, KEY_AUDIBLE_BELL,
and KEY_VISUAL_BELL_TYPE.
(provide_visual_bell, bell_is_audible, visual_bell_type):
New static state variables.
(update_visual_bell): New method to update visual-bell
boolean settings from keys "visual_bell" and "audible_bell".
(update_visual_bell_type):
New method to update visual-bell type setting.
(visual_bell_type_from_string) :
New method to convert from gconf string to visual-bell
type enum. Only currently recognized values are "fullscreen"
and "frame_flash".
(change_notify):
Handle changes to visual and audible bell properties.
(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible):
(meta_prefs_get_visual_bell_type):
New accessor definitions.
(meta_prefs_init): Added a second call to notify_add,
listens to "/desktop/gnome/interface" as well as "apps/metacity".
Also call the update funcs for the new visual-bell gconf keys.
(meta_preference_to_string):
Handle the visual/audible bell cases.
* src/bell.h:
(meta_bell_notify);
New method, calls a visual notifucation
method based on the visual-bell-type, or none if the type
is unrecognized or invalid.
(meta_bell_set_audible):
New public method for setting the audible bell setting,
used in updater for new gconf key "audible_bell".
(meta_bell_init):
Initialize the bell notification for a display.
(meta_bell_shutdown):
Shutdown the bell notification for a display.
(meta_bell_notify_frame_destroy):
Remove pending idle handlers on notification.
* src/bell.c:
Include "bell.h", and conditionally include <Xll/Xkblib.h>.
(meta_bell_set_audible):
If XKB is present, enable/disable the audible system
bell based on the gconf key /desktop/gnome/interface/audible_bell.
(meta_bell_init):
Query and initialize XKB if present, register for notification
on the bell, and set audible bell according to gconf settings.
(meta_bell_flash_screen):
Maps and unmaps a fullscreen X window (painted white, then
black), which causes a fullscreen 'flash' transient.
(meta_bell_flash_window_frame):
Flashes the titlebar of a specified window.
(meta_bell_flash_frame):
Calls meta_bell_flash_window_frame on the window which
was the source of the current bell event, or the currently
focussed window if the event source cannot be determined.
(meta_bell_unflash_frame):
Restore the frame's appearance to normal.
(meta_bell_flash_fullscreen):
Call meta_bell_flash_fullscreen for all screens.
(meta_bell_shutdown):
New method.
(meta_bell_notify_frame_destroy):
Remove pending idle handlers on notification,
testing for frame->is_flashing first.
* src/display.h:
(MetaDisplay): Added xkb_base_event_type field.
* src/display.c:
Check for XKB and include "X11/XKBlib.h" if present.
(meta_display_open): Call meta_bell_init.
(event_callback): Call meta_bell_notify
when event comes from XKB and is XkbBellNotify
(prefs_changed_callback):
Handle META_PREF_AUDIBLE_BELL notification.
* src/screen.h:
(MetaScreen): Add flash_window field.
* src/screen.c:
(meta_screen_new):
Initialize flash_window field.
* src/theme.c:
(theme_get_style):
New heuristic for focus-style, to invert sense of focus
flag when META_FRAME_IS_FLASHING flag is set.
* src/metacity.schemas.in:
Added scheme information for
/apps/metacity/general/visual_bell,
/apps/metacity/general/audible_bell, and
/apps/metacity/general/visual_bell_type.
2002-12-16 Havoc Pennington <hp@pobox.com>
* src/window-props.c: use META_PROP_VALUE_STRING_AS_UTF8 so
we convert old Latin-1 WM_NAME to UTF-8
* src/xprops.h (enum): add META_PROP_VALUE_STRING_AS_UTF8 to get a
latin1 string then convert.
2002-12-15 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): get window name before anything
else.
* src/xprops.c (validate_or_free_results): instead of suggesting
how to get window title etc. with xprop, just print out the
window title. much better.
2002-12-15 Havoc Pennington <hp@pobox.com>
* src/xprops.c (validate_or_free_results): make the warning about
strange property contents blame the application and explain how to
use xprop to diagnose which app is causing the problem.
2002-12-15 Havoc Pennington <hp@pobox.com>
* src/prefs.c (meta_prefs_change_workspace_name): don't pass NULL
string to gconf_client_set_string #101237
2002-12-13 Havoc Pennington <hp@redhat.com>
* src/tools/Makefile.am (Desktop_in_files): only install .desktop
file for metacity-properties if we actually install
metacity-properties
* src/display.c (event_callback): not focusing on button 2 click
was crack, revert that change.
2002-12-09 Havoc Pennington <hp@pobox.com>
* AUTHORS: add myself here, bug #100789
* src/display.c (meta_display_set_grab_op_cursor): drop
PointerMotionHintMask
* src/window.c (meta_window_handle_mouse_grab_op_event): don't use
XQueryPointer, as we aren't using PointerMotionHint now
* src/display.c (event_callback): rearrange a bit of code
for slight speedup and clarity
* src/window.c (update_resize)
(meta_window_handle_mouse_grab_op_event): implement
usage of the _METACITY_UPDATE_COUNTER
(meta_window_handle_mouse_grab_op_event): fix code that
used event->xbutton with a motion event
* src/display.c (meta_display_open): add new atoms, and
initialize Xsync if we have it
(grab_op_is_resizing): new function
(meta_display_begin_grab_op): create an alarm monitoring
window's _METACITY_UPDATE_COUNTER
(meta_spew_event): conditionalize this on WITH_VERBOSE_MODE
and print alarm events.
* src/window.c (meta_window_new): fetch _METACITY_UPDATE_COUNTER
* configure.in (HAVE_XSYNC): check for Xsync extension
Mon Dec 9 22:09:56 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* src/display.c, src/window.c: Handle crossing events during
resizing. (#93384).
2002-12-09 Havoc Pennington <hp@redhat.com>
* configure.in: 2.4.8
2002-12-08 Havoc Pennington <hp@pobox.com>
* README: updates
* src/window.c (MAX_RESIZES_PER_SECOND): change to 20 instead of
30, just as an experiment.
(MOVE_THRESHOLD): change 15 to 20
(RESIZE_THRESHOLD): change 15 to 20
* src/util.c (ensure_logfile): kill this function when verbose
mode is disabled.
2002-12-08 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_fill_vertical)
(meta_window_fill_horizontal): new functions to resize to
fill screen
* src/keybindings.c: add vert, horiz maximize
* src/prefs.c: had vert, horiz maximize
* src/metacity.schemas.in: shorten some overlong short
descriptions that make the keybindings capplet look ugly.
Add maximize_vertically, maximize_horizontally keys.
2002-12-08 Havoc Pennington <hp@pobox.com>
* src/prefs.c (meta_prefs_get_application_based): make this always
return FALSE for now, to avoid bug reports.
* src/util.c (ensure_logfile): put "opened log file" message on
stderr so it will normally land in ~/.xsession-errors
* configure.in: remove extra AC_ARG_PROGRAM
* src/display.c (event_callback): handle the toggle-verbose message
* src/tools/metacity-message.c: add a toggle-verbose message, been
meaning to do this for a while.
* src/util.c (meta_set_verbose): if verbose mode is enabled and we
don't support it, then exit.
* src/prefs.c: allow building without gconf (currently means some
prefs are no-ops)
* src/util.c, src/util.h: support defining macros to
kill all verbose output entirely. (Removes the code and strings
associated with it)
* configure.in: don't get METACITY_PROPS_LIBS if not building the
config dialog.
(HAVE_GCONF): allow building sans gconf, if you are size-sensitive
and not using gnome.
(WITH_VERBOSE_MODE): add ability to disable all the verbose debug
spew strings, to shrink the binary.
(--disable-sm): allow SM support to be forced on or off
(--disable-startup-notification): allow forcing this on or off
2002-12-08 Havoc Pennington <hp@pobox.com>
* src/prefs.c (update_workspace_name): also treat empty string as
"unset" in this function.
Thu Dec 5 18:41:02 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
* src/window.h (META_WINDOW_IN_NORMAL_TAB_CHAIN,
META_WINDOW_IN_DOCK_TAB_CHAIN) : never use a window with input =
FALSE take_focus = FALSE in the normal and dock tab chains. #90409
Thu Dec 5 13:56:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
* src/display.c (event_callback): move a window to the current
space on the MapRequest when it's not on the space yet. #100390
2002-12-01 Havoc Pennington <hp@pobox.com>
* src/frames.c (get_control): rearrange this function a bit, so
that we return CONTROL_TITLE for anything above the bottom of the
titlebar, in the fallback case where no other control was found.
Also, don't return RESIZE_N for title rect above the top resize
size, unless the window is resizable.
(meta_frames_button_press_event): only start a move when clicking
control TITLE, not control NONE. This way you don't start moving
a nonresizable window if you click its edges.
2002-12-01 Havoc Pennington <hp@pobox.com>
* src/tools/Makefile.am: conditionalize building the config dialog
* configure.in (BUILD_CONFIG_DIALOG): add --enable-config-dialog
option to turn on the "window focus" dialog. This is part of
deprecating this dialog.
2002-11-30 Havoc Pennington <hp@pobox.com>
* src/screen.c (STARTUP_TIMEOUT): lengthen to 15 seconds
* src/util.c (utf8_fputs): hmm, return a value
* src/screen.c (meta_screen_apply_startup_properties): new
function to apply initial workspace based on startup sequence.
* src/window.c (meta_window_new): load _NET_STARTUP_ID
(meta_window_get_startup_id): new function
* src/window-props.c (meta_display_init_window_prop_hooks): add
hooks for _NET_STARTUP_ID
* src/display.c (event_callback): send property events to
groups.
* src/xprops.c (meta_prop_get_values): make a type of INVALID
mean to ignore that property (don't fetch its value).
* src/group.c (meta_group_property_notify): new function
* src/screen.c (set_supported_hint): support _NET_STARTUP_ID
* src/display.c (meta_display_open): add _NET_STARTUP_ID to atoms
we initialize
* src/group-private.h: private header shared between
group-props.c, group.c
* src/group-props.h, src/group-props.c: new files to contain
functions for retrieving group properties
* src/window.c (meta_window_same_application): change this a bit
to work with new definition of group
* src/group.c (meta_window_get_group): always create a group for
every window, using the window's own ID as group leader if
required.
* src/window.c (update_wm_hints): handle changes to group leader
* src/group.c (meta_window_group_leader_changed): new function
* src/display.h (struct _MetaDisplay): _NET_WM_WINDOW_TYPE_SPLASH,
not SPLASHSCREEN. Reported by Gregory Merchan and Matthias Clasen.
* src/screen.c (startup_sequence_timeout): when timing out a
startup sequence, send a remove message, don't just time it out
locally.
2002-11-26 Calum Benson <calum.benson@sun.com>
* src/themes/Crux :
Removed alpha layers from the pixmaps that don't need them.
Fixes #98389, results in 10-15% speedup on most machines.
2002-11-26 Glynn Foster <glynn.foster@sun.com>
* configure.in: 2.4.5
2002-11-23 Dan Mills <thunder@ximian.com>
* Makefile.am: remove theme-format.txt, it's now in doc/.
2002-11-22 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_change_workspace): patch from
Hidetoshi Tajima to move a window's transients when moving
the window between workspaces. #98900
2002-11-21 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): init ret_to to
RevertToPointerRoot out of sheer paranoia; don't want no
RevertToNone in my code!
2002-11-21 Havoc Pennington <hp@pobox.com>
* src/window.c (update_initial_workspace): delete
(meta_window_new): add getting initial workspace to the batch
property get call
* src/window-props.c (meta_display_init_window_prop_hooks): add
net_wm_desktop and win_workspace support
2002-11-20 Havoc Pennington <hp@pobox.com>
* src/window-props.c (set_icon_title): remove unused variable
* src/screen.c (meta_screen_new): read an existing
_NET_CURRENT_DESKTOP and restore it if set. Makes a restart even
less visible.
* src/workspace.c (set_active_space_hint): don't set the hint
during the process of unmanaging a screen
2002-11-20 Havoc Pennington <hp@pobox.com>
* configure.in: add doc/Makefile
* doc/metacity-theme.dtd: add DTD for themes from Ross Burton
* doc/Makefile.am: doc subdir
* doc/theme-format.txt: move to doc subdir
2002-11-19 Havoc Pennington <hp@pobox.com>
Should really fix #98303
* src/prefs.c (meta_prefs_change_workspace_name): add
bad hack to treat empty string the same as null
* src/menu.c (get_workspace_name_with_accel): allocate one more
than the length of "name" so we have room for a nul byte (and
don't malloc(0) on empty strings). Also some formatting cleanups.
2002-11-19 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_client_message): do a
recalc_window_features after setting new wm_state in order
to update skip_pager in addition to wm_state_skip_pager
(set_net_wm_state): base _NET_WM_STATE on skip_pager not
wm_state_skip_pager, ditto for skip_taskbar
2002-11-19 Havoc Pennington <hp@pobox.com>
Fix #98303 and assorted cleanup
* src/prefs.c (meta_preference_to_string): handle
META_PREF_WORKSPACE_NAMES
* src/menu.c (get_workspace_name_with_accel): assert that the
workspace has a name
* src/screen.c (meta_screen_ensure_workspace_popup): assert that
we got a workspace name
(meta_screen_ensure_workspace_popup): assert that we got a
workspace name
* src/prefs.c (update_workspace_name): fix screwiness (strcmp with
a freed string, assorted bad logic)
(init_workspace_names): assert that we filled in a default
workspace name
(meta_prefs_get_workspace_name): assert non-NULL workspace name
2002-11-16 Bill Haneman <bill.haneman@sun.com>
* src/themes/Atlanta/metacity-theme-1.xml:
Changed outer bevel and focus line color to
work better with inverse themes (no effect on
Default or other existing gtk+ themes).
2002-11-13 Havoc Pennington <hp@pobox.com>
* src/ui.c (get_cmap): fix a multihead safety thing (use proper
system colormap for the drawable's screen)
Thu Nov 14 17:30:10 2002 Jonathan Blandford <jrb@gnome.org>
* src/Makefile.am (libmetacityinclude_HEADERS): include common.h.
2002-11-12 Havoc Pennington <hp@pobox.com>
* src/theme.c (draw_op_as_pixbuf): don't read from op->data.image
when the op is an icon
2002-11-12 Havoc Pennington <hp@redhat.com>
* src/stack.c (meta_stack_get_default_focus_window): never use a
window with input = FALSE take_focus = FALSE as the default focus
window #95454 fix from Hidetoshi Tajima
2002-11-10 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Major changes
to look of theme. I'd also recommend "minimize,maximize:close"
for the button_layout, it looks really slick :-).
2002-11-08 Mark McLoughlin <mark@skynet.ie>
* src/workspace.c:
(meta_motion_direction_to_string),
(meta_screen_corner_to_string): impl for nice debugging.
(meta_workspace_get_neighbor): fix broken logic and
cleanup debugging.
Thu Nov 7 17:07:21 2002 Jonathan Blandford <jrb@redhat.com>
* src/libmetacity-private.pc.in: add a pc file for
libmetacity-private
* src/Makefile.am: Install a few files as a shared library so that
others can draw metacity themes.
2002-11-06 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (grab_keys): push an error trap around the
whole window-key-grab loop
(ungrab_all_keys): avoid requiring return value from the error
trap, unless in debugging mode
(regrab_window_bindings, regrab_screen_bindings): push traps
around the loops, for efficiency
* src/display.c (event_callback): fix from Padraig O'Briain to
compress extra MappingNotify events to avoid extra work.
2002-11-05 Calum Benson <calum.benson@sun.com>
* src/themes/Crux/active-restore-button.png:
* src/themes/Crux/inactive-restore-button.png:
* src/themes/Crux/metacity-theme-1.xml: add a restore button
for maximized windows, and un-hard-code titlebar text colors.
Fixes #97759.
2002-11-05 Havoc Pennington <hp@redhat.com>
* src/workspace.c (meta_workspace_get_neighbor): apply patch from
Nikos Mouat to fix this function
2002-11-04 Havoc Pennington <hp@pobox.com>
* src/theme.c (scale_and_alpha_pixbuf): fix bug I introduced in
case where scaling was done in both directions.
2002-11-04 Havoc Pennington <hp@pobox.com>
Patch from Brian Cameron to implement the vertical/horizontal
striped image accelerated scaling from the gtk pixbuf engine.
* src/theme.c (scale_and_alpha_pixbuf): if an image is
vertical/horizontal stripes, use special extra-fast scaling
routines.
* src/theme-parser.c (parse_draw_op_element): when loading an
image, mark it as vertically/horizontally striped when appropriate
2002-11-04 Erwann Chenede - <erwann.chenede@sun.com>
* src/xprops.c (meta_prop_get_values): changed __FUNCTION__
to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_grab): remove XSync calls from here
(meta_display_ungrab): remove XSync from here, but put in
an XFlush to be sure we get the ungrab sent.
* src/util.c (meta_topic): track sync count here
* src/errors.c: move sync count out of here
Throughout: error spew on all XSync() calls
* src/run-metacity.sh: don't set METACITY_DEBUG
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/window-props.c (meta_display_init_window_prop_hooks): add
_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support
* src/window.c (meta_window_new): use window-props.h for
_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): use window-props.h stuff for a
couple of properties
(implement_showing): fix printf string
* src/xprops.c (meta_prop_free_values): new function
* src/window-props.h, src/window-props.c: start moving code that
handles loading window properties into this file.
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/stack.c (create_constraints): filter out windows that aren't
in the stack for whatever reason, avoids a crash
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_calc_showing): split into "see if we
should be showing" and "actually show/hide" functions
(idle_calc_showing): rework to first unmap all newly-hidden
windows from bottom to top then map all newly-showing windows from
top to bottom resulting in fewer exposes, #95220
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_frame_layout_calc_geometry): fix from Garrett
LeSage for which button backgrounds we draw when
2002-11-03 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_get_name): new function,
and remove workspace->name field, instead just get the
name from prefs each time
* src/screen.c (meta_screen_update_workspace_names): update the
gconf key to persist workspace names here, instead of changing
the names we use
* src/util.c (topic_name): add META_DEBUG_PREFS
* src/prefs.c: change NUM_COMMANDS to 32 to allow more custom
commands, implement workspace names
* src/metacity.schemas.in: add workspace_names/name_NN gconf keys.
2002-11-01 Christian Neumair <chris@gnome-de.org>
* configure.in: We want at least autoconf 2.5.
2002-10-29 Havoc Pennington <hp@pobox.com>
* configure.in: 2.4.3, why not
2002-10-28 Havoc Pennington <hp@redhat.com>
* src/window.c (update_size_hints): use meta_prop_get_size_hints
* src/xprops.c: add support for getting XSizeHints
2002-10-28 Havoc Pennington <hp@pobox.com>
* src/window.c, src/display.c: store the window menu on the
display and blow it away when a window closes, so we don't
get funny stuck menus. Patch from Martin Garton #87514
2002-10-27 Anders Carlsson <andersca@gnu.org>
* configure.in: Make XRandr detection work better.
2002-10-27 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_free): move
meta_window_shutdown_group() much earlier in the destroy process.
May fix #96928 tracked down by Kjartan Maraas and Martin Garton.
* src/group.c (meta_window_get_group): never add window to a group
after we've started unmanaging the window
2002-10-26 Havoc Pennington <hp@pobox.com>
* src/iconcache.c: include config.h
* src/group.c: include config.h
* src/frame.c: include config.h
* src/core.c: include config.h so it doesn't crash all over the
place due to #ifdef HAVE_STARTUP_NOTIFICATION
* src/util.c (meta_print_backtrace): export from this file
* src/main.c (log_handler): print backtrace here
2002-10-26 Havoc Pennington <hp@pobox.com>
* src/wm-tester/main.c (evil_timeout): make windows randomly
transient for each other http://bugzilla.gnome.org/show_bug.cgi?id=96928
2002-10-26 Havoc Pennington <hp@pobox.com>
* src/xprops.c (meta_prop_get_text_property): new function
(meta_prop_get_wm_hints): new function
(meta_prop_get_class_hint): new function
2002-10-26 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): use multi-value-get on a couple
of properties for testing
* src/xprops.c (meta_prop_get_values): implement multi-value-get
* src/window.c (update_mwm_hints): XFree motif hints as we changed
it to use Xmalloc
* src/xprops.c: massively rework this to set up a
get-multiple-properties-at-once API.
* src/async-getprop.c (ag_Xmalloc): new function
2002-10-25 Havoc Pennington <hp@pobox.com>
Add "busy cursor on app startup" support, conditionally - works
only if libstartup-notification is found, and in practice requires
a GTK patch that's not in yet.
* src/screen.c: monitor startup events and set busy cursor if
appropriate
* src/display.c (meta_display_open): create SnDisplay
* configure.in: check for startup notification,
and add the cute "configure summary" at the end
2002-10-24 Havoc Pennington <hp@redhat.com>
* src/theme.c (meta_frame_layout_calc_geometry): if only one
right-corner button, use right_right_background not
right_left_background
2002-10-24 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_get_icon_geometry): make public
* src/screen.c (meta_screen_ensure_tab_popup): put the alt+tab
highlight-window indicator on the icon, not the window itself,
if the window is minimized.
2002-10-24 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_get_tab_list): put minimized windows
at the end of Alt+Tab, #89416
2002-10-23 Havoc Pennington <hp@redhat.com>
* src/theme.c (meta_frame_layout_calc_geometry): initialize the
left button background rectangles.
2002-10-21 Havoc Pennington <hp@redhat.com>
Optimizations for managing new windows (do not all take effect if
METACITY_DEBUG=1). Bug #96404
* src/keybindings.c (meta_change_keygrab): use error trap nesting
and conditionalize on meta_is_verbose() to avoid a ton of XSync
* src/display.c (meta_change_button_grab): ditto
Throughout: move to new error trap setup to save on XSync calls,
new setup is:
* src/errors.c (meta_error_trap_push_with_return): new function,
an error trap that needs to care about return value and thus
sync even if an outer trap still exists
(meta_error_trap_pop_with_return): new function
(meta_error_trap_pop): add "last_request_was_roundtrip"
argument allowing us to avoid XSync() if we just did
a GetProperty or whatever.
* src/util.c (meta_warning): flush the warning file descriptor
* src/Makefile.am (INCLUDES): define G_LOG_DOMAIN
2002-10-20 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_image_window_new): put multihead stuff in
HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (handle_raise_or_lower): check above->mapped
before deciding if it overlaps the window being raiselowered,
fix from Stephane Chauveau
2002-10-19 Jeremy Katz <katzj@redhat.com>
* configure.in: make Xrandr check less noisy
2002-10-18 Havoc Pennington <hp@redhat.com>
* src/effects.c (meta_effects_draw_box_animation): call
meta_image_window_new in multihead-safe way
* src/ui.c (meta_image_window_new): multihead safety
2002-10-18 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_refresh_resize_popup): only create the
resize popup if width_inc or height_inc are > 1
* src/resizepopup.c: Clear out all the weird tickmark cruft,
saves us about 2.5K of binary size, whee
(meta_ui_resize_popup_new): take display/screen arguments and make
multihead-safe #94349
2002-10-18 Havoc Pennington <hp@redhat.com>
* src/keybindings.c (do_choose_window): don't start the cycle
process if the binding for switching windows has no modifier bits,
just focus the window immediately.
* src/prefs.c, src/keybindings.c: add a keybinding to move between
windows that goes in the opposite direction. This is mostly
useful if you want to bind unmodified keys to the switch windows
functions, e.g. if you have "Forward" and "Back" keys on your
keyboard. Patch from Shilad Sen <shilad sourcelight com>
2002-10-18 Havoc Pennington <hp@redhat.com>
* src/prefs.c, src/frames.c: add "what happens when you double
click the titlebar" setting, patch from Sean Middleditch bug
#95625. This is basically an "add Windows emulation mode" patch.
2002-10-18 Havoc Pennington <hp@redhat.com>
* src/metacity.schemas.in: move window-click to Super+click not
Alt+click by default. Super should be the Windows key on keyboards
that have one and are so configured. Prepare for the FAQ on this.
2002-10-18 Havoc Pennington <hp@redhat.com>
* src/window.c (constrain_size): fix min aspect handling,
patch from Martin Garton #94943
2002-10-18 Andras Timar <timar@gnome.hu>
* configure.in: Added hu to ALL_LINGUAS.
2002-10-18 Havoc Pennington <hp@pobox.com>
* src/stack.c (constrain_stacking): replace the old
apply_constraints with wacky new approach involving graphing all
the constraints then walking the graph. Fixes #94876 and probably
other stacking bugs as well, thanks to Arvind for tracking down
the issue.
(compute_layer): add FIXME and reference to bug #96140
2002-10-17 Havoc Pennington <hp@redhat.com>
* src/stack.c (apply_constraints): don't place
transient-for-whole-group windows above _each other_, only
above other windows in the group that aren't themselves
transient-for-whole-group. Should help with part of #94876
2002-10-17 Havoc Pennington <hp@redhat.com>
* src/stack.c (apply_constraints): fix memory leak of
group_windows, and don't use the variable name "tmp" twice. Shadow
variables bad.
2002-10-17 Havoc Pennington <hp@redhat.com>
* src/tools/metacity-window-demo.c (dialog_cb): add code to create
big stacks of dialogs transient for each other, for testing.
2002-10-16 Havoc Pennington <hp@redhat.com>
* src/workspace.c: workspaces are all per-screen now, fix
accordingly
* src/core.c: fix multihead workspace stuff
* src/keybindings.c: multihead-rama
* src/screen.c (meta_screen_show_desktop): new functions to
replace display equivalents
* src/display.c (meta_display_get_workspace_by_screen_index): get
rid of this
(meta_display_get_workspace_by_index): get rid of this
(event_callback): handle _NET_SHOWING_DESKTOP message per-screen
* src/screen.c (meta_screen_get_workspace_by_index): new function
* src/screen.h (struct _MetaScreen): move workspace list, and
showing_desktop flag, to be per-screen
* src/window.c (window_query_root_pointer): return whether pointer
is on window's screen
(meta_window_handle_mouse_grab_op_event): don't use coordinates
from other screens when updating a window operation on the current
screen. I can't believe no one has reported this...
2002-10-16 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_client_message): update window layer
when above/below state is changed. Fixed by Ross Burton.
2002-10-14 Federico Mena Quintero <federico@ximian.com>
* src/display.c (event_callback): Ignore EnterNotify events when
the detail field is set to NotifyInferior. Fixes #95747.
2002-10-12 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas.in: button layout key
* src/prefs.c: Add button layout gconf key
(change_notify): use some "else if" instead of "if" where we
should have been
2002-10-11 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): don't raise window on button 2
click, only on button 1 and button 3.
* src/frames.c (meta_frames_button_press_event): lower on button 2
press on frame
* src/core.c (meta_core_user_lower): new function
2002-10-11 Havoc Pennington <hp@pobox.com>
* src/stack.c (window_is_fullscreen_size): make the checks here
allow windows larger than the screen in addition to
exactly-screen-size
* src/window.c (meta_window_configure_request): delete the "try to
auto-enter-fullscreen-state" hack here, because it was broken, and
the changes to the stacking code to move screen-size focused
windows to the fullscreen layer should work better.
(meta_window_new): remove auto-fullscreen hack from here too
2002-10-09 Havoc Pennington <hp@pobox.com>
* src/stack.c (apply_constraints): also keep utility/menu/toolbar
windows above their whole group.
(get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but
only use META_LAYER_FULLSCREEN while the fullscreen window has
focus. Also, put screen-sized windows in the fullscreen layer,
even if we didn't dare to actually put them in the fullscreen
state.
2002-10-07 Havoc Pennington <hp@redhat.com>
Add a modifier key preference for the Alt+click stuff.
Can be set to "disabled" as well.
* src/run-metacity.sh: load .Xmodmap in the Xnest if it exists
* src/display.c (meta_display_ungrab_window_buttons): ungrab
AnyModifier in case the modifier changed since we grabbed
(meta_display_open): rearrange code to use meta_display_close() to
mop up when we can't find any screens, avoiding the need to
keep the bail-out code in sync with meta_display_close.
* src/keybindings.c (devirtualize_modifiers): move this function
to a public place in display.c
* src/metacity.schemas.in: add setting for the modifier key
to use for Alt+left/middle/right click.
* src/prefs.c (update_binding): add a missing newline to a warning
(meta_prefs_get_mouse_button_mods): new function
* src/ui.c (meta_ui_parse_modifier): new function
2002-10-07 Havoc Pennington <hp@pobox.com>
* src/async-getprop.c: don't include unportable Xproto.h, fix from
Glynn Foster.
2002-10-06 Havoc Pennington <hp@pobox.com>
* src/async-getprop.c: change to add only one _XAsyncHandler per
display, speeding things up a bit.
2002-10-06 Havoc Pennington <hp@pobox.com>
* src/async-getprop.c: Add wacky hack suggested by Keith Packard
to get X properties asynchronously. Not actually used by metacity
yet, but thinking about it.
2002-10-04 Havoc Pennington <hp@redhat.com>
* configure.in: actually link to RANDR_LIBS
2002-10-04 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): do XRRUpdateConfiguration()
if we have RandR extension, else poke in Xlib's screen struct to
update the screen size.
* configure.in: fix a bogus overwrite of cppflags,
add a check for RandR extension
2002-10-04 Arvind Samptur <arvind.samptur@wipro.com>
* src/window.c (meta_window_change_workspace): call
meta_window_unstick before adding window to workspace.
(menu_callback): call meta_workspace_activate before
meta_window_change_workspace. This would avoid us running an
extra loop for determining the window workspace list.
Patches from Jeyasudha and Arvind. Fixes #92575
2002-10-03 Havoc Pennington <hp@pobox.com>
* src/themes/Esco/metacity-theme-1.xml: only specify the
middle backgrounds, let left/right fall back to middle
* src/theme.c (get_button): fall back to middle_background draw
routines when missing the left/right button backgrounds.
(button_rect): fix to handle drawing middle button backgrounds
(meta_frame_style_draw): draw middle background once per middle
button
2002-10-03 Havoc Pennington <hp@pobox.com>
Button-reordering patch. Has all the code except actually
installing a gconf schema and reading the gconf key in prefs.c.
metacity-theme-viewer displays the button layouts for testing
themes.
* src/preview-widget.c (meta_preview_size_request): make up a
width/height if no child widget
* src/prefs.c (meta_prefs_get_button_layout): new function
* src/frames.c: get the button layout from prefs and
use it when drawing
* src/theme.c (meta_frame_layout_calc_geometry): enhance to be
able to lay out buttons in different arrangements
(button_rect): draw the new button background rectangles
(meta_theme_draw_frame): require a button layout argument
(meta_theme_calc_geometry): pass in the button layout
* src/preview-widget.h: mod to handle button layouts
* src/theme-viewer.c: mod to handle button layouts
2002-10-03 Havoc Pennington <hp@redhat.com>
* configure.in: 2.4.2
2002-10-03 Havoc Pennington <hp@redhat.com>
* src/window.c (check_moveresize_frequency): handle the case where
the clock is set backward
2002-10-01 Havoc Pennington <hp@pobox.com>
* src/place.c (find_next_cascade): try extra cascades alongside
the first, if the first fails; patch from readams@hmc.edu
2002-10-01 Havoc Pennington <hp@pobox.com>
* src/stack.c (get_standalone_layer): put ABOVE windows in same
layer as docks.
2002-10-01 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_resize_func): make it static
* src/stack.c (get_standalone_layer): put above/below windows
in an appropriate layer.
* src/screen.c (set_supported_hint): say we support above/below
* src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE,
_NET_WM_STATE_BELOW atoms
* src/window.c (meta_window_client_message): handle above/below
state messages
(set_net_wm_state): handler above/below state
(update_net_wm_state): handle above/below states
2002-10-01 Mark McLoughlin <mark@skynet.ie>
* src/screen.c: (meta_screen_new): default to
topleft starting corner.
(meta_screen_update_workspace_layout): handle
new property format : orient,x,y,starting corner.
Fixes #89373.
* src/screen.h: add MetaScreenCorner enum.
2002-10-01 Havoc Pennington <hp@pobox.com>
* src/window.c (constrain_position): always align fullscreen
windows to top, as we do with maximized windows.
2002-10-01 Stanislav Brabec <sbrabec@suse.cz>
* configure.in: Added cs to ALL_LINGUAS.
2002-09-30 Havoc Pennington <hp@pobox.com>
* src/screen.c (reload_xinerama_infos): fix compilation on
Solaris, patch from Satyajit Kanungo
2002-09-29 Havoc Pennington <hp@pobox.com>
* src/eggaccelerators.c: update from libegg to get fix from Ralph
Loader for <Super> <Hyper> <Meta> parsing, #93005
2002-09-29 Havoc Pennington <hp@pobox.com>
* src/effects.h (META_MINIMIZE_ANIMATION_LENGTH): shorten minimize
animation a bit
2002-09-28 Havoc Pennington <hp@pobox.com>
Patch from Keith Packard to handle root window resizes.
* src/screen.c (reload_xinerama_infos): factor out Xinerama code
(meta_screen_resize): implement this, to be called from display.c
on screen resize
* src/display.c (event_callback): handle ConfigureNotify on root
windows
2002-09-28 Havoc Pennington <hp@pobox.com>
* src/stack.c (get_standalone_layer): re-enable the FOCUSED_WINDOW
layer, should now work correctly.
2002-09-28 Havoc Pennington <hp@pobox.com>
* src/window.c, src/stack.c: Rewrite stack code to work a lot
differently. Should be better now, and not lose relative positions
of windows when moving among layers. Also should now be possible
to get session management to restore the stacking order. Probably
breaks some stuff, and makes all the stack.c changes I made
yesterday sort of irrelevant.
2002-09-27 Havoc Pennington <hp@pobox.com>
* src/stack.c (get_standalone_layer): Temporarily disable use of
the FOCUSED_WINDOW layer, because given the fact that moving
multiple windows into the same layer changes the Z-order of those
windows, it was breaking click-to-focus.
2002-09-27 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_focus_top_window): raise the focused
window, since it may not be the window on top, given the below
change.
* src/stack.c (meta_stack_get_default_focus_window): make this
more complex to prefer to focus the transient parent, followed by
other windows in group, followed by topmost non-dock, followed by
dock. Previously was just topmost non-dock followed by dock
ignoring groups and transiency.
2002-09-27 Havoc Pennington <hp@pobox.com>
* src/place.c (constrain_placement): constrain placement to try to
keep windows from going offscreen to the right/bottom
* src/stack.c (compute_layer): rearrange the logic here to say
that a window must always be in at least as high a layer as any of
its transient parents or group members, rather than special-casing
fullscreen. Also, group_member_is_fullscreen was leaking the list
of group members every time, a fairly major memory leak.
2002-09-27 Havoc Pennington <hp@redhat.com>
* src/themes/Makefile.am (THEMES): use AgingGorilla not Gorilla
(renamed on the CVS server)
2002-09-27 Havoc Pennington <hp@redhat.com>
Try to handle Solaris Xinerama, all coded blind, someone
on Solaris will need to debug the typos.
* src/display.c: updates for Solaris Xinerama
* src/screen.c: updates for Solaris Xinerama
* configure.in: make Xinerama check more complicated to catch
Solaris Xinerama
2002-09-27 Havoc Pennington <hp@redhat.com>
* src/window.c (update_transient_for): keep a flag
transient_parent_is_root_window for whether the
root-window-as-parent convention was used.
2002-09-25 Arvind Samptur <arvind.samptur@wipro.com>
* src/stack.c (sort_window_list): Keep dialogs without
transient parent above entire app. Fixes #88926
2002-09-26 Havoc Pennington <hp@pobox.com>
* src/menu.c (meta_window_menu_new): use MetaAccelLabel to display
accelerators for the menu items
* src/metaaccellabel.c: cut-and-paste GtkAccelLabel and port to
use virtual modifiers
* src/Makefile.am (metacity_SOURCES): add metaaccellabel.[hc]
* src/prefs.c (meta_prefs_get_window_binding): new function
* src/core.c (meta_core_get_menu_accelerator): new function
2002-09-25 Havoc Pennington <hp@redhat.com>
* src/metacity.schemas.in: Change short desc of switch_windows and
cycle_windows to be different
2002-09-24 Havoc Pennington <hp@pobox.com>
* src/place.c (fit_rect_in_xinerama): update best_overlap as we go
through the loop - doh. Fix from readams@hmc.edu for #90799.
(find_first_fit): try the origin of each xinerama screen
after the first. Also from readams@hmc.edu
2002-09-24 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_save_rect): new function,
only saves rect after checking current state, #93795
(meta_window_make_fullscreen): use new function
(meta_window_maximize): use new function
2002-09-24 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_update_layer): new function
* src/stack.c (compute_layer): put focused window in a layer above
all other windows, in click-to-focus mode. #93022
* src/window.c (meta_window_notify_focus): update window layer on
focus change.
2002-09-24 Havoc Pennington <hp@redhat.com>
* src/main.c (main): support --version, #92796 patch from
Christian Neumair
* autogen.sh: change gettext test to be happy with
glib-gettextize, #81425
* src/menu.c: change mnemonics to match bug #78999
* src/theme.c (meta_theme_validate): consolidate some
nearly-identical themes for ease of translation, #70962
2002-09-24 Arvind Samptur <arvind.samptur@wipro.com>
* src/menu.c: Replace strings Shade with Roll Up and
Unshade with Unroll.
2002-09-23 Havoc Pennington <hp@pobox.com>
* src/main.c (main): re-enable the log handler, maybe it will
break something, I don't remember why I turned it off.
* src/display.c: s/_NET_SHOW_DESKTOP/_NET_SHOWING_DESKTOP/ which
is what's in the spec
2002-09-22 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): small reordering of
code
* src/display.c (meta_spew_event): more spew for MapNotify,
UnmapNotify
* src/window.c (recalc_window_features): spew more stuff
* src/display.c (meta_spew_event): spew override_redirect field of
ConfigureNotify
2002-09-20 Arvind Samptur <arvind.samputr@wipro.com>
* src/metacity.schemas.in: added keybindings for
moving windows between workspaces.
Patch from Jeyasudha. Fixes #91944.
2002-09-19 Arvind Samptur <arvind.samptur@wipro.com>
* src/tools/metacity-properties.desktop.in :
change in the tooltip suggested in ui-review.
2002-09-18 Havoc Pennington <hp@redhat.com>
* src/window.c (update_net_wm_state): handle fullscreen state
here.
2002-09-15 Havoc Pennington <hp@pobox.com>
* src/session.c (save_state): escape the window title before
saving in the session file, reported by Jos Vos
2002-09-12 Havoc Pennington <hp@redhat.com>
* src/workspace.c (meta_workspace_screen_index)
(meta_workspace_index): fix compiler warnings
* src/tools/metacity-window-demo.c (menu_items): add a test for
dialogs with no transient parent
* src/place.c (find_first_fit): Try placing window at origin of
first Xinerama, even if there are no windows to place next to;
makes placement work when no other windows are open on the screen.
2002-09-09 Havoc Pennington <hp@pobox.com>
* configure.in: 2.4.1
2002-09-09 Christian Neumair <chris@gnome-de.org>
* src/keybindings.c: Make virtual desktops apply
instantly and still show the pager popup by
Benjamin Kahn <xkahn@zoned.net>, fixes #86590.
2002-09-06 Frederic Crozat <fred@crozat.net>
* src/themes/Crux/metacity-theme-1.xml: Fix titlebar
glitch on small dialogs.
2002-09-06 Arvind Samptur <arvind.samptur@wipro.com>
* theme-format.txt : corrected some of the attributes
which were not in sync with theme-parser.c
Patch from Jim Bowen. #92057.
2002-09-05 Havoc Pennington <hp@pobox.com>
* configure.in: put ro back in ALL_LINGUAS
2002-09-05 Havoc Pennington <hp@redhat.com>
* configure.in (ALL_LINGUAS): remove 'ro' from ALL_LINGUAS, it
contained invalid XML and broke the build. No <> in the
translations of gconf keys!
2002-09-04 Marius Andreiana <mandreiana@yahoo.com>
* configure.in: added 'ro' to ALL_LINGUAS
2002-09-03 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_get_tab_current): new function
* src/keybindings.c (do_choose_window): apply modified patch from
JeyaSudha to still display tab popup if only one window is on the
desktop.
2002-06-25 JeyaSudha <jeyasudha.duraipandy@wipro.com>
* src/session.c, src/window.c: Session saves the unmaximized
postion, size of a maximized window. #86059
2002-09-03 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_update_prelit_control): don't filter
out prelight for unmaximize button. #83860
(meta_frames_paint_to_drawable): handle unmaximize here as well
2002-08-27 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_frame_layout_calc_geometry): always apply
rounding for shaded windows, fixes Bluecurve theme when shaded
2002-08-25 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_free): when freeing a fullscreen
window, update layers of the window's group.
2002-08-25 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): _NET_SUPPORTING_WM_CHECK is
supposed to have type WINDOW not CARDINAL. reported by
Ben Jansens
2002-08-24 Havoc Pennington <hp@redhat.com>
* src/window.c (process_property_notify): recalculate mapped-ness
of frame after toggling decorations on/off, so that windows don't
disappear when decorations are toggled on.
* src/tools/metacity-window-demo.c (toggle_decorated_cb): add a
test for toggling decoration state on the fly
2002-08-24 Havoc Pennington <hp@redhat.com>
* src/window.c (update_sm_hints): hack around bug in kmail etc.
where SM_CLIENT_ID was set on the window, not the client leader.
* src/theme.c (meta_frame_layout_calc_geometry): don't round
corners unless we have enough frame to chop off.
2002-08-24 Havoc Pennington <hp@redhat.com>
* src/util.c: translate some strings that should have been, and
convert to locale encoding before printing stuff.
* src/stack.c (group_member_is_fullscreen): if window itself is
fullscreen, return TRUE immediately.
* src/window.c (meta_window_configure_request): add hack to
fullscreenize large undecorated windows.
2002-08-21 Deepa Natarajan <deepa.natarajan@wipro.com>
* src/keybindings.c, src/metacity.schemas.in, src/prefs.[ch]:
add maximize and unmaximize keybinding setting. Partly fixes
bug# 78999.
2002-08-20 Steve Fox <drfickle@k-lug.org>
* metacity.spec.in: Add so that the spec file gets auto-updated
whenever configure.in gets bumped. Include some missing
directories.
* Makefile.am
* configure.in: Necessary changes for spec file magic
2002-08-20 Havoc Pennington <hp@redhat.com>
* src/frames.c (get_control): if in the title rect check for y
<= TOP_RESIZE_HEIGHT
* src/display.c (meta_spew_event): put x/y coordinates in spew for
enter/leave notify
* src/frames.c (meta_frames_motion_notify_event): move cursor
changing from here to update_prelit_control so it happens on enter
notify as well
(get_control): change test "y < TOP_RESIZE_HEIGHT" to
"y <= TOP_RESIZE_HEIGHT"
* src/Makefile.am (EXTRA_DIST): include .in files in EXTRA_DIST
2002-08-17 Simos Xenitellis <simos@hellug.gr>
* configure.in (ALL_LINGUAS): Added Greek (el).
2002-08-17 Evandro Fernandes Giovanini <evandrofg@ig.com.br>
* configure.in (ALL_LINGUAS): Added Brazilian Portuguese (pt_BR).
2002-08-15 Havoc Pennington <hp@redhat.com>
* src/metacity.schemas.in: default to "Sans Bold 10" for the
titlebar font.
2002-08-15 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): leave has_fullscreen_func
set to TRUE if the window is screen sized and undecorated, even if
the window isn't resizable. idea from Christian - Manny Calavera -
Neumair
* src/keybindings.c (handle_toggle_fullscreen)
(handle_toggle_maximize): these disabled fullscreen/maximize if
the window wasn't resizable, should have used has_fullscreen_func
has_maximize_func instead.
2002-08-15 Havoc Pennington <hp@pobox.com>
* src/keybindings.c: implement raise/lower
* src/metacity.schemas.in: add raise/lower
* src/prefs.c: add "raise" and "lower" prefs to keybindings
* src/display.c (meta_display_set_grab_op_cursor): assert that
the screen arg is non-NULL in appropriate cases
2002-08-14 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>
* src/display.c (meta_display_set_grab_op_cursor):
In XGrabPointer, set the confine_to argument to the root window
of the screen the window is on.
* src/display.h: add screen argument.
* src/window.c (meta_window_update_resize_grab_op):
pass screen argument as NULL.
2002-08-14 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: use button positioning
theme stuff.
2002-08-14 Mark McLoughlin <mark@skynet.ie>
* src/screen.c: (set_number_of_spaces_hint), move from
workspace.c.
(update_num_workspaces): set the hint here. Fixes #90123.
* src/workspace.c:
(meta_workspace_new), (meta_workspace_free): don't set
the hint here.
(update_num_workspaces): move to screen.c
2002-08-12 Havoc Pennington <hp@redhat.com>
* src/stack.c (compute_layer): window is in fullscreen layer if
any member of its group is fullscreen
* src/window.c (meta_window_unmake_fullscreen): update layer for
whole window group
(meta_window_make_fullscreen): ditto
* src/util.c (meta_unsigned_long_hash): move hash/equal funcs for
Window in here.
* src/group.c: track window groups so we can do stuff with them.
2002-08-11 Havoc Pennington <hp@pobox.com>
* src/menu.c: don't include nonexistent stock-icons.h file
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas.in: default keybindings for move, resize,
maximize, etc. from Deepa #78999
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_maximize): unshade window if shaded,
from JeyaSudha
(meta_window_make_fullscreen): ditto
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/menu.c: reorder the menu items so that Close is at the
bottom
* src/theme-viewer.c (main): set debugging mode if METACITY_DEBUG
enabled
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/xprops.c (meta_prop_get_motif_hints): allow Motif hints to
be smaller than expected; GLUT for example seems to set a smaller
struct. #89841
* src/window.c (update_mwm_hints): use g_free on motif hints as we
don't use the XGetWindowProperty return directly anymore
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_free): be sure window is
mapped if we unmanage it and it's not withdrawn;
bug #90369
* src/screen.c (meta_screen_new): change string
s/override/replace/ bug #89077
* src/theme.c (scale_and_alpha_pixbuf): dump the
sometimes-use-NEAREST-instead-of-BILINEAR optimization,
bug #87489
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/window.c (menu_callback): raise window when moving to
another workspace bug #88896
* src/keybindings.c (switch_to_workspace): raise window when
moving between spaces
2002-08-10 Jorn Baayen <jorn@nl.linux.org>
Register window menu icons with the Gtk stock system, instead
of using the ones from the Metacity theme (which looked very bad with
some themes).
* src/Makefile.am:
* src/main.c:
* src/menu.c:
* src/stock_delete.png: added these files
* src/stock_minimize.png:
* src/stock_maximize.png:
* src/ui.c
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (meta_display_process_key_event): filter out
key events that happen on popup menus etc.
* src/ui.c (meta_ui_window_is_widget): new function to check
whether a window belongs to a GtkWidget such as the popup menu
* src/prefs.c (change_notify): put in a no-op line for AIX
compiler, #84252
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/window.c (update_resize): track time to avoid sending a
deluge of move/resize requests, suggestion from
xavier.bestel@free.fr bug #86830. Not really sure if this will
make a difference or not. We'll see I guess.
(update_move): do same on move though it seems less important
here.
* src/display.h (struct _MetaDisplay): store the
last time we sent a move/resize event.
2002-08-10 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_notify_focus): add a FIXME comment
with a link to bug #90382
2002-08-09 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (handle_toggle_maximize): disable maximize,
fullscreen, shade via keybindings on windows that don't support
it.
2002-08-08 Craig Black <blackc@speakeasy.net>
Patch to provide extra cues when using the window menu
move and resize items, #85724.
* src/common.h: add new cursors
* src/display.c: (grab_op_is_mouse)
(meta_display_create_x_cursor), (xcursor_for_op),
(meta_display_set_grab_op_cursor),
(meta_display_begin_grab_op):
The keyboard move and resize grab ops now also use the mouse.
Allow the grab cursor to be changed during the grab op.
Hold onto the initial grab position in case of reset.
* src/display.h: save the initial grab position
* src/keybindings.c: (process_keyboard_move_grab),
(process_keyboard_resize_grab), (handle_begin_move),
(handle_begin_resize):
The keyboard move and resize grab ops now also use the mouse.
* src/window.c: (meta_window_client_message), (menu_callback),
(update_move), (update_resize),
(meta_window_handle_mouse_grab_op_event), (warp_pointer),
(meta_window_warp_pointer), (meta_window_begin_grab_op),
(meta_window_update_resize_grab_op):
When moving or resizing a window use the last grab position
in computing change increment.
Provide support for warping the mouse pointer.
* src/window.h: new warp pointer and grab op helper functions
2002-08-08 Craig Black <blackc@speakeasy.net>
* src/display.h: update comment
* src/window.c: (meta_window_focus): also set expected
focus window when setting input focus.
2002-08-07 Craig Black <blackc@speakeasy.net>
* src/display.c: (meta_display_unshow_desktop): focus
top window after showing desktop, fixes #88080.
2002-08-07 Craig Black <blackc@speakeasy.net>
* src/core.c: (meta_core_show_window_menu): focus window
on right click for menu, #87299.
2002-08-07 Craig Black <blackc@speakeasy.net>
* src/display.c: (meta_display_open): clear expected focus window
on open
* src/display.h: add expected_focus_window field
* src/window.c: (meta_window_make_fullscreen),
(meta_window_unmake_fullscreen): change meta_window_update_layer()
to meta_stack_update_layer() so build works again.
(meta_window_free), (meta_window_make_fullscreen),
(meta_window_focus), (meta_window_notify_focus): keep track of
expected focus window after sending WM_TAKE_FOCUS event,
previously if a UnmapNotify event arrived before the FocusIn event
we would lose focus, fixes #84564.
2002-08-07 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_unmake_fullscreen): update layer
(meta_window_make_fullscreen): update layer
* src/stack.c (compute_layer): put window on fullscreen layer if
fullscreen
2002-08-06 Craig Black <blackc@speakeasy.net>
* src/window.c: (meta_window_client_message): implement
_NET_WM_MOVERESIZE enhancements, see #90077.
2002-08-06 Havoc Pennington <hp@redhat.com>
* configure.in: 2.4.0 (this version number has no special
significance, just didn't want to go to 4-digit micro version ;-)
2002-07-28 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_shade): disable animation when shading
windows, just doesn't really convey the idea anyway.
* src/effects.c: Move to using a shaped window instead of
IncludeInferiors to do the animations, looks a lot better
because we don't have to grab the server.
* src/window.c (meta_window_change_workspace): remove bogus
assertion that was causing a crash
(meta_window_new): auto-fullscreen huge undecorated windows.
* src/keybindings.c (switch_to_workspace): use
meta_window_change_workspace() to avoid same bug in cut-and-paste
code from there
2002-08-06 He Qiangqiang <carton@linux.net.cn>
* configure.in: Added "zh_CN" to ALL_LINGUAS.
2002-08-05 Ross Burton <ross@burtonini.com>
* src/window.c: (meta_window_client_message): Set
->wm_state_skip_pager (ditto for _taskbar) instead of ->skip_pager
so that these hints actually work. Fixes #89850.
2002-08-04 Havoc Pennington <hp@redhat.com>
* src/frames.c (meta_frames_paint_to_drawable): init button
states for the button backgrounds
* src/themes/Atlanta/metacity-theme-1.xml: adapt to work correctly
with button repositioning
2002-08-04 Havoc Pennington <hp@redhat.com>
* src/frames.c (meta_frames_button_press_event): raise/focus
on click, even if the click was on the client area
(this makes Alt+button1 raise windows again, yay)
* src/stack.c (compute_layer): put panels in the DOCK layer always
(keep them on top of other windows). Still sloppy-focus raised
with respect to other docks.
* configure.in: remove -Wshadow for now as GTK headers make all
kinds of noise with it.
2002-08-02 Mark McLoughlin <mark@skynet.ie>
* src/screen.c: (meta_screen_new): set active_workspace
to NULL. Also actually activate the first workspace instead
of just setting active_workspace. Fixes #87367.
(meta_screen_ensure_workspace_popup): don't re-use our
iterator for setting the entries list, stop iterating
when we've gone beyond the last workspace (there may
be empty spaces in the last row).
* src/workspace.c: (meta_workspace_activate): if no workspace
was previously activated, return.
2002-08-04 Havoc Pennington <hp@redhat.com>
* src/theme.c (free_menu_ops): use MetaMenuIconType not button
type for the size of the menu ops array
(meta_theme_define_int_constant): return TRUE on success (how the
heck did this ever work?)
(meta_theme_define_float_constant): return TRUE on success
(meta_frame_style_validate): allow the "positional" buttons to
be omitted for now.
* src/testgradient.c (render_multi): don't define N_COLORS twice
* src/theme-viewer.c (run_theme_benchmark): don't define
ITERATIONS twice
* src/theme.c (button_rect): handle new button types
(meta_button_type_to_string): update
(meta_button_type_from_string): update
* src/theme.h (enum): add button types for the 6 possible button
positions. No way to reposition buttons still but this will allow
themes to go ahead and support doing so.
2002-08-03 Craig Black <blackc@speakeasy.net>
* src/keybindings.c: (meta_display_process_key_event),
(process_tab_grab), (do_choose_window): change alt+tab to a
windowless grab, fixes #83499
2002-08-03 Craig Black <blackc@speakeasy.net>
* src/display.c: (event_callback): Have ButtonPress and
UnmapNotify events account for a null grab window, fixes #87896
2002-08-03 Gaute Lindkvist <lindkvis@linpro.no>
Corrected some issues with the Bright theme. Mainly
making sure the text does not clip, as well as increasing
the size of the menu icon.
2002-08-01 Mark McLoughlin <mark@skynet.ie>
Implements support for _NET_WM_ALLOWED_ACTIONS.
Fixes #84282.
* src/display.[ch]: (meta_display_open): add
_NET_WM_ALLOWED_ACTIONS atoms.
* src/screen.c: (set_supported_hint): set them
as being supported.
* src/window.c:
(set_allowed_actions_hint): impl setting
_NET_WM_ALLOWED_ACTIONS.
(recalc_window_features): use it here, but only
if things have changed.
2002-08-01 Christophe Fergeau <teuf@users.sourceforge.net>
* src/metacity-dialog.c: focus the "Close" button by default on
the dialog which appears at exit when some apps can't be session
managed
2002-08-01 Mark McLoughlin <mark@skynet.ie>
* src/session.c:
(save_yourself_possibly_done): send a SaveYourselfDone
if we're skipping this global save.
(save_yourself_callback): don't not save session state
if the save style is Global. Fixes #89390.
* theme-format.txt: update.
2002-07-30 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Vietnamese (vi) to ALL_LINGUAS
2002-07-24 Havoc Pennington <hp@pobox.com>
* src/themes/Makefile.am (THEMES): add Metabox theme from Garrett
* README: updates
2002-07-21 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): don't automaximize fullscreen
windows.
2002-07-14 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): don't allow shading of
border-only windows.
2002-07-24 Havoc Pennington <hp@redhat.com>
* src/theme-parser.c (meta_theme_load): look for themes in
~/.themes/NAME/metacity-1/ and datadir/themes/NAME/metacity-1
instead of the old locations.
* src/themes/Makefile.am: install themes to
datadir/themes/NAME/metacity-1/ to match how GTK works, breaking
third-party themes yet again! woot!
2002-07-20 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): grab display across managing
each screen; XGetInputFocus() on startup.
2002-07-19 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_configure_request): disable configure
requests during a user move/resize operation, mostly a workaround
for stoopid apps.
2002-07-24 jacob berkman <jacob@ximian.com>
* configure.in: fix x11 header checks when x11 is not in the
default include path
2002-07-23 Ross Burton <ross@burtonini.com>
* src/menu.c (meta_window_menu_new): Use the real workspace names
instead of making up numbers.
2002-07-23 Havoc Pennington <hp@redhat.com>
* src/themes/Makefile.am (THEMES): put Gorilla back in the build
* src/themes/Gorilla/metacity-theme-1.xml,
src/themes/Crux/metacity-theme-1.xml: fixes from
Sebastien Delestaing so that these themes work properly with
different font sizes.
* src/frames.c (get_control): patch from Balamurali Viswanathan
for #81984 (resize titlebar from the top not the bottom)
2002-07-23 Havoc Pennington <hp@redhat.com>
* src/keybindings.c (meta_display_process_key_event): handle
NULL screen from screen_for_xwindow
* src/display.c (meta_display_screen_for_xwindow): put an error
trap around the XGetWindowAttributes(), should fix the popular
"closing a window results in a crash" bug.
* src/util.c (print_backtrace): support optional backtrace
feature using gnu libc backtrace() call
2002-07-15 jacob berkman <jacob@ximian.com>
* src/update-from-egg.sh: steal from profterm to fix build
2002-07-13 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_new): don't put a newline after
the default workspace name
2002-07-13 Havoc Pennington <hp@pobox.com>
* src/keybindings.c: adapt to virtual modifiers
(meta_display_process_mapping_event): we need to reload the
binding tables now when the modmap changes.
* src/prefs.c (update_binding): parse virtual modifiers, not
plain modmask
* src/common.h (MetaVirtualModifer): new enum
* src/ui.c (meta_ui_parse_accelerator): use
egg_accelerator_parse_virtual()
* src/Makefile.am: add eggaccelerators.[hc] for the virtual
accelerator parsing function
2002-07-13 Christophe Fergeau <teuf@users.sourceforge.net>
* configure.in: added fr to ALL_LINGUAS
2002-07-12 Havoc Pennington <hp@pobox.com>
* src/session.c (warn_about_lame_clients_and_finish_interact):
don't display the dialog if all the apps were session managed.
2002-07-12 Havoc Pennington <hp@pobox.com>
* src/session.c: don't send SmInteractDone until the warning
dialog about crappy clients has been closed.
2002-07-12 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_new): try to maximize windows that
are too big for the work area
* src/place.c (find_next_cascade): don't let the cascade algorithm
place windows off the screen, and fix it to always exhaustively
search the window list for cascade parents.
2002-07-11 Havoc Pennington <hp@pobox.com>
* src/metacity-dialog.c (main): option to display error when a
command fails to run.
* src/keybindings.c (handle_run_command): run commands
in response to keybindings.
* src/prefs.c: add command keybinding stuff
* src/metacity.schemas.in: add keybindings for running commands,
and keys to store the commands themselves.
2002-07-10 Havoc Pennington <hp@redhat.com>
* src/display.c: properly attribute selection code to Matthias
Clasen
2002-07-10 Havoc Pennington <hp@pobox.com>
* README: couple of updates
* src/main.c (usage): add --replace to usage, reported by Matthias
Clasen
2002-07-09 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas.in: fix short description for
begin_resize, patch from Jayaraj, #87654
* src/keybindings.c (handle_begin_resize): apply patch from
Jayaraj to actually handle the begin resize keybinding.
2002-07-09 Havoc Pennington <hp@pobox.com>
* src/window.c (constrain_position): don't center vertically for
maximized windows that don't fill the screen, just leave them at
the top.
2002-07-06 Havoc Pennington <hp@pobox.com>
* src/tabpopup.c (selectable_workspace_new): increase the size of
the mini workspaces
2002-07-06 Havoc Pennington <hp@pobox.com>
Apply blackc@speakeasy.net patch, bug #83940, to do
mini-workspaces similar to the pager, when switching
spaces.
* src/window.c (update_net_wm_state): actually fill in
wm_state_skip_taskbar, wm_state_skip_pager flags
* src/tabpopup.c: support drawing a mini-workspace similar to the
one the pager draws.
* src/stack.c (meta_stack_list_windows): new function to list
the windows in stacking order
* src/screen.c (meta_screen_ensure_workspace_popup): don't pass in
the ugly default app icon for workspaces
* src/display.c (event_callback): fix from blackc@speakeasy.net
to avoid dereferencing a NULL grab window.
2002-07-06 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): put _NET_DESKTOP_NAMES in the
array of atom names, so desktop names might work and we don't read
uninitialized memory.
* src/main.c (main): add VERSION/timestamp verbose message.
* src/keybindings.c: implement cycle_windows cycle_panels
* src/metacity.schemas.in: add the cycle_windows cycle_panels
keybindings
* src/prefs.h (META_KEYBINDING_FOCUS_PREVIOUS): replace
FOCUS_PREVIOUS key binding with CYCLE_WINDOWS and CYCLE_PANELS
(not good names really, but I don't have ideas).
* src/common.h: add a grab op for alt+esc window cycling
2002-07-05 Havoc Pennington <hp@pobox.com>
* src/themes/Makefile.am (THEMES): Take Gorilla out until it gets
repaired.
2002-07-05 Havoc Pennington <hp@pobox.com>
* src/window.c (update_wm_hints): Change default value of input
hint (if not specified) to true instead of false. This is what
some clients assume, such as Visual SlickEdit.
2002-07-02 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_show_menu): use new macros to get
whether we allow move/resize correct
* src/frame.c (meta_frame_get_flags): use new macros to get
whether we can move/resize correct, considering
maximized/fullscreen for the move case.
* src/window.h (META_WINDOW_ALLOWS_RESIZE,
META_WINDOW_ALLOWS_MOVE): new macros
* src/keybindings.c (process_keyboard_resize_grab): finish the
right/left resize, patch from Jayaraj #78179.
Has the same old move/resize bug, if it hits a constraint it
starts to break because we move without resizing.
2002-07-02 Mark McLoughlin <mark@skynet.ie>
* src/keybindings.c:
(grab_keyboard), (ungrab_keyboard): rename from
{un}grab_all_keys_and_keyboard and only do an XKeyboardGrab,
the XKeyGrab isn't neccessary.
(meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys),
(meta_window_grab_all_keys), (meta_window_ungrab_all_keys):
update for above change.
(handle_workspace_switch): don't use a MetaWindow when
workspace switching, use the root window instead.
2002-07-01 Mark McLoughlin <mark@skynet.ie>
Fix broken workspace switching from my previous commit.
* src/display.c: (meta_display_begin_grab_op): don't
leak a pointer grab if we fail to grab the keyboard.
* src/keybindings.c: (meta_screen_grab_keys): check
screen->all_keys_grabbed.
(meta_screen_grab_all_keys): regrab our standard
bindings if we fail.
(handle_workspace_switch): revert to our previous
behaviour of using the last focused window to do
the grab upon. Only use the RootWindow if there
isn't anything else to use.
* src/screen.c: (meta_screen_new): initialise
all_keys_grabbed.
2002-06-26 Mark McLoughlin <mark@skynet.ie>
Fixes not being able to tab out of a
workspace which contains no windows.
* src/core.c: (meta_core_begin_grab_op): upd
for meta_display_begin_grab_op change.
(meta_core_get_grab_frame): allow for
grab_window == NULL.
* src/display.[ch]:
(meta_display_screen_for_xwindow): implement.
(meta_display_begin_grab_op): grab on the root window
if window == NULL.
(meta_display_end_grab_op): use grab_screen instead of
grab_window.
* src/keybindings.c:
(grab_all_keys_and_keyboard): split out from
meta_window_grab_all_keys.
(ungrab_all_keys_and_keyboard): split out from
meta_window_ungrab_all_keys.
(meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys):
implement grabbing and ungrabbing on the root window.
(meta_display_process_key_event): if window == NULL,
check the event is from the same screen and process. Only
happens with workspace switching.
(process_workspace_switch_grab): kill window param and
don't use grab_window.
(handle_tab_forward), (handle_begin_move): upd for
meta_display_begin_grab_op change.
(handle_workspace_switch): remove brokeness. Always do
the grab op on the root window.
* src/keybindings.h: add meta_screen_{un}grab_all_keys.
* src/window.c: (meta_window_client_message), (menu_callback):
update for meta_display_begin_grab_op change.
2002-06-25 Mark McLoughlin <mark@skynet.ie>
* src/fixedtip.c: (meta_fixed_tip_show):
* src/frames.c: (meta_frames_new):
* src/tabpopup.c: (meta_ui_tab_popup_new):
s/gdk_get_default_display/gdk_display_get_default/
s/gdk_get_default_screen/gdk_screen_get_default/
2002-06-25 Mark McLoughlin <mark@skynet.ie>
* src/themes/Crux/active-border-top-left-border.png:
* src/themes/Crux/active-border-top-right-border.png:
* src/themes/Crux/active-top-left-corner.png:
* src/themes/Crux/active-top-mid-left-border.png:
* src/themes/Crux/active-top-mid-right-border.png:
* src/themes/Crux/active-top-right-corner.png:
* src/themes/Crux/inactive-border-top-left-border.png:
* src/themes/Crux/inactive-border-top-right-border.png:
* src/themes/Crux/inactive-top-left-corner.png:
* src/themes/Crux/inactive-top-mid-border.png:
* src/themes/Crux/inactive-top-right-corner.png:
* src/themes/Crux/metacity-theme-1.xml: added support
for border only windows.
2002-06-24 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Added some stuff to
the window buttons, so they use the ACTIVE bg/fg.
2002-06-25 Mark McLoughlin <mark@skynet.ie>
* src/display.[ch]: (meta_display_open):
src/screen.c: (set_supported_hint), (set_work_area_hint):
Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-)
2002-06-25 Mark McLoughlin <mark@skynet.ie>
* src/screen.[ch]:
(update_num_workspaces), recalc workarea hint when
new workspaces created. Fixes bug that workarea
not calculated until first non-dock window is
mapped.
(set_work_area_hint), (set_work_area_idle_func),
(meta_screen_queue_workarea_recalc): move all this
stuff from workspace.c.
* src/workspace.c: (meta_workspace_invalidate_work_area):
use meta_screen_queue_workarea_recalc.
2002-06-23 Gediminas Paulauskas <menesis@delfi.lt>
* src/themes/Bright/metacity-theme-1.xml: Update with border-only
window stuff from Atlanta.
2002-06-22 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Update for "border"
frame stuff, minor button/spacing improvements.
2002-06-22 Havoc Pennington <hp@pobox.com>
Partially fix Jacob's SM bugs.
* src/window.c (meta_window_apply_session_info): restore the extra
stuff we're saving, except stack position I didn't figure out yet.
* src/session.c: save stack position, minimized, maximized,
in the session file.
2002-06-22 Havoc Pennington <hp@pobox.com>
* src/workspace.c (set_number_of_spaces_hint): do nothing if
screen is being unmanaged, we don't want to blow away state,
we want to remember it for the next window manager.
2002-06-22 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_screen_ensure_workspace_popup): rename
from meta_workspace_ensure_tab_popup, and use workspace->name
instead of a hardcoded name
2002-06-22 Havoc Pennington <hp@pobox.com>
* src/xprops.c (meta_prop_get_utf8_list): new utility function
* src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom
(event_callback): update workspace names when the property changes
* src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES
(nothing to do really)
2002-06-21 Havoc Pennington <hp@pobox.com>
Theme breakage! Themes have to implement "border" frames
now, see Atlanta for an example. Fixes #84285
* src/tools/metacity-window-demo.c (do_appwindow): add a
border-only window
* src/window.c (update_mwm_hints): read border only from the MWM
hints
* src/window.h (struct _MetaWindow): add border_only flag
* src/core.c (meta_core_get_frame_type): report border type if
required
* src/common.h (enum): add META_FRAME_TYPE_BORDER
2002-06-20 Mark McLoughlin <mark@skynet.ie>
* src/window.c: (meta_window_visible_on_workspace): sticky
windows aren't visibile on all screens. Check the workspace
is on the same screen as the window.
* src/workspace.c: (meta_workspace_list_windows): use
meta_window_visible_on_workspace here.
2002-06-19 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_resize_gravity_from_grab_op): handle UNKNOWN
keyboard resizing state
* src/keybindings.c (process_keyboard_resize_grab): implement
keyboard resize key handling somewhat (only vertical resize works,
left/right arrow not implemented, and visual feedback of the
edge we're resizing isn't implemented)
* src/window.c (menu_callback): start keyboard resize grab when
it's chosen from the menu
2002-06-17 Havoc Pennington <hp@pobox.com>
* src/stack.c (meta_stack_get_default_focus_window): don't use a
minimized window as the next focus window, patch from
blackc@speakeasy.net
2002-06-17 Havoc Pennington <hp@pobox.com>
* src/place.c (find_next_cascade): increase the cascade threshold
a bit.
(find_first_fit): implement a somewhat lame first fit algorithm
2002-06-17 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_change_workspace): fix from Gaute
Lindkvist #82977 for unsticking windows
2002-06-17 Frederic Crozat <fcrozat@mandrakesoft.com>
* src/metacity.schemas.in: associate close_window keybinding to
Alt-F4
2002-06-16 Havoc Pennington <hp@pobox.com>
* src/main.c (main): fix spelling error, #85452
2002-06-15 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (meta_display_process_key_event): don't pass a
null string to printf
* src/display.c (key_event_description): don't pass a null string
to printf
* src/keybindings.c (meta_set_keybindings_disabled): allow
enable/disable keybindings regardless of debug mode.
2002-06-15 Havoc Pennington <hp@pobox.com>
* src/draw-workspace.h, src/draw-workspace.c: workspace-drawing
code factored out of libwnck, needs wiring up to tabpopup.c
(which is kind of annoying since you have to get the list of
workspaces and MetaWindow across the barrier between the GDK-aware
and non-GDK-aware sides of metacity)
2002-06-14 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_show): always focus new windows,
trying to be smart about it was a flop.
2002-06-14 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>
* src/delete.c (io_from_ping_dialog): Check for NULL string
before calling strlen(). Fixes the core dump issue reported in #84873.
2002-06-13 Anders Carlsson <andersca@gnu.org>
* src/theme.c (meta_frame_layout_calc_geometry): Set client height
as 0 when the window actually is shaded, not the other way around.
2002-06-12 Havoc Pennington <hp@redhat.com>
* src/theme.c (meta_frame_layout_calc_geometry): when a window is
shaded, don't include client height in the height calculation.
* src/workspace.c (meta_workspace_get_neighbor): apply fix from
Mads Villadsen for the Up arrow key, #84582
2002-06-12 Havoc Pennington <hp@redhat.com>
* src/theme.c (meta_frame_style_draw): Draw the buttons right
before the "overlay" piece.
2002-06-12 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>
* src/tools/metacity-properties.glade: accessibility work for
metacity-properties capplet. Set appropriate atk relations.
Fixes bug #84749
2002-06-11 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_show): allow dialogs to steal focus
from panels/desktop
2002-06-10 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>
* src/fixedtip.c: include <config.h> - fix for #83960
2002-06-10 Erwann Chenede - <erwann.chenede@sun.com>
* src/keybindings.c : (handle_close_window, handle_minimize_window)
verify the active window has the appropriate close/minimize function
before closing or minimizing the window.
2002-06-09 Havoc Pennington <hp@pobox.com>
* configure.in: 2.3.987
2002-06-09 Havoc Pennington <hp@pobox.com>
* src/delete.c (delete_ping_timeout_func): add G_IO_NVAL to watch
condition, patch from Gustavo Giraldez, avoids another 100% CPU
thingy
2002-06-09 Havoc Pennington <hp@pobox.com>
* src/place.c (meta_window_place): don't run constrain_placement
on windows we allow to go anywhere (docks, etc.). Fixes
positioning of panel windows in certain cases.
2002-06-09 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_button_press_event): don't raise/focus
the window if minimize/close are clicked, patch from Gaute
Lindkvist #75460
2002-06-08 Havoc Pennington <hp@pobox.com>
Cleanups to workspace popup patch. Space before all parens
in a couple places.
* src/prefs.c (meta_prefs_get_keybinding_action): fix brace
indentation, and use while instead of for loop. Take a "mask"
argument to avoid ambiguity issues.
* src/keybindings.c (handle_workspace_switch): rename from
handle_workspace_forward since there's no directionality here
(handle_workspace_switch): add a FIXME about how screwed it is
that we need a window in order to do our grab. Should be able to
grab on a dummy window like no_focus_window or the root window.
(process_workspace_switch_grab): rename from tab_grab for clarity,
no tab involved here.
* src/common.h (enum): have only one grab op for all workspace
switching directions, instead of one for each.
2002-06-08 Havoc Pennington <hp@pobox.com>
Apply big patch from blackc@speakeasy.net adding a popup window
to the Ctrl+Alt+arrows shortcuts. #83940
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_new): select key press/release on the
display->no_focus_window, another attempted fix for not getting
keybindings when no window is focused. Still doesn't seem to work
though. I don't get what's going wrong.
(meta_create_offscreen_window): new function, used instead of
XCreateSimpleWindow so we get override redirect offscreen windows.
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): set net_supporting_wm_check
in addition to win_supporting_wm_check, patch from
JeyaSudha for #83365
* src/screen.c (set_wm_check_hint): remove setting
win_supporting_wm_check on leader window here, done already in
display.c
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (meta_window_ungrab_keys): set keys_grabbed to
FALSE, patch from Jayaraj for #81857
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom
name
* src/display.c (meta_display_close): don't unmanage windows here,
do it in screen_free and then closing the display unmanages
windows as a side effect of unmanaging the screen
(meta_display_unmanage_screen): new function
(process_selection_clear, process_selection_request): handle
selection stuff
(meta_spew_event): don't crash on client message containing
invalid atom
(meta_spew_event): don't crash on property notify with invalid
atom
* src/main.c (main): add --replace option to replace existing
window manager.
* src/screen.c: implement holding manager selection.
* src/display.c (meta_display_open): add new selection-related
atoms.
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_new): select keypress/keyrelease
events on root window, this may fix the bug where keybindings
didn't work if you didn't have a focused window.
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/main.c (main): call meta_session_shutdown when exiting
cleanly
* src/session.c (meta_session_shutdown): function to change use to
RestartIfRunning
(meta_session_init): change normal restart hint to
RestartImmediately
2002-06-08 Havoc Pennington <hp@pobox.com>
Yeah I know maximization is broken, I'm too tired to fix it.
Probably because of the change to update_struts() that was
supposed to fix the 100% CPU bug.
* src/place.c (meta_window_place): don't run docks and things
through the placement algorithm. Thought it might fix
metacity-window-demo but it didn't.
* src/window.c (constrain_size): only get work area when needed
(meta_window_new): init the do_not_cover field
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_get_xinerama_for_window):
short-circuit the "only one xinerama" case, and use outer rect of
window instead of window->rect, so we get root window coords.
* src/theme.c (meta_frame_layout_get_borders): if fullscreen all
frame edges are zero-width.
* src/frame.c (meta_frame_get_flags): init fullscreen flag.
* src/common.h (enum): add META_FRAME_FULLSCREEN frame flag
* src/place.c: fix up calls to meta_window_get_work_area
* src/window.c (meta_window_get_work_area): add an arg for whether
the work area is for the screen or the xinerama subscreen.
(constrain_position): fix up calls to meta_window_get_work_area
(constrain_size): ditto
* src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA
environment variable which simulates xinerama on a single head.
2002-06-08 Havoc Pennington <hp@pobox.com>
* src/window.c (update_struts): only invalidate things if the
struts actually change, since the panel likes to set them over and
over. May fix the infinite loop that caused 100% CPU usage.
2002-06-07 Havoc Pennington <hp@redhat.com>
* src/screen.c (meta_screen_new): use XineramaIsActive() not
XineramaQueryExtension()
2002-06-07 Havoc Pennington <hp@redhat.com>
* src/screen.c (meta_screen_get_current_xinerama): don't return
null on non-multihead
2002-06-06 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_get_current_xinerama): implement
* src/place.c (meta_window_place): cascade windows on the active
Xinerama screen
* src/window.c (meta_window_move_resize_internal): strip out the
#if 0 cruft about guessing fullscreen mode
(constrain_position, constrain_size): fullscreen/maximize to the
Xinerama head, not the whole screen
(meta_window_get_work_area): autocreate struts at the Xinerama
physical screen edges for the screen the window is on.
* src/screen.c (meta_screen_get_xinerama_for_window): someone
snuck in a for loop, fix it. ;-)
2002-06-06 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Increase the border size
of the buttons so they aren't quite so huge on my box. Also get
a *little* closer to finally fixing the horizontal line behind
the icon. It now works decently with common font sizes (in pixels).
2002-06-05 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_color_spec_new_from_string): parse
"shade/foo/factor" as a color
(colorize_pixbuf): remove the unused hsv_to_rgb and vice-versa
stuff, add the gtk_style_shade stuff.
(meta_color_spec_render): render the shaded color spec
* src/theme.h (struct _MetaColorSpec): add "shade" mode to
MetaColorSpec.
2002-06-04 Seth Nickell <snickell@stanford.edu>
* src/metacity.desktop.in:
Add X-GnomeWMSettingsLibrary to desktop file to support new
Window capplet.
2002-06-04 Havoc Pennington <hp@redhat.com>
* src/window.c (update_wm_hints): fix for how we read the input
hint, from Hidetoshi Tajima
(meta_window_show): from Hidetoshi, don't autofocus windows with
input = FALSE wm_take_focus = FALSE when they first appear. We do
allow these windows to be focused (so keynav works), but they
don't get focused automatically. Now how do we keep them out of
the task list?
2002-06-04 Gustavo GirÃ�¡ldez <gustavo.giraldez@gmx.net>
* src/theme.c (draw_op_as_pixbuf): Use icon's instead of image's
fill_type when type is META_DRAW_ICON.
2002-06-03 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): don't automatically fullscreen
things opened fullscreen, because there's no GUI to un-fullscreen
them.
2002-06-03 Havoc Pennington <hp@pobox.com>
* src/theme-parser.c (parse_aspect_ratio): fix error message about
bad aspect ratio name.
2002-06-03 Havoc Pennington <hp@pobox.com>
* src/themes/Esco/metacity-theme-1.xml: test button aspect ratio
instead of hardcoded button size, James feel free to revert if you
don't like it this way.
* src/theme-parser.c: parse the aspect_ratio element for button
aspect ratios.
* src/theme.h (struct _MetaFrameLayout): allow button sizes to be
given as an aspect ratio derived from the titlebar height,
instead of as a fixed size.
* src/theme.c (meta_frame_layout_validate): validate new button
sizing parameters
* src/theme.c (meta_frame_layout_calc_geometry): use new button
layout params
Mon Jun 3 15:12:11 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
* configure.in (METACITY_LIBS): put -lXext into SHAPE_LIBS
2002-06-03 Kjartan Maraas <kmaraas@gnome.org>
* src/tools/metacity-properties.desktop.in: Someone forgot to mark
the two strings in here for translation :)
2002-06-02 Havoc Pennington <hp@pobox.com>
* configure.in: 2.3.610
2002-06-01 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_finalize): move the remove_listener
to finalize instead of destroy, thanks to Jayaraj for tracking
down the bug.
2002-06-01 Havoc Pennington <hp@pobox.com>
* src/session.c: add some missing \n
(meta_session_init): remove the #if 0 interact callback from our
initial SmcOpenConnection call, this arg to SmcOpenConnection
doesn't exist.
2002-06-01 Havoc Pennington <hp@pobox.com>
* src/session.c: put in more debug spew about the session
2002-05-30 Havoc Pennington <hp@pobox.com>
* src/Makefile.am (INCLUDES): use $(prefix)/@DATADIRNAME@/locale
for localedir to work with Solaris native gettext, patch from
Hidetoshi Tajima
* src/tools/Makefile.am: ditto
2002-05-31 Havoc Pennington <hp@redhat.com>
* src/theme.c: add MetaImageFillType and implement TILE in
addition to the existing SCALE
* src/theme.h (struct _MetaDrawOp): remove no-longer-used "alpha"
field
2002-05-31 Havoc Pennington <hp@redhat.com>
* src/theme.c (multiply_alpha): now just uses
meta_gradient_add_alpha
(draw_op_as_pixbuf): implement alpha gradients for tint, gradient,
and image draw ops, so I can implement garrett's stuff.
* src/gradient.c (meta_gradient_add_alpha): new function to
multiply the alpha channel of a pixbuf by an alpha gradient
2002-05-30 Havoc Pennington <hp@redhat.com>
* src/main.c (main): verbose-log on startup whether we were
compiled with various extensions
* src/display.c (meta_display_queue_retheme_all_windows): reapply
shape mask when changing themes, sucks to do it here though, makes
theme changing slower. Needs fixing.
* src/theme-parser.c (parse_toplevel_element): parse rounded
corner options to frame_geometry
* src/frames.c (meta_frames_apply_shapes): apply rounded corners
if requested by the theme
* configure.in (HAVE_SHAPE): check for shape extension
2002-05-30 Stephen Browne <stephen.browne@sun.com>
* src/tools/metacity-properties.c:
Some day I'll make all my changes in one commit :)
Needed to rip out code for adding icon to the dialog since it was
removed from teh galde file in my previous change.
2002-05-30 Stephen Browne <stephen.browne@sun.com>
* src/tools/metacity-properties.glade:
Some UI changes demanded by Pat and Calum.
Make Close default response
Change mnemonic for Click so as not to clash with Close
2002-05-30 Stephen Browne <stephen.browne@sun.com>
* src/tools/metacity-properties.glade: changed window title
to match other control center dialogs
2002-05-29 Havoc Pennington <hp@pobox.com>
* src/session.c (meta_session_init): improve error about failing
to open session manager.
(shutdown_cancelled_callback): send SmcSaveYourselfDone when we
get cancelled
(interact_callback): implement an interact callback that complains
about lame clients that can't be saved. Still somewhat buggy
in that it sends InteractDone before the user has closed the
dialog.
2002-05-29 Havoc Pennington <hp@redhat.com>
* src/tools/metacity-mag.c: add a magnifier I'm using when making
themes. Not installed.
* src/tools/metacity-properties.c: reindentation, show window, add
copyright info.
* src/tools/metacity-properties.glade: make main window !visible
on startup, to avoid funkiness.
2002-05-29 Jacob Berkman <jacob@ximian.com>
* src/tools/Makefile.am (EXTRA_DIST): dist .desktop.in files
2002-05-29 Stephen Browne <stephen.browne@sun.com>
New simple metacity-properties dialog to configure focus mode
and auto raise.
* configure.in: added build support for metacity-properties
* src/tools/Makefile: more build stuff
* src/tools/metacity-properties.c: added these files
* src/tools/metacity-properties.glade:
* src/tools/metacity-properties.desktop.in:
* src/tools/metacity-properties.png:
2002-05-29 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_move_resize_internal): add code to
also guess that client wants to come out of fullscreen, then
#if 0 the whole deal, I'm not sure it's such a good idea.
2002-05-29 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_move_resize_internal): guess if a
window meant to be fullscreen, and if so put it in that state.
2002-05-28 Havoc Pennington <hp@pobox.com>
* src/window.c (redraw_icon): handle missing frame, prevents segv
with undecorated windows. #83298
2002-05-28 Havoc Pennington <hp@pobox.com>
Patch from Erwann Chenede for raise_or_lower keybinding
* src/display.c, src/common.h: POINT_IN_RECT moved to a common
location, removed from here
(meta_rectangle_intersect): move here and make it public
* src/prefs.c: add raise_or_lower keybinding
* src/stack.c (meta_stack_get_below, meta_stack_get_above): add an
arg to only get windows within the same layer
* src/keybindings.c (handle_raise_or_lower): add handling for a
"raise window if obscured, else lower" keybinding
2002-05-28 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_configure_request): handle CWStackMode
in configure requests
(meta_window_new): if a window is opened at 0,0 and screen size,
put it in the fullscreen state.
(meta_window_new): remove old code that set the window position to
0,0 if PPosition/USPosition unset, that will be handled by whether
we place the window or not.
2002-05-28 Abel Cheung <maddog@linux.org.hk>
* configure.in: Added "zh_TW" to ALL_LINGUAS.
2002-05-27 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): search for the window's screen
by root window instead of Screen*, maybe it will help with
bug #82664
2002-05-27 Kjartan Maraas <kmaraas@gnome.org>
* autogen.sh: Hook up intltoolize here.
* configure.in: Initialize intltool.
* src/metacity.schemas.in: Add this.
* src/metacity.desktop.in: Add this too
* src/Makefile.am: Hook up intltool support for .schemas and .desktop.
* Makefile.am: Dist the intltool files.
2002-05-27 Anders Carlsson <andersca@gnu.org>
* src/themes/Gorilla/metacity-theme-1.xml: Apparently someone
thinks my name is Anders Carlsom. Well, it's not.
(Thanks to Carl-Johan Kjellander for noticing.)
2002-05-26 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Remove borders from
Esco theme as well (didn't know you could), apparently fixed
the problem where the spacing between the icon & the title
got larger as the fontsize went up.
2002-05-26 Havoc Pennington <hp@pobox.com>
* src/themes/Atlanta/metacity-theme-1.xml: totally drop the
borders off of maximized windows.
2002-05-26 Havoc Pennington <hp@pobox.com>
Patch from Gaute Lindkvist so you can't move the panel or desktop
to only one workspace.
* src/keybindings.c (handle_move_to_workspace): don't allow moving
window to another space if the window is always_sticky
* src/window.c (recalc_window_features): set the always_sticky
field for desktop/dock windows.
(meta_window_show_menu): disable unsticking always sticky windows
via the menus
* src/menu.c (meta_window_menu_new): disable workspace items
if requested
2002-05-26 Matthias Warkus <mawarkus@gnome.org>
* po/de.po: Added.
* configure.in: de added to ALL_LINGUAS
2002-05-25 Erwann Chenede - <erwann.chenede@sun.com>
* src/keybindings.c (rebuild_screen_binding_table,
rebuild_window_binding_table,
meta_change_keygrab): allow key grabbing for
unmodified keys (e.g F1, etc) fix #82630
2002-05-25 Anders Carlsson <andersca@gnu.org>
* src/place.c: (get_vertical_edges), (get_horizontal_edges):
Take Xinerama screen edges into consideration.
* src/screen.c: (meta_rectangle_intersect),
(meta_screen_get_xinerama_for_window):
* src/screen.h:
Add a new function that returns the xinerama monitor that
a window is on.
2002-05-24 Havoc Pennington <hp@pobox.com>
* src/window.c (menu_callback): follow windows to their new
workspace
* src/keybindings.c (handle_move_to_workspace): follow windows to
their new workspace
2002-05-24 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas: add minimize window binding
* src/keybindings.c (handle_minimize_window): add minimize keybinding
2002-05-24 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_show): change how focusing windows
on initial map works, so that we only steal focus from our
transient parent or from a panel/desktop, never from other
normal windows.
2002-05-24 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_configure_request): modify to ignore
PPosition and USPosition once the window has been placed
2002-05-24 Anders Carlsson <andersca@gnu.org>
* src/window.c: Redraw the window frame when the icon changes.
Fixes #78543, reported by Kang Jeong-Hee.
2002-05-23 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): also filter out LeaveNotify
with NotifyInferior
2002-05-23 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>
* src/display.c (event_callback): fix for bugzilla bug #72314,
filter out LeaveNotify caused by grabs when in mouse focus mode.
2002-05-23 Havoc Pennington <hp@pobox.com>
* src/metacity.schemas: clean up the font preference
* src/prefs.c: font pref
* src/frames.c: pay attention to the font pref
2002-05-23 Havoc Pennington <hp@pobox.com>
Crack from Erwann
* src/metacity.schemas: add autoraise crackrock
* src/display.c (event_callback): autoraise window if autoraise is
enabled
* src/prefs.c: autoraise crack
2002-05-21 Havoc Pennington <hp@redhat.com>
* src/window.c (constrain_position): fix positioning in fullscreen
mode, patch from Gustavo GirÃ�¡ldez
2002-05-20 Alessio Frusciante <algol@firenze.linux.it>
* configure.in: Added Italian to ALL_LINGUAS.
2002-05-20 Pablo Saratxaga <pablo@mandrakesoft.com>
* configure.in: Added Catalan (ca) and Azeri (az) to ALL_LINGUAS
2002-05-17 Havoc Pennington <hp@redhat.com>
* configure.in: 2.3.377
2002-05-16 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_get_neighbor): fix it, maybe
2002-05-16 Havoc Pennington <hp@redhat.com>
* src/window.c (constrain_position): lock desktop to position 0,0
2002-05-16 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_show): don't focus dock, desktop,
etc. windows on initial map, only windows that should have focus.
2002-05-15 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_get_neighbor): use the layout
information to figure out up/down neighbors
* src/display.c (event_callback): catch propertynotify on
_NET_DESKTOP_LAYOUT
* src/screen.c (meta_screen_update_workspace_layout): keep track
of the layout of workspaces as set by the pager
2002-05-15 James M. Cape <jcape@ignore-your.tv>
* src/themes/Esco/metacity-theme-1.xml: Minor tweak to minimize
button.
2002-05-14 Havoc Pennington <hp@pobox.com>
* src/themes/Makefile.am (THEMES): add Esco theme from James Cape
2002-05-12 Havoc Pennington <hp@pobox.com>
* src/place.c (meta_window_place): move pposition/usposition
honoring code into here, instead of putting it in window.c.
Makes focusing new windows work, and cleans things up a bit.
#81585
2002-05-12 Havoc Pennington <hp@pobox.com>
* src/main.c (main): turn on --g-fatal-warnings if
METACITY_G_FATAL_WARNINGS env variable is set.
2002-05-11 Anders Carlsson <andersca@gnu.org>
* src/display.c: (find_tab_forward), (find_tab_backward),
(meta_display_get_tab_next):
* src/display.h:
* src/keybindings.c: (handle_tab_forward), (handle_focus_previous):
Add screen argument to meta_display_get_tab_next, since we only
want windows on the same screen to appear in the tab chain.
* src/screen.c: (meta_screen_new):
Or the event mask with existing events since gtk+ may listen to
certain events and we don't want to disable those events.
(meta_screen_ensure_tab_popup):
* src/tabpopup.c: (meta_ui_tab_popup_new):
* src/tabpopup.h:
Add a screen number argument to meta_ui_tab_popup_new so we
can position the popup on the correct screen.
2002-05-11 Havoc Pennington <hp@pobox.com>
* src/main.c: include locale.h, fix from Hidetoshi Tajima
* src/window.c (meta_window_new): disable show desktop mode when a
new window is managed.
2002-05-11 Havoc Pennington <hp@pobox.com>
* src/fixedtip.c (meta_fixed_tip_show): keep the tooltip
on the screen horizontally, #76825
* src/window.c (meta_window_handle_mouse_grab_op_event): end grab
op _after_ doing the final update of the move or resize.
Hopefully I didn't have a reason for the order I was using before.
2002-05-10 Havoc Pennington <hp@pobox.com>
* src/tools/metacity-window-demo.c: add override redirect test
window
* src/stack.c (raise_window_relative_to_managed_windows): new
function, used to avoid moving windows above override redirect
popup windows.
* src/display.c (event_callback): don't lower panels on
LeaveNotify if they have focus, #70895
2002-05-10 Havoc Pennington <hp@pobox.com>
* src/window.c (constrain_position): when maximizing/fullscreening
something with a grid, like a terminal, center it in the
maximization area in case it can't fill the whole area.
#70554
* src/main.c (main): use g_strerror() to get proper UTF-8.
2002-05-10 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (reload_modmap): put LockMask into the
ignored_modifier_mask so that caps lock doesn't mess up
keybindings.
2002-05-10 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_focus): if window is not mapped after
the calc_showing, don't focus it, it's probably on another
workspace or something.
2002-05-09 Havoc Pennington <hp@redhat.com>
* src/frames.c (show_tip_now): DefaultScreen() returns the screen
number not Screen*
* src/frame.c (meta_frame_sync_to_window): immediately repaint
frame whenever we resize it, if we're inside a grab operation.
* src/frames.c (meta_frames_repaint_frame): new function
* src/window.c (meta_window_new): initialize window's colormap
(meta_window_notify_focus): install the colormap for a window when
it gets focus, uninstall on unfocus.
* src/window.h (struct _MetaWindow): store window's colormap
* src/display.c (event_callback): note changes to window colormap
* src/frame.c (EVENT_MASK): add ColormapChangeMask
2002-05-09 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): make Alt+button2 do a resize
2002-05-08 Anders Carlsson <andersca@gnu.org>
* src/fixedtip.c (meta_fixed_tip_show):
#ifdef out call to gtk_window_set_screen, reported by
Erwann Chenede.
2002-05-08 Anders Carlsson <andersca@gnu.org>
* configure.in:
* src/display.c: (meta_display_open):
* src/fixedtip.c: (meta_fixed_tip_show):
* src/fixedtip.h:
* src/frames.c: (meta_frames_new), (show_tip_now):
* src/frames.h:
* src/menu.c: (meta_window_menu_new):
* src/ui.c: (meta_ui_new):
Add multi-screen support. Also add patch by Erwann Chenede
to make tooltips appear on the correct screen.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* src/workspace.c (set_work_area_hint): Doh, only update
the tmp pointer when the screen matches. Fixes a segfault
when running with multiple screens.
* src/display.c: (meta_display_open), (event_callback),
(meta_display_update_show_desktop_hint):
* src/display.h:
* src/screen.c: (set_supported_hint):
Fix atom name; it's _NET_SHOW_DESKTOP, not
_NET_WM_SHOW_DESKTOP.
* src/frames.c: (meta_frames_unmanage_window):
Restore the mouse cursor to default when unmanaging a window.
2002-05-06 Anders Carlsson <andersca@gnu.org>
* src/display.c: (set_utf8_string_hint):
Fix an off-by-one error.
(meta_display_open),
(event_callback), (meta_display_update_show_desktop_hint),
(meta_display_show_desktop), (meta_display_unshow_desktop):
* src/display.h:
* src/screen.c: (set_supported_hint):
Add support for _NET_WM_SHOW_DESKTOP, both as a message and
as a root window property.
2002-05-05 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_unminimize): on unminimize, queue
calc_showing on all transients
(meta_window_activate): on activate, unminimize all a window's
ancestors, not just the window itself.
* src/workspace.c (set_work_area_hint): don't increment "tmp" by
16 unsigned long, increment by 4
* src/window.c (meta_window_free): if a window isn't minimized,
restore its WM_STATE to NormalState instead of IconicState,
since IconicState on initial window map means that the window
should be minimized.
* src/workspace.c (meta_workspace_invalidate_work_area): queue an
idle to recompute the work area hint.
(set_work_area_hint): we need 4*num_workspaces ints, not just
num_workspaces.
* src/screen.c (meta_screen_new): add work_area_idle field,
handle it on screen shutdown
* src/common.h (META_PRIORITY_PREFS_NOTIFY,
META_PRIORITY_WORK_AREA_HINT): define some idle priorities
* src/window.c (meta_window_calc_showing): hide windows if
their parent window is minimized
(meta_window_minimize): also queue_calc_showing on all
transients of the window being minimized
* src/place.c (constrain_placement): function to apply
placement-time-only constraints, such as "not off the left of the
screen"
(meta_window_place): put dialogs down a bit over their parent,
not right at the top.
(meta_window_place): when centering a dialog, center it
on the current xinerama screen, rather than the entire
screen.
* src/screen.c (meta_screen_get_current_xinerama): new function,
but not implemented
2002-05-04 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_paint_to_drawable): chop out the
portion of the region that's outside the screen.
* src/core.c (meta_core_get_screen_size): new function
(meta_core_get_frame_extents): new function
2002-05-04 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_init): disable automatic GTK double
buffering, since it resulted in gigantic backing pixmaps the size
of the whole screen.
(meta_frames_paint_to_drawable): change to take a region argument;
punch the client area out of the expose region, then iterate over
rectangles in the region and draw each, manually doing
begin_paint_rect. Results in 4 long thin backing pixmaps
per frame repaint, instead of one large backing pixmap.
Suggested by Owen.
2002-05-05 Bastien Nocera <hadess@hadess.net>
* src/workspace.c: (meta_workspace_get_neighbor):
Wrap-around workspaces (ie. when on the last workspace,
"switch_to_workspace_right" goes back to the
first one)
2002-05-05 Anders Carlsson <andersca@gnu.org>
* src/metacity.schemas: Fix a spelling error and change
switch_to_workspace_up and switch_to_workspace_down to use
Ctrl+Alt since Nautilus uses Alt now.
2002-05-04 Havoc Pennington <hp@pobox.com>
* src/window.c (update_net_wm_type): correctly print things if the
type_atom is unset
(meta_window_new): with workarounds disabled, always allow
self-placement for windows with PPosition or USPosition set.
2002-05-03 Havoc Pennington <hp@redhat.com>
* src/Makefile.am: fix for automake 1.5, patch from Tomasz Kloczko
2002-05-03 Laszlo Peter <laca@sun.com>
* configure.in: add the X libs to METACITY_MESSAGE_LIBS and
METACITY_WINDOW_DEMO_LIBS
2002-05-02 Havoc Pennington <hp@redhat.com>
* README: updates
* configure.in: 2.3.233
2002-05-02 Bastien Nocera <hadess@hadess.net>
* src/metacity.schemas: change the default for switch_to_workspace_*
to be <Control><Alt>arrow as just <Alt>arrow collides with some apps
(especially web browsers)
2002-05-01 Havoc Pennington <hp@redhat.com>
* src/screen.c (meta_screen_new): Xlib doesn't like NULL for out
arguments; fix for #80472 from lbedford
2002-04-30 Havoc Pennington <hp@pobox.com>
* src/keybindings.c: finish mopping up mode_switch_mask field
* src/display.h (struct _MetaDisplay): remove mode_switch_mask
field
2002-04-30 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): don't try to decorate
toolbars.
* src/tools/metacity-window-demo.c: add menu and toolbar tests
* src/place.c (meta_window_place): only dialogs should be centered
over parent, not anything with transient for set.
* src/window.c (meta_window_configure_request): become more
fascist about window positioning if workarounds are disabled, and
less fascist if they are enabled.
* src/metacity.schemas: add a "disable_workarounds" option. Kind
of crack-smoking. But we just can't get all applications
fixed. And I need no-workarounds mode to monitor which apps are
broken and what needs fixing in specs.
* src/window.c (meta_window_configure_request): always allow
windows to resize themselves
* src/keybindings.c (reload_modmap): don't filter out Mode_switch,
apparently some people bind window manager shortcuts to that.
2002-04-30 Havoc Pennington <hp@redhat.com>
* src/window.c (constrain_position): oops, fix
maximization. Pointed out by Gustavo GirÃ�¡ldez
Tue Apr 30 06:24:09 2002 Jonathan Blandford <jrb@gnome.org>
* src/menu.c: give Maximize/Unmaximize and Shade/Unshade the same
mnemonic for consistency's sake.
2002-04-29 Havoc Pennington <hp@redhat.com>
* src/window.c (TITLEBAR_LENGTH_ONSCREEN): require 36 pixels
onscreen so you typically get a sliver of titlebar, suggested by
tigert. Should still fix this to consider actual theme geometry.
(constrain_position): change to allow movement off the left
2002-04-29 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): always raise windows on focus
click, regardless of focus mode.
2002-04-29 Havoc Pennington <hp@redhat.com>
* configure.in: 2.3.144
2002-04-29 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_ui_init): don't leak the PangoContext
2002-04-28 Anders Carlsson <andersca@gnu.org>
* src/display.c: (meta_display_open):
* src/display.h:
* src/screen.c: (set_supported_hint):
* src/workspace.c: (set_number_of_spaces_hint),
(set_workarea_hint):
Add support for setting the _NET_WM_WORKAREA hint. No code
does it yet though.
2002-04-28 Havoc Pennington <hp@pobox.com>
* README: remove caveats about keybindings
* src/metacity.schemas: add schemas for all the keybindings.
* src/window.c (meta_window_activate): if in "show desktop" mode
when a window is activated, leave show desktop mode. So e.g.
when you click on a task in the task list, show desktop mode
will be turned off.
* src/workspace.c (meta_workspace_get_neighbor): new function
that doesn't quite work yet (needs support for getting
workspace layout from the pager)
* src/prefs.c: keybindings stuff
* src/keybindings.c: make keybindings configurable
* src/ui.c (meta_ui_parse_accelerator): new function
2002-04-25 Havoc Pennington <hp@redhat.com>
* metacity.spec: fix to install gconf schemas
2002-04-25 jacob berkman <jacob@ximian.com>
* src/session.c (load_state): g_file_get_contents() takes a gsize
not int (fixes bus error on 64-bit platforms)
2002-04-22 Havoc Pennington <hp@redhat.com>
* src/main.c (main): call setlocale ourselves because due to a
GLib bug that sticks us in ASCII if you call g_print or anything
prior to setlocale, and print a warning if we don't set the locale
successfully. #79280
* src/workspace.c (meta_workspace_get_work_area): be more verbose
about how the work area was computed, to help find bugs here.
* src/main.c (main): put locale and codeset in the log file
2002-04-21 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_send_icccm_message): add error trap,
fixes a possible BadWindow if a window closed itself in response
to the delete window message prior to us sending the ping message.
2002-04-21 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_move_resize_now): never revert to
user_rect.width, user_rect.height. Maybe fixes assorted resize
screwups e.g. with gnome-terminal.
2002-04-21 Anders Carlsson <andersca@gnu.org>
* src/iconcache.c (scaled_from_pixdata): Add padding if
icon width and height differ.
2002-04-17 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_new): query Xinerama screen
information if HAVE_XINERAMA
* configure.in (found_xinerama): check for Xinerama
2002-04-17 Changwoo Ryu <cwryu@debian.org>
* configure.in (ALL_LINGUAS): Added ko (Korean).
2002-04-16 Akira TAGOH <tagoh@gnome.gr.jp>
* configure.in (ALL_LINGUAS): add ja.po entry.
2002-04-15 Havoc Pennington <hp@pobox.com>
* src/window.c (update_title): fix issue with GNU libc
mangling %.10s format
* metacity.spec: Fix up spec file
* README: update README
* configure.in (ALL_LINGUAS): require GTK 2.0.0
2002-04-15 Havoc Pennington <hp@redhat.com>
* src/display.c (meta_display_ping_window): reply immediately for
windows that don't support _NET_WM_PING
* src/window.c (update_protocols): check whether windows
support _NET_WM_PING
2002-04-13 Havoc Pennington <hp@pobox.com>
* src/ui.c (get_cmap): same fix as libwnck, avoid using cmap
with the wrong depth
2002-04-13 Havoc Pennington <hp@pobox.com>
* src/delete.c: new file containing all the
wacky mess I just added to a simple "click the close button",
contains all the dealing-with-dead-application cruft.
Use metacity-window-demo to test by clicking the
toolbar button that locks it up.
2002-04-12 Havoc Pennington <hp@redhat.com>
* src/tools/metacity-window-demo.c (do_appwindow): make one of the
toolbar buttons lock up the demo
* src/window.c (meta_window_delete): move error trap to be around
a narrower part of the function, and add part of the ping stuff,
nothing user-visible yet
* src/metacity-dialog.c (main): metacity-dialog executable to
live in libexecdir and pop up dialogs for us.
2002-04-09 Havoc Pennington <hp@pobox.com>
* src/theme.c (multiply_alpha): fix alpha multiplication routine
to perhaps work correctly, reported by tigert. Also, be sure
we always copy the image if necessary before modifying the
alpha channel.
2002-04-05 Havoc Pennington <hp@pobox.com>
* src/stack.c: remove the unused tab stuff
* src/display.c: implement tab list among panels
* src/keybindings.c: fill in move-between-panels keybindings
2002-03-31 Johan Dahlin <jdahlin@telia.com>
* src/menu.c (meta_window_menu_new): Make sure all menu items are
translated.
2002-03-27 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_free): remove
unmanaged windows from save set, and unselect
input so we don't get events from them. Fixes annoying
bug where withdrawn windows would decide to map themselves
due to save set stuff.
2002-03-22 Zbigniew Chyla <cyba@gnome.pl>
* configure.in (ALL_LINGUAS): Added pl (Polish).
2002-03-21 Havoc Pennington <hp@pobox.com>
* src/themes/Bright/metacity-theme-1.xml: Added "Bright" theme
from Gaute Lindkvist, with some small clipping tweaks to keep
text/icons from overlapping their frames.
2002-03-19 Havoc Pennington <hp@redhat.com>
* src/resizepopup.c (place_vertical_size_window)
(place_horizontal_size_window): disable the little shaped windows
with the window size, they caused a crash anytime you tried to
resize with Xft. And they were kind of on crack anyway.
2002-03-17 Havoc Pennington <hp@pobox.com>
* src/resizepopup.c (ensure_tick_windows): turn off the tick
marks, that got annoying after about 5 minutes. One big shape
window instead of lots of little windows might fix it.
2002-03-17 Havoc Pennington <hp@pobox.com>
* src/resizepopup.c: Add some total crackrock resize-grid
indication for windows that have width_inc/height_inc
so I can debug gnome-terminal sizing.
2002-03-17 Havoc Pennington <hp@pobox.com>
* src/session.c (set_clone_restart_commands): use proper property
name for SmDiscardCommand (instead of setting the clone command to
"rm"). Also fix typo that iterated over clonev not discardv to
fill in prop list, and NULL-terminate discardv. #74584 from Kang
Jeong-Hee.
2002-03-13 Havoc Pennington <hp@pobox.com>
* src/main.c (main): put back --sm-client-id argument, needed
for including us in a default session
2002-03-13 Havoc Pennington <hp@pobox.com>
* src/session.c (meta_session_init): don't save a file here, only
in response to SaveYourself. Change the code to properly use a
unique state file for each SaveYourself. Totally, totally
untested.
2002-03-12 Havoc Pennington <hp@pobox.com>
* src/theme-viewer.c: improve the theme viewer so people
can see the broken aspects of their themes.
2002-03-11 Havoc Pennington <hp@pobox.com>
* src/keybindings.c: use new functions
* src/display.c (meta_display_get_tab_next):
(meta_display_get_tab_list): new tab order functions using
MRU list instead of map order
* src/window.c (meta_window_notify_focus): maintain focus MRU list
* src/display.h (struct _MetaDisplay): Keep an MRU list of
windows.
2002-03-10 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): support _NET_NUMBER_OF_DESKTOPS
message so you can change number of desktops with the pager
* src/prefs.c (meta_prefs_set_num_workspaces): new function
* src/display.c (meta_spew_event): print stacking aspects of
configure requests
2002-03-10 Havoc Pennington <hp@pobox.com>
* src/screen.c (set_supported_hint): we didn't claim to support
_NET_ACTIVE_WINDOW so gtk_window_present() didn't work. Mumble.
Only worked with tasklist because libwnck didn't check for
WM support.
* src/window.c (meta_window_free): clean off window state
when windows are withdrawn, to avoid sticking dialogs
to their initial desktop.
(meta_window_queue_calc_showing): return if window is withdrawn
2002-03-08 Laszlo Peter <laca@ireland.sun.com>
* configure.in: fix the X linker flags
2002-03-06 Havoc Pennington <hp@pobox.com>
* src/core.c (meta_core_get_grab_frame): add some assertions
* src/menu.c (meta_window_menu_new): make another warning
into a verbose
* src/display.c (meta_change_button_grab): use verbose rather than
warning to log failures to grab button, since these are typically
BadWindow from a destroyed window.
2002-03-06 Havoc Pennington <hp@redhat.com>
* src/frames.c (meta_frames_manage_window): use hash_table_replace
instead of g_hash_table_insert
* src/main.c (main): only enable verbose/debug if you set
METACITY_VERBOSE/METACITY_DEBUG
* src/util.c (ensure_logfile): only use a log file if
METACITY_USE_LOGFILE is set
* src/display.c (meta_display_for_x_display): add warning if
MetaDisplay isn't found
* src/window.c (meta_window_free): add an assertion that we
successfully cleared the grab window
2002-03-05 Havoc Pennington <hp@pobox.com>
Work on opaque animations more, still suck too much
to turn on. Not sure how to make them good.
* src/effects.c (meta_effects_draw_box_animation):
add a slide-up mode for shading
* src/ui.c (meta_image_window_set): change image window to work by
setting back pixmap on the GtkWindow, instead of using GtkImage.
2002-03-04 Havoc Pennington <hp@pobox.com>
* src/main.c (main): try ignoring SIGXFSZ, though I'm not
sure what that does exactly. I'm hoping it gives me EFBIG.
* src/util.c (ensure_logfile): log to a file in /tmp instead
of to ~/metacity.log.
2002-03-04 Havoc Pennington <hp@redhat.com>
* configure.in: fix configure.in since GTK no longer gives us
-L/usr/X11R6/lib
2002-03-03 Havoc Pennington <hp@pobox.com>
* src/window.c: improve debug spew about initial workspace
2002-03-02 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): disable resize etc. if
we're fullscreen
(constrain_size): fix size constraints when fullscreen
* src/display.c (meta_display_open): fix missing comma that
ended up concatenating two of the properties breaking
FULLSCREEN state and PING protocol
2002-03-02 Havoc Pennington <hp@pobox.com>
* src/display.c: Add hacking to fix the problem that we made our
XGrabPointer() during Alt+Tab actually succeed, so on popping down
Alt+Tab we got an EnterNotify from the ungrab, which resulted in
focusing the window under the mouse. i.e. Alt+Tab didn't work with
sloppy focus.
2002-02-26 Havoc Pennington <hp@pobox.com>
Screw around with Anders's ping patch so he'll get plenty of CVS
conflicts. ;-)
* src/display.c (meta_display_ping_window): spew warnings
if we try to call this with CurrentTime
(meta_display_ping_timeout): remove ping from the pending pings
after it times out.
* src/util.h: added PING debug category
* src/display.c (remove_pending_pings_for_window): don't remove
"tmp" just before "tmp->next", don't break out of loop after
finding the first match
(meta_display_open): no trailing comma in array init
(event_callback): move the processing of ping replies into a
separate function
* src/screen.c (set_supported_hint): add _NET_WM_PING to supported
list
* src/display.h: change gpointer to void*
2002-02-26 Anders Carlsson <andersca@gnu.org>
* src/display.c: (ping_data_free),
(remove_pending_pings_for_window), (meta_display_open),
(event_callback), (meta_display_unregister_x_window),
(meta_display_ping_timeout), (meta_display_ping_window),
(meta_display_window_has_pending_pings):
Implement meta_display_ping_window, and filter out scroll wheel
events.
* src/display.h:
Add MetaWindowPingFunc, meta_display_ping_window and
meta_display_window_has_pending_pings.
2002-02-24 Havoc Pennington <hp@pobox.com>
* src/display.c (xcursor_for_op): switch on the op passed in, not
the active op. Gives us the right cursor during resizing, etc.
* src/errors.c: rearrange all the error stuff to adapt to the GDK
change a while back, so now we print our X errors again
* src/display.c (meta_display_begin_grab_op): remove KeyPressMask
and KeyReleaseMask from the XGrabPointer(), this caused BadValue
and kept the grab from ever succeeding. Fixes the problem with the
GTK resize grip - this is why you shouldn't break your X error
spew. ;-)
* src/display.c: debug spew tweaks
* src/window.c (meta_window_client_message): do some
s/verbose/topic/ stuff
2002-02-23 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_ui_init): fix the
be-sure-we-create-coverage-cache hack
2002-02-19 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_ui_init): put in hack to keep Pango from mangling
our server grab and locking up on startup. (hack doesn't work
but I want to fix it on my real computer not this laptop)
* src/window.c: Implement _NET_WM_STATE_FULLSCREEN
* src/display.c (meta_display_open): add atoms for
_NET_WM_STATE_FULLSCREEN
2002-02-16 Kjartan Maraas <kmaraas@gnome.org>
* src/main.c: Use bind_textdomain_codeset etc.
2002-02-14 Havoc Pennington <hp@pobox.com>
* src/theme-viewer.c: use the preview widget here
* src/preview-widget.h, src/preview-widget.c: make the theme
preview into a nice widget
* src/frames.c (meta_frames_ensure_layout): replace frame layout
if the frame style changes, this only ends up mattering if you
e.g. changed the font size for windows in a different state such
as maximized, which is crack, but the code may as well be correct
* src/theme.c (meta_theme_get_frame_style): new function so we can
detect an invalid cache of the PangoLayout in a frame
2002-02-14 Anders Carlsson <andersca@gnu.org>
* src/themes/Crux/metacity-theme-1.xml: Fix some bugs with
prelighting.
2002-02-13 Anders Carlsson <andersca@gnu.org>
* src/theme.c (meta_pango_font_desc_get_text_height): Use
pango_context_get_metrics instead of loading the font.
2002-02-12 Anders Carlsson <andersca@gnu.org>
* src/frames.c (meta_frames_manage_window): Set prelit_control
to META_FRAME_CONTROL_NONE.
(meta_frames_update_prelit_control): New function for setting
the prelit control.
(meta_frames_paint_to_drawable): Set prelight state.
(meta_frames_enter_notify_event): Update prelit control.
(meta_frames_leave_notify_event): Likewise.
(meta_frames_motion_notify_event): Likewise.
* src/frames.h (struct _MetaUIFrame): add prelit_control.
* src/window.c (update_mwm_hints): and MWM_FUNC_ALL
with hints->functions instead of hints->flags.
2002-02-11 Anders Carlsson <andersca@gnu.org>
* src/theme.c (meta_frame_layout_new): Set title_scale to 1.0
2002-02-11 Bastien Nocera <hadess@hadess.net>
* src/theme-viewer.c: (main): change default theme to be Atlanta
like in the .schema file
2002-02-10 Havoc Pennington <hp@pobox.com>
* src/tools/Makefile.am (EXTRA_DIST): add $(icon_DATA)
* configure.in: 2.3.55
* HACKING: update
* README: update
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_theme_set_current): add a newline to an error
message
* src/themes/Gorilla: add Gorilla theme by Jakub Steiner ported to
metacity by Kenneth Christiansen
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_draw_op_draw_with_env): implement wacky "tile"
draw op to lose some of the PNG files in Gorilla theme
* src/theme-parser.c: parse the tile primitive
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/window.c (update_icon): port to icon cache
* src/iconcache.c, src/iconcache.c: begin process of cleaning up
window.c by moving the icon-reading code in here, based on the
code in libwnck, which was in turn based on the earlier metacity
code
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/stack.c (meta_stack_sync_to_server): hmm, and don't set
last_window at all if we don't ++newp. Fixes even more obscure
stacking bug.
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/stack.c (meta_stack_sync_to_server): assign last_window
prior to ++newp, so we don't try to stack windows with respect to
themselves. Fixes some obscure stacking bugs.
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/theme-parser.c: try to make more error message strings the
same, easier for translators
* src/theme.c (meta_draw_op_free): free color spec for line op
(meta_theme_free): free the integer_constants hash
* src/theme-parser.c (parse_boolean): move above first use
* src/theme-viewer.c: fixes for theme.h changes
* src/frames.c (queue_recalc_func): don't recreate layout
immediately, just save title text. should speed things up.
(meta_frames_set_title): just remove the layout here also,
and save title text.
* src/theme-parser.c (parse_toplevel_element): parse title_scale
attribute on frame_geometry
* src/theme.c: support setting the text size
* src/frames.c: support setting the text size
* theme-format.txt: updates
2002-02-09 Havoc Pennington <hp@pobox.com>
* src/themes/Atlanta/metacity-theme-1.xml: put in some kind of
distinctive frame for UTILITY, though it's ugly. Also put in the
borderless look for maximized windows.
* src/stack.c (compute_layer): put splash screen in the splash
layer
* src/stack.h (enum): create a splash screen layer
* src/place.c (meta_window_place): center splashscreen, and fix a
typo in the centering code
* src/window.c (recalc_window_features): disable most features on
splash screens
* src/screen.c (set_supported_hint): add UTILITY and SPLASHSCREEN
hints
* src/window.c: add UTILITY, SPLASHSCREEN implementation
* src/window.h (enum): add UTILITY, SPLASHSCREEN types
* src/theme-parser.c (parse_toplevel_element): parser support
for has_title attribute
* src/theme.c (meta_frame_layout_get_borders): handle a has_title
field in the layout, for utility windows that don't display a
title (would be better to be able to shrink the title text,
but that's kind of tricky to implement :-/)
2002-02-08 Havoc Pennington <hp@pobox.com>
* src/screen.c (set_supported_hint): add _NET_WM_STATE_HIDDEN
to _NET_SUPPORTED
* src/keybindings.c (meta_set_keybindings_disabled): put in header
file, to fix warning.
* src/display.c (meta_display_open): add _NET_WM_STATE_HIDDEN atom
* src/window.c (set_net_wm_state): set _NET_WM_STATE_HIDDEN for
shaded and minimized windows
(meta_window_show): call set_net_wm_state() if we map the window
or frame
(meta_window_hide): call set_net_wm_state() if we unmap the window
or frame
2002-02-08 Havoc Pennington <hp@pobox.com>
* src/window.c (set_net_wm_state): only set skip pager/tasklist if
the app set it, don't set it again based on semantic type.
2002-02-08 Anders Carlsson <andersca@gnu.org>
* src/theme.c (scale_and_alpha_pixbuf): If we're only
scaling horizontally or vertically, use GDK_INTERP_NEAREST.
2002-02-08 Havoc Pennington <hp@pobox.com>
* autogen.sh: unbreak
2002-02-08 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_grab_focus_window_button): grab
buttons 2 and 3 also, so you can focus a window with those,
#70840
(event_callback): fix this to let you focus a window with any
unmodified click, and also with Alt+button1
* configure.in (AC_OUTPUT): add po/Makefile.in
* autogen.sh: port to glib-gettextize, remove stupid
auto-find-subdirs crap
* Makefile.am (SUBDIRS): add po to subdirs, #70615
* src/window.c (meta_window_activate): unshaded window if shaded,
I thought this was in bugzilla but I don't see it. anyway thanks
whoever mentioned it to me.
2002-02-08 Havoc Pennington <hp@pobox.com>
* src/tools/metacity-window-demo.c (menu_items): add modal dialog test
2002-02-08 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_show): when mapping a window with
struts, invalidate the work areas it's on. Should fix at least
part of the problem with windows maximizing over panels.
* src/workspace.c (meta_workspace_invalidate_work_area): also
queue move/resize on sticky windows
* src/tools/Makefile.am: consolidate reload-theme, restart into a
"metacity-message" app and add enable/disable keybindings to the
messages it knows about.
* src/keybindings.c:
(meta_change_keygrab): grab keyboard synchronously
(meta_display_process_key_event): if all keybindings are toggled
off, ReplayKeyboard, else AsyncKeyboard, except that the debug
binding for toggling back on is always processed
(meta_set_keybindings_disabled): function to disable/enable
all keybindings
2002-02-07 Havoc Pennington <hp@pobox.com>
* src/run-metacity.sh: if DEMO_TEST is set then run the window
demo
* src/tools/metacity-window-demo.c: Create an app with all the
semantic window types, for testing and for designing themes.
2002-02-07 Havoc Pennington <hp@pobox.com>
Throughout: move to meta_topic rather than meta_verbose so
metacity.log can start being more useful
* src/util.h (enum): add more debug topics
* src/frames.c: clean up some cruft that caused warnings
2002-02-07 Havoc Pennington <hp@pobox.com>
* src/theme.c (colorize_pixbuf): do random voodoo on the algorithm
2002-02-07 Havoc Pennington <hp@pobox.com>
* src/theme.c (colorize_pixbuf): use the intensity of the gray
pixel for both saturation and value, not just value.
2002-02-07 Havoc Pennington <hp@pobox.com>
* src/theme.c (INTENSITY): don't define the macro twice
2002-02-07 Havoc Pennington <hp@pobox.com>
* src/theme.c (colorize_pixbuf): get algorithm right (use HSV/RGB
conversion) at cost of making it a lot slower. It doesn't matter
anyhow with the cache, though.
2002-02-06 Havoc Pennington <hp@pobox.com>
* src/theme.c (colorize_pixbuf): handle out-of-memory creating
target pixbuf
* src/themes/Crux/*.png: convert the green-channel images to grayscale
2002-02-06 Havoc Pennington <hp@pobox.com>
* src/prefs.c (change_notify): s/update_focus_mode/update_theme/
in case of theme key changing
2002-02-06 Havoc Pennington <hp@pobox.com>
* src/theme-viewer.c: benchmark theme on startup
* src/theme-parser.c (parse_draw_op_element): fix "colorize !=
NULL" to "colorize_spec != NULL" and free pixbuf on color spec
failure
* src/theme.c (colorize_pixbuf): minor reformatting, raise
function calls out of inner loop, clamp r/g/b values to uchar
range before assigning to uchar
(draw_op_as_pixbuf): cache the colorized pixbuf
(meta_draw_op_free): free the cache pixbuf
2002-02-07 Anders Carlsson <andersca@gnu.org>
* src/theme-parser.c: (parse_draw_op_element):
Add support for "colorize" image attribute.
* src/theme.c: (colorize_pixbuf):
New function that colorizes a pixbuf.
(pos_tokenize): Allow "\n" as a whitespace character.
(meta_draw_op_free): Free colorize_spec;
(draw_op_as_pixbuf): Colorize image if needed.
* src/theme.h: Add colorize_spec to struct.
2002-02-07 Anders Carlsson <andersca@gnu.org>
* src/themes/Crux/metacity-theme-1.xml: Add maximized and
shaded_and_maximized frame styles.
2002-02-06 Havoc Pennington <hp@pobox.com>
* src/main.c (prefs_changed_callback): redo window
sizes/appearance when the theme changes
* src/display.c (meta_display_retheme_all): new function
* src/theme-parser.c (locate_attributes): remove error handling
for MAX_ATTRS reached, add an assert instead, the way this code
ended up the attrs in the array depend on the code not the theme
file.
2002-02-06 Havoc Pennington <hp@pobox.com>
* src/main.c (main): disable custom log handler and fatal mask for
now
* src/theme.c (meta_draw_op_list_draw):
Add META_DRAW_CLIP
* src/main.c: load theme, monitor current theme setting
* src/prefs.c: add "current theme" setting
* src/stack.c (meta_stack_free): don't try to free
last_root_children_stacked if it doesn't exist
* src/themewidget.c: pluggable GtkMisc subclass to use
for menu icons
* src/screen.c (meta_screen_manage_all_windows): fix
signed/unsigned warning
* src/frames.c: port to theme system
(meta_frames_style_set): chain up
* theme-format.txt: new file
* configure.in: add more compiler warnings
* src/theme.c: add various stuff needed to get theme parser
working. Remove the "spacer" concept from FrameLayout object.
Add draw op that references a draw op list.
* configure.in: require GTK 1.3.13
* src/Makefile.am: add theme-parser.[hc], implement loading a
theme
* src/theme.c: add "draw title" and "draw window icon" operations
(meta_draw_op_draw): put object_width/object_height in expression
environment before computing x/y. Handle out-of-memory when
creating pixbufs. Assorted other cleanups.
2002-02-07 Anders Carlsson <andersca@gnu.org>
* src/themes/Crux/metacity-theme-1.xml:
Simplify things so we can remove some
now unnecessary .png files.
* src/themes/Crux/*.png: Remove some files.
2002-02-07 Anders Carlsson <andersca@gnu.org>
* src/themes/Crux/metacity-theme-1.xml
* src/themes/Crux/*.png:
Add Crux theme
2002-02-07 Kenneth Rohde Christiansen <kenneth@gnu.org>
* configure.in: add da to ALL_LINGUAS
* po/da.po: add Danish translation
2002-02-02 Havoc Pennington <hp@pobox.com>
* src/theme-viewer.c: test % operator
* src/theme.c (pos_tokenize): add % to switch for operators
* src/theme.c: rework theme stuff so we have
MetaDrawOp/MetaDrawOpList instead of MetaTextureSpec/MetaShapeSpec
2002-01-28 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_texture_spec_render): fix shadowed variable
(stupid -Wall should have that)
* src/theme-viewer.c (main): implement a simple
viewer for frame styles
* src/theme.c (meta_frame_style_get_test): create partial
frame style to test drawing
2002-01-27 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_shape_spec_draw): implement
(meta_texture_spec_draw): implement shape spec and blank
texture support
(meta_frame_style_draw): implement
2002-01-27 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_set_syncing): move in here so util.c doesn't
require display.[hc]
* src/theme.h, src/theme.c: implement coordinate expression
parser, write MetaShapeSpec declaration
* src/util.c (meta_exit): move in here so we can link
to util.c with a different main()
* src/theme.h: rename the MetaWindow* enums to MetaFrame*
2002-01-27 Peteris Krisjanis <peteris.krisjanis@ttc.lv>
* configure.in - Added lv to ALL_LINGUAS
2002-01-27 Havoc Pennington <hp@pobox.com>
* src/frames.c (get_control): Only consider the bottom of the
titlebar a resize control; I keep accidentally resizing windows
instead of activating them. Also, give south resizing priority
over north, if the window is so small the active regions overlap
* src/theme.c: add MetaTheme, get MetaFrameStyleSet into
a usable state
* src/common.h: move window type back to window.h, decided
not to use it on frame side
(MetaFrameType): add this instead
2002-01-27 Havoc Pennington <hp@pobox.com>
* src/theme.h, src/theme.c: implement all kinds of crazy
compositing-one-texture-onto-another BS.
2002-01-27 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): make the check for whether to
eat focus click a lot more complicated
* src/window.c (meta_window_same_application): new function
* src/prefs.h, src/prefs.c: add application based pref
* src/metacity.schemas: add "application_based" setting to
give me a mode to fool with being application based,
without being unusable in the meantime. Yeah the crack flows
freely these days. Everyone knew it would happen.
2002-01-27 Havoc Pennington <hp@pobox.com>
* src/frames.c: separate code to draw frame from the
expose_event handler, so in principle we can draw the
frame to a pixmap, but this isn't used yet.
2002-01-22 Hasbullah Bin Pit <sebol@ikhlas.com>
* configure.in: Added Malay (ms)to ALL_LINGUAS.
* po/ms.po: Added Malay Translation.
2002-01-19 Havoc Pennington <hp@pobox.com>
* src/wm-tester/test-resizing.c: cheesy client with static
bit gravity, used to test the below change.
* src/window.c (meta_window_move_resize_internal): implement
Owen's proposal for window resizing.
http://mail.gnome.org/archives/wm-spec-list/1999-November/msg00088.html
Currently you have to do METACITY_USE_STATIC_GRAVITY=1 in order to
use it, because some GDK bug is screwing up exposes on my frames
when it's enabled.
* src/display.c (meta_display_create_x_cursor): fix glyph for
NE/NW cursors
* src/frames.c (get_control): add ability to resize from top
* src/frame.c (meta_frame_get_flags): can't resize shaded windows
(meta_frame_sync_to_window): add gravity arg
* src/common.h (MetaWindowType): move here from window.h so
it can be used in themes stuff.
(MetaFrameFlags): remove META_FRAME_TRANSIENT since it
overlaps with window type and was unused.
2002-01-18 Havoc Pennington <hp@pobox.com>
* src/window.c (constrain_position): give priority to keeping NW
corner onscreen rather than SE, if we need to shift the window
to fit inside constraints
* src/frames.c (meta_frames_get_geometry): don't depend on the
current window size
* src/theme.c: move geometry stuff in here, to be calculated as
part of the theme
* src/core.c (meta_core_get_client_size): new function to replace
meta_core_get_frame_size() so we don't have weird cycles
in the geometry calculation
2002-01-12 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_queue_move_resize): make this actually
queue, rather than being synchronous as it was before. We'll see
what breaks. Should be more efficient and reduce flickery stuff a
bit in some cases.
2002-01-15 Havoc Pennington <hp@redhat.com>
* src/keybindings.c (handle_tab_backward): fix crash
when grab failed due to another operation in progress
(handle_tab_forward): fix crash when grab failed
2002-01-10 Havoc Pennington <hp@pobox.com>
* src/frame.c (meta_window_destroy_frame): only bump
unmaps_pending if the window was mapped
(meta_window_ensure_frame): ditto
* src/keybindings.c: change arrow key bindings to use Ctrl+Alt not
just Alt, and add debug mode key bindings
* src/stack.c (meta_stack_get_default_focus_window): don't choose
a default focus window with unmaps pending, since we probably just
unmapped it.
* src/display.c (event_callback): move notify_focus on UnmapNotify
after the window_free check, so we can move focus to another
window when we unmanage
* src/window.c (meta_window_hide): invalidate work areas when
hiding a window with struts
(meta_window_free): invalidate work areas when unmanaging a window
with struts
2002-01-09 Havoc Pennington <hp@pobox.com>
* src/window.c, src/window.h: store strut information,
update it on property changes, etc. etc. so we avoid panel
on maximize.
* src/workspace.c (meta_workspace_get_work_area): add accessor for
work area so we can compute it lazily
* src/display.h, src/display.c: add _NET_WM_STRUT atom
and _WIN_HINTS atom
2002-01-08 Havoc Pennington <hp@pobox.com>
* configure.in (ACLOCAL): add code to save ACLOCAL_FLAGS
* src/frames.c (meta_frames_expose_event): max dither
* src/testgradient.c (render_simple): change dither mode to MAX
to avoid banding
* src/theme.c: lose the gradient cache, and put in some initial
data types for the theme format
2002-01-07 Havoc Pennington <hp@redhat.com>
* src/frames.c (meta_frames_expose_event): make gradient a bit
more subtle (don't go to the full background, but to a blend of
selection and background; put lighter color on top)
2002-01-06 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_notify_focus): rearrange code a bit to
make it clear that has_focus flag always follows
display->focus_window
2002-01-06 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_notify_focus): put in attempted fix
for the GTK 1.2 plug/socket screwup, now that my fixed debug spew
reveals what's actually happening. ;-)
* src/gradient.c (meta_gradient_description_new): object
to store gradient descriptions
* src/window.c (meta_window_notify_focus): fix the debug spew
that was confusing me
* src/wm-tester/focus-window.c: add little program to focus
a window ID
2002-01-06 Havoc Pennington <hp@pobox.com>
* src/theme.c (meta_theme_get_gradient): change to use spiffy
gradient code.
* src/gradient.c: copy lovely gradient code from WindowMaker,
as usual Dan and Alfredo have very nice code
2002-01-06 Fatih Demir <kabalak@gtranslator.org>
* configure.in: Added "tr" to the languages list.
2002-01-05 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_expose_event): draw titlebar highlight
with snazzy gradient that needs some tweaking to be less
dumb-looking
* src/theme.c: replace old theme.[hc] contents with newer stuff
that doesn't do anything
2002-01-05 Havoc Pennington <hp@pobox.com>
GTK 1.2 plug/socket clients still broken, don't know why.
* src/screen.c (meta_screen_new): select focus change on root
window, for debugging
* src/display.c (event_callback): when unfocusing, use
no_focus_window to hold the focus
* src/display.h (struct _MetaDisplay): have a no_focus_window to
hold the focus when we don't want to have anything focused.
Then we can avoid confusing focusing-the-frame stuff.
* src/window.c (meta_window_notify_focus): improve some debug spew
(meta_window_notify_focus): add hack from WindowMaker to ignore
focus in events with detail > NotifyNonlinearVirtual
2002-01-04 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): don't lower docks when a grab
causes them to get LeaveNotify
2002-01-04 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_free): set event mask on root window
to 0 so other window managers (such as ourselves restarting) can
start up; addresses race condition on restart where the old WM
still had RedirectMask when the new WM was trying to start up.
* src/display.c (meta_display_close): free each screen
* src/window.c (meta_window_show): always focus new windows in
click-to-focus mode
2002-01-03 Havoc Pennington <hp@pobox.com>
* src/window.c: use meta_XFree not XFree
* src/display.h (meta_XFree): add null-safe XFree
* src/util.c (meta_warning): have message prefix indicate that
it's a warning
(meta_fatal): indicate it's an error
* src/window.c (update_sm_hints): clean up using
meta_prop_get_latin1_string
(update_role): ditto
(read_client_leader): clean up using meta_prop_get_window
(update_net_wm_type): clean up using meta_prop_get_cardinal
(update_initial_workspace): ditto
(update_net_wm_type): clean up using meta_prop_get_atom_list
(read_rgb_icon): get result from XGetWindowProperty return value
not from error trap
(update_kwm_icon): ditto
(meta_window_new): fix to read WM_STATE correctly
2002-01-03 Havoc Pennington <hp@pobox.com>
* src/window.c (update_net_wm_state): clean up using
meta_prop_get_atom_list
(update_mwm_hints): clean up using meta_prop_get_motif_hints
* src/Makefile.am (metacity_SOURCES): add xprops.[hc]
* src/xprops.c: new file with convenience functions for X
properties
2002-01-03 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_activate): focus top window when
switching to a new workspace
* src/util.c (meta_topic): start putting verbose output in
categories
* src/window.c (meta_window_shade): focus frame after we queue
the calc_showing so the maps/unmaps have already happened.
* src/display.c (meta_display_get_current_time): add the "get time
of current event" function and call it occasionally.
* src/window.c (meta_window_free): if we have focus, call
meta_screen_focus_top_window().
(meta_window_minimize): ditto
(meta_window_delete): ditto
* src/screen.c (meta_screen_ensure_tab_popup): fix memory leak -
didn't free tab list
(meta_screen_focus_top_window): new function to use when we unmap
or unmanage a focused window
* src/stack.c (meta_stack_get_default_focus_window): function used
in meta_screen_focus_top_window
2001-12-21 Havoc Pennington <hp@redhat.com>
* src/frame.c (meta_window_ensure_frame): add a server grab
here since we were failing to have one when calling the function
2001-12-27 Duarte Loreto <happyguy_pt@hotmail.com>
* configure.in: Added portuguese to ALL_LINGUAS
2001-12-16 Kjartan Maraas <kmaraas@gnome.org>
* configure.in: Added "no" to ALL_LINGUAS.
2001-12-11 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
* configure.in: Added "sk" to ALL_LINGUAS.
2001-12-10 Havoc Pennington <hp@pobox.com>
Rework the click-client-area-to-focus support to use synchronous
grabs, avoids a big mess, lets us pass through click when
required (for dock/desktop). Disadvantage is all left-button
clicks now require window manager approval. ;-)
* src/display.c (event_callback): don't focus dock/desktop when
the mouse enters them; require a click.
(meta_change_button_grab): allow sync grabs
(meta_display_grab_unfocused_window_buttons): establish a
synchronous grab and maintain it all the time, rename to
meta_display_grab_focus_window_button
* src/window.c: change to reflect display.c
2001-12-10 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_update_unfocused_button_grabs): oops,
unbreak this _again_ - reported by Josh Barrow
2001-12-10 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_update_unfocused_button_grabs): don't
allow grab on docks/desktop for now; needs fixing later to
do the grab, but pass thru click, so we can focus those windows.
And in fact we need to do that even in sloppy mode.
2001-12-10 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_foreach_window): fix broken
"tmp = tmp->data"
Implement do-not-pass-thru-click for click-to-focus mode.
* src/screen.c (update_focus_mode): when focus mode changes,
update all the window grabs
* src/display.c (meta_display_grab_unfocused_window_buttons):
implement grabbing button 1 on client area of unfocused
click-to-focus windows
* src/window.c (meta_window_update_unfocused_button_grabs): update
whether we're grabbing unmodified button 1 on client area
according to focus state and focus mode
(meta_window_new): start out with proper grab state
2001-12-10 Havoc Pennington <hp@pobox.com>
* src/menu.c (meta_window_menu_new): don't do mnemonics for
workspaces above 9
2001-12-10 Havoc Pennington <hp@pobox.com>
* src/screen.c (meta_screen_new): oops, remove extra workspace
creation, and update to current pref.
2001-12-09 Havoc Pennington <hp@pobox.com>
* src/workspace.c (meta_workspace_free): update number of
workspaces hint
* src/screen.c (update_num_workspaces): implement number of
workspaces setting
* src/window.c (meta_window_configure_request): honor configure
requests on windows of type NORMAL, but still be mean to those of
type DIALOG
* src/main.c (main): add more log domains to those we set a log
handler for, and only set warnings fatal in debug mode
* src/metacity.schemas: add number of workspaces setting
2001-12-09 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): in click-to-focus mode don't
focus on enter notify. Implement unfocusing on LeaveNotify in
mouse focus mode. Click to focus just ends up working if we
do nothing on enter/leave, because of the way things already
worked. Except I need to add some relatively complex hack to
allow clicking on client area, right now you have to click
on the frame.
2001-12-09 Havoc Pennington <hp@pobox.com>
* src/main.c (main): move SM init a bit later in the process, and
init prefs
* src/session.c: fix no SM case (though I hardly know why I'm
bothering)
* src/main.c (main): call bindtextdomain
* src/util.h (_): actually call gettext
* configure.in: put in AM_GLIB_GNU_GETTEXT and gconf stuff
* src/prefs.c: Preferences - this marks the beginning of our doom.
None of them are actually implemented yet, but we monitor
some stuff from gconf.
2001-12-07 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_unminimize): when unminimizing an app,
if we're in "show desktop" (all windows minimized) mode, leave
show desktop mode. Will occasionally be a bit weird, but allows
people to recover via task list if they accidentally do the show
desktop thing, and don't know what's going on.
2001-12-06 Havoc Pennington <hp@redhat.com>
* src/ui.c (meta_text_property_to_utf8): fix gdkatom/xatom screwup
- gee, I should read my warnings
2001-12-03 Laszlo Peter <laca@ireland.sun.com>
* src/frames.c: add a dummy element to the enum so
the signals array is not empty. (breaks the build with Forte C)
* src/window.c: s/__FUNCTION__/G_GNUC_FUNCTION/
2001-11-27 Havoc Pennington <hp@pobox.com>
* src/window.c (constrain_position): change so that window can be
offscreen to the bottom or the right, as long as a small top-left
corner of the window remains onscreen. However, windows still
can't go off the left or top.
2001-11-26 Havoc Pennington <hp@redhat.com>
* src/window.c (window_query_root_pointer): add error trap
2001-11-27 Jesus Bravo Alvarez <jba@pobox.com>
* configure.in: Added gl (Galician) to ALL_LINGUAS.
Tue Nov 20 18:49:16 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (found_sm): Add some additional quoting to
make it work with autoconf-2.5x.
2001-11-02 Laszlo Peter <laca@ireland.sun.com>
* src/window.c (update_sm_hints): protect meta_verbose from
a NULL pointer.
2001-10-29 Havoc Pennington <hp@pobox.com>
* configure.in: bump version
2001-10-29 Havoc Pennington <hp@pobox.com>
* src/window.c (idle_calc_showing): handle queue/unqueue of
calc showings as we are iterating over the pending list
(meta_window_show): focus placed transients in here instead
of in meta_window_place - now it should actually work, yay
* src/place.c (meta_window_place): remove focusing of transient
child from here; this was really broken
2001-10-29 Yuriy Syrota <rasta@renome.rovno.ua>
* configure.in: Added "uk" to ALL_LINGUAS.
2001-10-29 Havoc Pennington <hp@pobox.com>
* README: note exciting new unminimize feature for the tab popup
* src/keybindings.c (process_tab_grab): use meta_window_activate()
when choosing a window with tab popup, this should deiconify it
* src/window.c (meta_window_client_message): use
meta_window_activate for _NET_ACTIVE_WINDOW message
(meta_window_activate): new function to raise/focus/unminimize
(meta_window_flush_calc_showing): new function
(meta_window_focus): force a calc showing on focus, so that we can
focus the window if appropriate (it must be mapped)
2001-10-26 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_grab_window_buttons): fix for
ignoring NumLock on Alt-windowclick (previous NumLock fix
was only for key grabs not button grabs)
2001-10-25 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_new): set the current workspace hint
2001-10-25 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_visible_on_workspace):
I was using meta_workspace_contains_window() in a number of
places where on_all_workspaces should also have been considered,
thus this new function. Fixes bugs such as pinned windows
not appearing in the tab order.
(meta_window_client_message): use meta_window_visible_on_workspace
* src/stack.c (find_tab_forward): ditto
(find_tab_backward): ditto
(meta_stack_get_tab_next): ditto
(meta_stack_get_tab_list): ditto
* src/place.c (get_windows_on_same_workspace): ditto
* src/keybindings.c (handle_focus_previous): ditto
(handle_focus_previous): ditto
2001-10-24 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_expose_event): use bg/fg not base/text
for the window title area.
2001-10-24 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): support initial
on-all-workspaces setting
2001-10-22 Havoc Pennington <hp@pobox.com>
* src/stack.c (meta_stack_sync_to_server): fix to keep desktop
window from appearing on top of everything else, among other stack
bugs. Untested.
2001-10-15 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): use queried attributes to check
whether window should be initially maximized, rather than window
rect
2001-10-15 Havoc Pennington <hp@pobox.com>
* src/main.c (meta_restart): add a restart feature, for debugging
* src/tools/metacity-restart.c: little utility program to trigger
the restart
2001-10-14 Havoc Pennington <hp@pobox.com>
* src/frames.c (meta_frames_button_press_event): raise/focus
windows on left-click, seem to have broken that yesterday
* src/keybindings.c, src/display.c, src/window.c: add keybinding
to show/hide all normal windows (so you can see the desktop).
Currently Ctrl+Alt+D, which I don't like, but yay.
2001-10-14 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): take a window mapped at
fullscreen size/pos to desire maximization; once I add a
fullscreen state, will change to copy kwin and take this mapping
as a desire for fullscreen, but for now testing with maximization.
* src/window.h: remove fullscreen window type, now proposing it
as a window state instead.
2001-10-14 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_maximize): always raise windows on
maximize
(meta_window_client_message): when activating a window, move
it to current workspace, instead of moving user to the
window's workspace.
2001-10-14 HÃ�©ctor GarcÃ�a Ã�Âlvarez <hector@scouts-es.org>
* configure.in: Added "es" to ALL_LINGUAS for Spanish translation.
2001-10-14 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): only handle events here if
the modmask from our button grab is active. i.e. only the
Alt-click is handled here.
* src/frames.c: add check for whether button presses are in the
frame client area before handling them, so we don't weirdly let
you move a frame by clicking in its client area if the client
hasn't selected button press events.
2001-10-13 Havoc Pennington <hp@pobox.com>
* src/stack.c (meta_stack_sync_to_server): set last window before
setting newp, so we don't get the current window as the last
window and screw everything up
(IN_TAB_CHAIN): use type not layer to decide if a window is
in the tab chain, keeps panel out of alt-tab choices
2001-10-13 Havoc Pennington <hp@redhat.com>
* configure.in: add bad hack to work with GTK 1.3.9.90 RPMs from
gnomehide for now
* src/ui.c: another piece of bad hack in here
2001-10-13 Havoc Pennington <hp@redhat.com>
* configure.in: bump version
2001-10-13 Havoc Pennington <hp@pobox.com>
* src/session.c (meta_session_init): hmm, fix build
2001-10-12 Havoc Pennington <hp@pobox.com>
* src/session.c (meta_session_init): set the session manager
priority so we start up before other apps.
2001-10-12 Mikael Hallendal <micke@codefactory.se>
* src/ui.c (meta_ui_get_default_window_icon): use
gdk_pixbuf_new_from_inline
(meta_ui_get_default_mini_icon): use
gdk_pixbuf_new_from_inline
2001-10-11 Christian Rose <menthos@menthos.com>
* configure.in: Added "sv" to ALL_LINGUAS.
2001-10-10 Havoc Pennington <hp@pobox.com>
* src/stack.c (meta_stack_free): fix mem leak of the MetaStack
object
(meta_stack_sync_to_server): try to avoid the restack-flicker
thing
2001-10-07 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_update_active_window_hint):
set _NET_ACTIVE_WINDOW hint
* src/window.c (meta_window_client_message): support
_NET_ACTIVE_WINDOW client message
2001-10-07 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_client_message): don't allow
shade/maximize/minimize for windows that don't support those
operations. (minimizing the panel = bad)
2001-10-04 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (meta_change_keygrab): add code to grab all
modifier combinations, so keybindings work with NumLock etc.
* src/menu.c (meta_window_menu_new): remove newlines from menu
items
2001-09-27 Havoc Pennington <hp@pobox.com>
* src/session.c (save_state): when encoding text for session file,
escape XML entities
2001-09-21 Alex Graveley <alex@ximian.com>
* src/Makefile.am (metacity_SOURCES): Add inlinepixbufs.h so
that it gets generated.
* src/frames.c (meta_frames_style_set): Update for new opaque
PangoFontMetrics.
2001-09-17 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_ui_init): add hackaround for the warning about
gtk-menu-bar-accel
2001-09-17 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_ui_get_default_mini_icon):
(meta_ui_get_default_window_icon): ref the returned icon, oops.
* src/main.c (main): get the GLib warning/error output into
the metacity logfile, set warnings to be always fatal
* configure.in: bump version to 2.3.13
* src/window.c (get_text_property): hrm, fix bug where we didn't
check errors on XGetTextProperty
2001-09-17 Havoc Pennington <hp@pobox.com>
* src/Makefile.am (VARIABLES): fix srcdir != builddir glitch
2001-09-17 Havoc Pennington <hp@pobox.com>
* src/ui.c: use the inline image data for default icon
* src/common.h (META_MINI_ICON_HEIGHT): move icon size defines
here
* src/Makefile.am: Create an inlinepixbufs.h header with inline
images
2001-09-16 Havoc Pennington <hp@pobox.com>
* src/session.c (process_ice_messages): disconnect this callback
on error
2001-09-16 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_lower): new function
* configure.in: bump version to 2.3.8
* src/display.c (event_callback): raise dock on enter notify,
lower it on leave notify (need to refine this behavior)
* src/stack.c (compute_layer): experiment with putting the panel
in the normal layer, and raising it on mouseover
2001-09-15 Havoc Pennington <hp@pobox.com>
* src/window.c: add support for a mini icon in the titlebar
(update_icon): re-enable support for _NET_WM_ICON
* src/session.c (save_state): add an ferror check when writing
session file
2001-09-11 Havoc Pennington <hp@pobox.com>
* src/main.c (usage): exit with error code on usage() (kind of
wrong for --help, but oh well).
2001-09-11 Havoc Pennington <hp@pobox.com>
* src/window.c: fix up handling of text properties, so we
get UTF8_STRING as that type and not as text list, and so
we properly convert from text list to UTF-8
2001-09-10 Havoc Pennington <hp@pobox.com>
* src/menu.c (meta_window_menu_new): icon for unmaximize
* src/ui.c (meta_ui_init): fix call to XDisplayName
* src/util.c: add missing header
* src/frames.c: draw an unmaximize control if already maximized
2001-09-10 Havoc Pennington <hp@pobox.com>
* src/window.c: Don't separate user_has_moved/user_has_resized,
fixes bug in east-resizing Emacs, among other things
* src/frame.c (meta_frame_sync_to_window): return immediately if
nothing to do
* src/util.c (ensure_logfile): replace rather than truncate old
logfiles
2001-09-08 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_ui_init): don't use gdk_display_name
* src/frame.c (meta_window_ensure_frame): create frame
with screen default visual, rather than client window visual;
for DRI games, the client window visual was not allowed to be
a child of another window with the same visual, apparently.
Anyhow now we copy twm, etc. so it must be correct.
* src/place.c (meta_window_place): if a transient is placed and
its parent has focus, focus the transient.
2001-09-06 Havoc Pennington <hp@pobox.com>
* configure.in: bump version 2.3.5, require newer GTK release
2001-09-04 Havoc Pennington <hp@pobox.com>
* src/wm-tester/Makefile.am (noinst_PROGRAMS): make test apps
noinst
* src/metacity.desktop: for the capplet
* src/Makefile.am: add .desktop file
2001-09-01 Havoc Pennington <hp@pobox.com>
* src/errors.c: clean up the code, and replace GDK X error handler
with one that chains up to GDK but first logs the error to logfile.
2001-08-31 Havoc Pennington <hp@pobox.com>
* src/tabpopup.c (meta_ui_tab_popup_new): fix args to
gtk_alignment_new()
2001-08-29 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): avoid focusing a window on tab
popup popdown
* src/screen.c (meta_screen_ensure_tab_popup): compute frame
outline size here
2001-08-29 Havoc Pennington <hp@redhat.com>
* src/tabpopup.c: Switch back to outline.
2001-08-29 Havoc Pennington <hp@pobox.com>
* src/tabpopup.c: experiment with window-cover-with-icon
instead of just the outline; can't decide.
2001-08-29 Havoc Pennington <hp@pobox.com>
* src/tabpopup.c: add crackrock window-outlining feature
* src/session.c (window_type_to_string): handle fullscreen
2001-08-29 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): wrong atom name -
_NET_SUPPORTED not _NET_WM_SUPPORTED
* src/window.c (meta_window_configure_request): geez, why were we
honoring configure requests for width/height for normal windows.
Denied!
(meta_window_client_message): _NET_WM_MOVERESIZE support, sort of
(doesn't quite work, acts like owner_events = true?)
* src/display.c: add _NET_WM_MOVERESIZE atom
2001-08-28 Havoc Pennington <hp@pobox.com>
Unbreak tab popup a bit.
* src/stack.c (meta_stack_get_tab_list): add workspace argument
(meta_stack_get_tab_next): add workspace argument
* src/window.c: implement recording of the last user-initiated
window position, so we can magically handle moving panels around
really nicely.
* src/wm-tester/main.c (set_up_icon_windows): fix to use new GTK
API
2001-08-24 Havoc Pennington <hp@pobox.com>
* src/window.c (constrain_position): force fullscreen windows to
be at 0,0
* src/ui.c: use NULL colormap to get bitmaps, requires
very latest GTK from CVS or it will spew warnings
and not work.
* src/window.c (constrain_size): disallow larger than screen in
all cases, even if user has performed a resize operation.
(constrain_position): keep window boxed onscreen.
* src/keybindings.c (meta_display_process_key_event): revert an
earlier change that disabled global keybindings when a grab is in
effect; instead, only disable global keybindings if a _keyboard_
grab is in effect. The earlier change was just a broken
workaround, the problems it fixed should have been solved by the
addition of XGrabKeyboard() on the metacity keyboard grabs.
This should fix the problem with
pick-up-window-and-move-to-another-desktop.
2001-08-23 Havoc Pennington <hp@pobox.com>
* src/window.c (update_icon): attempt to use the mask as well as
the pixmap. Probably doesn't work so well.
* src/tabpopup.c: make this look a little nicer
2001-08-22 Havoc Pennington <hp@pobox.com>
* src/window.c (update_mwm_hints): all the MWM flag tests were
backward
2001-08-22 Havoc Pennington <hp@pobox.com>
* src/window.c (update_icon): half-ass implementation of
getting pixmap icons (WM_NORMAL_HINTS and KWM_WIN_ICON).
Ignores mask for now, with possibly ugly results for
some apps.
(read_rgb_icon): fixage
2001-08-19 Havoc Pennington <hp@pobox.com>
* src/window.c: add a "fullscreen" semantic type; if a window
requests the screen size exactly, and is undecorated, and is not a
desktop window, we consider it a fullscreen window and keep it on
top.
Totally untested.
2001-08-19 Havoc Pennington <hp@pobox.com>
* src/screen.c (set_supported_hint): we support _NET_WM_ICON
* src/wm-tester/main.c: add stuff to test _NET_WM_ICON
(but it doesn't work, so it isn't tested yet)
* src/window.c (update_icon): read _NET_WM_ICON
* src/screen.c (meta_screen_new): set the WM_ICON_SIZE hint
* src/tabpopup.c (meta_ui_tab_popup_select): remove assertion
* src/window.c (meta_window_get_icon_geometry): fix obscure
memleak
2001-08-19 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_grab_window_buttons): remove XSync,
error traps already do that
(meta_display_grab_window_buttons): implement
* src/keybindings.c:
src/display.c: wire up the tab window, it rulez!
2001-08-19 Havoc Pennington <hp@pobox.com>
* src/tabpopup.c: add prototype thingy to display windows we're
cycling through with tab. Not wired up to keybindings yet.
2001-08-18 Havoc Pennington <hp@pobox.com>
* src/effects.c (meta_effects_draw_box_animation): put an XFlush()
right after starting things moving
2001-08-18 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_configure_request):
(meta_window_move_resize_internal): Make a half-hearted
not-very-tested attempt to handle window resizes correctly with
respect to window gravity.
2001-08-18 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_get_gravity_position): hrm, I fixed
this wrong the other day. Fixes static gravity when moving
windows.
2001-08-18 Havoc Pennington <hp@pobox.com>
* src/ui.c (meta_image_window_set_position): also set the current
size. Lame hack of the day.
* src/effects.c (effects_draw_box_animation_timeout): use the
delay exposes feature to avoid the screen dirt
* src/ui.c
(meta_ui_push_delay_exposes):
(meta_ui_pop_delay_exposes): feature to let us delay redraws until
after we do server-grabbed draw-on-inferiors effects
2001-08-17 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_get_gravity_position): fix for
StaticGravity
2001-08-09 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_configure_request): Honor USPosition
even post-map. I know I'll regret this.
2001-08-07 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_open): set _NET_WM_NAME
hint as a UTF8_STRING not STRING. Patch from Anders.
2001-08-06 Havoc Pennington <hp@redhat.com>
* src/effects.c: disable opaque animations by default, current
implementation suXors.
2001-08-06 Havoc Pennington <hp@pobox.com>
* src/effects.c (meta_effects_draw_box_animation): Get start
time after we do the pixbuf from drawable, so we don't count
time spent getting pixbuf from drawable in the animation time.
2001-08-06 Havoc Pennington <hp@pobox.com>
* src/effects.c: add opaque minimize/shade feature. The wireframe
seemed kind of confusing and unclear from a UI standpoint.
I know, I know. The bloat begins here.
Also, we don't need to grab the server during opaque min/shade,
which has some nice implications.
* src/ui.c: Add features to render a window with an image in it,
and also wrap pixbuf_from_drawable
* src/effects.c (meta_effects_draw_box_animation):
modify to be smoother (at least theoretically) by
syncing to current time and "dropping frames"
as appropriate.
* src/window.c (meta_window_shade): draw animation
for shading too
2001-08-05 Anders Carlsson <andersca@gnu.org>
* src/display.h, src/display.c: Add _NET_WM_ICON_GEOMETRY atom.
* src/window.c (meta_window_calc_showing): See if the window has
an icon geometry and show a morphing animation from the window's
coordinates to the icon's coordinates.
(meta_window_get_icon_geometry): New function that fetches a
window's icon geometry.
* src/Makefile.am: Add effects.[ch].
* src/effects.c: New file with cool effects.
2001-08-03 Havoc Pennington <hp@pobox.com>
* src/keybindings.c: Add Alt + left/right arrow to
move between workspaces.
* src/screen.c (set_wm_check_hint): put property pointing back to
itself on the _WIN_SUPPORTING_WM_CHECK window.
2001-08-03 Havoc Pennington <hp@pobox.com>
* src/display.c (event_callback): push error trap around configure
of withdrawn window, fixes a crash caused by rapidly
creating/destroying a window.
* src/window.c (recalc_window_features): don't allow shading
undecorated windows.
* src/wm-tester/main.c: add a program to torture window managers.
2001-08-01 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): if a window isn't
resizeable, turn off maximize function. If min size is equal to
max size, turn off resize function.
|