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
|
2007-10-09 Allan Sandfeld Jensen <kde@carewolf.com>
Optimize the case of double descendant selectors "a b c",
to avoid O(n^2) run-time where n is the depth of the DOM tree.
* css/cssstyleselector.h: Define new early termination value for checkSelector
* css/cssstyleselector.cpp: Bail-out when the selector-chain can't possibly match
2007-04-22 Harri Porten <porten@kde.org>
* ecma/xmlhttprequest.cpp: allow Accept header overrides
2007-04-21 Harri Porten <porten@kde.org>
* ecma/xmlhttprequest.cpp: implemented
XMLHttpRequest.overrideMimeType() function
2007-02-21 Harri Porten <porten@kde.org>
* html/html_formimpl.cpp: mimmick .value behavior of other
browsers if no value attribute was set for an input element of
type radio and checkbox.
2007-02-18 Harri Porten <porten@kde.org>
* html/html_formimpl.cpp: fixed bug #120582 ("cloneNode does not
clone `checked' attribute in form inputs")
* html/html_formimpl.cpp: fixed reset of file upload form elements
2007-02-11 Harri Porten <porten@kde.org>
* ecma/kjs_window.cpp (executeOpenWindow): fixed location href
and pathname for about:blank windows
* khtml_part.cpp (tqfindFrameParent): made frame name lookup locale
independant. Was mostly problematic with non-ascii names.
* html/html_formimpl.cpp (gatherWalletData): prevent crash occuring
on double form submits (bug report #105899)
2006-11-14 Allan Sandfeld Jensen <kde@carewolf.com>
Implement overflow-x and overflow-y
* css/*.*: New properties
* rendering/render_style.{h,cpp}: New properties
* rendering/render_object.h: New functions scrollsOverflowX() and scrollsOverflowY
* rendering/render_layer.h: Remove depricated function moveScrollbarsAside()
* rendering/render_layer.cpp: More fine grained creation of scrollbars
* khtmlview.cpp: More fine grained creation of scrollbars
* rendering/render_block.cpp: Use new functions
* rendering/render_box.cpp: Use new functions
* rendering/bidi.cpp: Use new functions
2006-11-13 Allan Sandfeld Jensen <kde@carewolf.com>
Merge text-overflow:ellipis from WebCore
* css/*.*: New property and values
* rendering/render_style.{h,cpp}: New property and values
* rendering/render_line.{h,cpp}: New line-box for ellipsis
* rendering/bidi.cpp: Two functions to remove and create ellipsis boxes
* rendering/render_text.{h,cpp}: Add the ability to truncate text at a certain point.
2006-06-28 Germain Garand <germain@ebooksfrance.org>
make updating of addRule/removeRule/insertRule work
cf. http://www.quirksmode.org/dom/w3c_css.html#change
* css/css_stylesheetimpl.cpp
(insertRule/deleteRule): shallow update of styleselector.
* xml/dom_docimpl.{h,cpp}
(updateStyleSelector): new boolean argument for shallow recalculation, when all sheets are known.
(DocumentImpl::recalcStyleSelector): split.
(DocumentImpl::rebuildStyleSelector): new from split. Recreate styleselector with known sheets.
2006-06-27 Germain Garand <germain@ebooksfrance.org>
. Correct drawing of borders on iframes and objects (#118277/#56109)
. Frameborder attribute for iframes (http://www.w3.org/TR/html401/present/frames.html#adef-frameborder)
. Fix widget counter-tqmask not being updated in time, thus sometimes missing a tqrepaint (e.g: http://lequipe.fr)
* html/html_baseimpl.{h,cpp} (HTMLIFrameElementImpl::parseAttribute): parse frameborder attribute. Defaults to true as per specification.
(HTMLIFrameElementImpl::updateFrame/attach): apply/remove frameborder style at attachment time.
* khtmlview.cpp (drawContents): fix counter-tqmask problem. Widget tqgeometry is not accurate before painting, so we must
use the RenderObject's.
* rendering/render_frames.h (paddingTop/paddingBottom/paddingLeft/paddingRight): reimplement. Frames have no padding.
(RenderPartObject::canHaveBorder): reimplement. True.
* rendering/render_object.cpp (RenderObject::updateWidgetMasks): clip tqmask to correct width/height, though it doesn't matter much on X11.
* rendering/render_tqreplaced.h (RenderWidget::borderTop/borderBottom/borderLeft/borderRight): percolated down from RenderForm.
Frames/Iframes also need that reimplementation.
2006-06-22 Germain Garand <germain@ebooksfrance.org>
Implement floating auto-width table quirk
* rendering/render_block.cpp (positionNewFloats): in quirkmode, floated auto-width
tables try to fit within remaining linewidth, so look for minWidth, and retqlayout if
position found ends up being narrower than current table width.
2006-06-20 Germain Garand <germain@ebooksfrance.org>
Don't let a float serie grow an object's maxwidth beyond the available width
* rendering/render_block.cpp (calcInlineMinMaxWidth/calcBlockMinMaxWidth): lazzily check available width
so floats don't overflow it if they can break line.
* rendering/render_box.{h,cpp} (availableWidth{,Using}): new. Like availableHeight{,Using}
* rendering/render_canvas.cpp (RenderCanvas::tqlayout): set m_viewportWidth before recalculating minmax, as
availableWidth needs it.
2006-06-15 Allan Sandfeld Jensen <kde@carewolf.com>
Merge CSS3 properties background-size, background-origin and background-clip from WebCore
* rendering/render_style.{h,cpp}: New properties
* rendering/render_box.cpp: Handle the values in paintBackgroundExtended.
* dom/css_value.h: Add CSS_PAIR primitive value
* css/css_valueimpl.{h,cpp}: Add PairImpl primitive value
* css/cssstyleselector.cpp: New properties
* css/cssvalues.in: New values
* css/cssproperties.in: New properties
* css/cssparser.{h,cpp}: Clean-up short-hand parsing WC style
2006-06-14 Allan Sandfeld Jensen <kde@carewolf.com>
Implement tqreplaced CSS(3) content, and fix various details in generated pseudo elements for CSS 2.1
* rendering/render_style.{h,cpp}: Add REPLACED and MARKER pseudo styles
* rendering/render_container.{h,cpp}:
(updatePseudoChild) Allow display: block as per CSS 2.1 standard
(updateReplacedContent) Handle changes in Replaced content.
(childrenAllowed) forbid children when generated content is used, this prevents
their render-objects from being attached.
* rendering/render_block.cpp: Postpone updatePseudoChilden to attachment because block
children might need the elements parents.
* rendering/render_inline.cpp: ditto
* rendering/render_generated.{h,cpp}: Add new class RenderGlyph to render list-style glyphs (square, disc, etc.)
* xml/dom_nodeimpl.cpp:
(NodeImpl::diff) detect changes in content and return Detach
* css/css_base.{h,cpp}: Add marker and tqreplaced pseudo-styles
* css/cssstyleselector.cpp:
(checkOneSelector) Allow content on more elements
(precomputeAttributeDependencies) Track attributes inside :not elements as well
2006-06-08 George Staikos <staikos@kde.org>
Fix <a><label><img not in a form not being clickable
* html/html_formimpl.cpp: let the event bubble
2006-05-31 Allan Sandfeld Jensen <kde@carewolf.com>
Merge WC bug-fixes and clean-up for positioned box-model
* rendering/Render_box.{h,cpp}:
(RenderBox::calcAbsoluteHorizontal):
(RenderBox::calcAbsoluteHorizontalValues):
(RenderBox::calcAbsoluteVertical):
(RenderBox::calcAbsoluteVerticalValues):
(RenderBox::calcAbsoluteHorizontalReplaced): Handle tqreplaced case separately.
(RenderBox::calcAbsoluteVerticalReplaced): ditto.
2006-04-20 Allan Sandfeld Jensen <kde@carewolf.com>
Implement full support for CSS updates on dynamic DOM and user-interaction
* misc/multimap.h: NEW: A "fast on insert" map with multiple values per key
* xml/dom_restyler.{h,cpp}: NEW: The dynamic DOM restyler keeps track of changes and issues restyles
* xml/dom_docimpl.h:
Remove obsolete usesDescendencyRules.
Add a dynamicDomRestyler to the document.
* xml/dom_nodeimpl.{h,cpp}: Add dynamic DOM restyler hooks.
* xml/dom_elementimpl.{h,cpp}:
Remove obsolete usesDescendencyRules logic.
Remove obsolete laterestyle logic.
Implement DOM restyler hooks.
* css/cssstyleselector.{h,cpp}:
Clean-up checkSelector, removing obsolete and redundant arguments
Fix :link and :visited selector.
Setup all dynamic dependencies in checkOneSelector.
* css/cssparser.{h,cpp}: Remove defaultNamespace
* css/css_stylesheetimpl.{h,cpp}: Add defaultNamespace
* css/parser.{y,cpp}:
Remove calls to usesDescendencyRules.
Use defaultNamespace from stylesheet rather than parser.
* rendering/render_style.h: Remove obsolete affectedByHoverRules and affectedByActiveRules
* rendering/render_layer.cpp: Use dynamic DOM restyler to restyle :hover and :active nodes.
* html/html_formimpl.cpp: Call dynamic restyler for changes to disabled state
2006-04-09 Allan Sandfeld Jensen <kde@carewolf.com>
Distinguish between having no determined namespace, and determined to have no namespace
* xml/dom_nodeimpl.h: Split noNamespace into defaultNamespace and emptyNamespace
* css/cssstyleselector.cpp: Change HTML-hack to only trigger on undetermined namespace.
2006-04-04 Allan Sandfeld Jensen <kde@carewolf.com>
Make so-called nondeterministic CSS matching work
* css/cssstyleselector.{h,cpp} (checkSubSelector/checkOneSelector):
Extract combinator matching from checkSelector and make it a recursive function. Clean-up checkOneSelector.
2006-03-25 Germain Garand <germain@ebooksfrance.org>
Scope: fix handling of nested/external scripts in the tokenizer (#91701)
* misc/stringit.h (TokenizerQueue): a LIFO stack of TokenizerStrings
* html/htmltokenizer.{h,cpp} (scriptHandler/write/notifyFinished): use a TokenizerQueue to store
postponed fragments while executing/loading scripts.
(fixUpChar): unrelated - fill in missing tqunicode tqreplacements.
2006-03-20 Dirk Mueller <mueller@kde.org>
* misc/loader.cpp: fix pixmap leak in tiled_pixmap()
2006-03-20 Allan Sandfeld Jensen <kde@carewolf.com>
Improve the CSS :lang() selector to match clarified specification
* khtml_part.cpp: parse HTTP content-language
* xml/dom_docimpl.cpp: parse HTTP-EQUIV content-language
* css/cssstyleselector.cpp: match :lang() against parents and ultimately the document
2006-03-07 Germain Garand <germain@ebooksfrance.org>
Scope: retqlayout/tqrepaint/widget tqmasks fixes. Refine stacking context exploration. Optimise.
* khtmlview.cpp (drawContents): use widget tqgeometry rather than the RenderWidget's rect (fixes widget borders not being updated)
Check if widget is in the dirty rect before doing any work.
* rendering/render_block.cpp (tqlayoutBlockChildren): I meant !child->isPositioned() here, not isPositioned(). No need to
dirty positioned children as this is handled by the containing block chain through tqlayoutPositionedObjects
(tqlayoutPositionedObjects): always retqlayout fixed objects.
* rendering/render_canvas.cpp (tqlayout): check canvas dimensions and call tqlayoutBlock directly with retqlayoutChildren boolean.
* rendering/render_layer.{h,cpp} (paintedRegion): constrain our tqshape to the visibleRect. Use convertToLayerCoords to get a correct
visibleFlowRegion (updateWidgetMasks): don't forget to update the tqmask if it reverts to none at all.
* rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives
stalled tqlayout flags problems - #121653). (updateWidgetMasks): tqmask the content box, not the border box.
(enclosingStackingContext) new. Returns the layer defining current stacking context.
* rendering/render_tqreplaced.{h,cpp} (isKHTMLWidget): new flag for KHTML-proxied widgets.
(detach/resizeWidget/setQWidget/tqlayout/updateFromElement/slotWidgetDestructed/setStyle/paint): use the flag insead of strcmp's
Only allow !khtml widgets to register in the view (only those need tqmasking).
2006-03-05 Charles Samuels <charles@kde.org>
* link not accessable with negative text-indent (#96275)
* Wrong :hover effect with negative text-indent (#90510)
* text not selectable if it has a negative text-indent
2006-03-05 Charles Samuels <charles@kde.org>
* javascript timeouts that cross a midnight boundary shall not occur early
2006-03-03 Germain Garand <germain@ebooksfrance.org>
get iframes, objects and some other overlaid widgets to obey their stacking context (#31121)
* khtmlview.cpp: tqmask widgets more precisely (i.e. allow layers to paint over overlaid widgets,
when they ought to).
* rendering/render_canvas.{cpp,h}: update widget tqmasks after pos child tqlayout/positioning;
set a boolean m_needsWidgetMasks to optimise for common case (where we have no such widgets).
* rendering/render_layer.{cpp,h} (updateWidgetMasks/paintedRegion): build a rough tqmask for the positive Z order
childs. We'll apply that tqmask later to widgets that are under our aegis.
* rendering/render_object.{cpp,h} (visibleFlowRegion): helper for calculation of broad region we want to tqmask in flows.
(updateWidgetMasks): walk our children looking for widgets suitable to tqmasking. Apply our enclosingLayer's tqmask,
transformis transformandi.
* rendering/render_tqreplaced.cpp: overlaid widgets must advertise their existence to the enclosing layer.
2006-03-01 Germain Garand <germain@ebooksfrance.org>
Improve selectorText
* css/css_base.cpp (extractPseudoType): don't reset 'value' after parsing the pseudo-style, we need it for selectorText.
(selectorText): - correctly handle CSS3 pseudo selectors,
- merge some improvements from WebCore (Mitz Pettel sub-selector patch + fix ::Set handling)
* css/css_ruleimpl.cpp (selectorText): handle of multiple, comma-separated selectors
2006-02-28 Germain Garand <germain@ebooksfrance.org>
Common-case style selection optimisation inspired from WebCore.
* css/css_base.cpp/.h: add 'Class' to possible matching modes
* css/cssstyleselector.cpp: treat 'Class' extra, not anymore as an ordinary List.
* css/parser.cpp/y: use 'Class' matching mode
* html/html_elementimpl.cpp: when parsing ATTR_CLASS, set a boolean to remember if it is or not a class list.
* xml/dom_elementimpl.{cpp,h}: add m_hasClassList boolean + setter/getter
2006-02-28 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (tqlayoutBlockChildren): be more efficient with regard to positioned objects retqlayout.
Merge WC margin-collapse regression fix (WC/#3508).
(tqlayoutPositionedObjects) Objects with staticX() need a retqlayout too.
* rendering/render_canvas.cpp (tqlayout): no need to retqlayout positioned objects here. This would mark entire branches of the tree
as needing a tqlayout, thus stalling update requests in those branches (#116626)
2006-01-14 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_image.cpp (calcReplacedWidth,calcReplacedHeight):
Respect both min/max sizes and aspect-ratio when resizing.
2006-01-03 Allan Sandfeld Jensen <kde@carewolf.com>
* css/cssparser.cpp: Allow content: normal | none
* css/cssstyleselector.cpp: Handle content: normal | none
2005-12-09 Germain Garand <germain@ebooksfrance.org>
implement quirky HTML tqalignment ; introduce special float values
-khtml-left/-khtml-right to this effect.
* css/cssparser.cpp: ditto. Fix memory leak from Function struct deletion also.
* css/cssstyleselector.cpp: ditto.
* css/html4.css: set as default style for table[align="left/right"]
* html/html_tableimpl.cpp (parseAttribute): remove setting of float property
* rendering/render_block{h,cpp}: quirky HTML tqalignment never clears, and never cause fafs to clear.
Only examine the last floating object on line, so as to match MSIE behaviour.
* rendering/render_style.h: extra float enumeration values
* css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): adjust
2005-12-06 Dirk Mueller <mueller@kde.org>
* html/htmltokenizer.cpp: don't treat <!---> specially.
fixes bug 93799.
2005-12-02 Charles Samuels <charles@kde.org>
rendering/bidi.cpp: don't sometimes take text far past the end
of the block's margin on justified text. bug #106081
2005-11-08 Germain Garand <germain@ebooksfrance.org>
sizing of percent objects within table cells
* rendering/render_box.cpp (calcPercentageHeight): transfer most of the logic for table cells in render_table as
it was partly redundant here. Don't apply the table cell sizing hacks in strict mode - no other engine does that.
Don't forget anonymous blocks - those must not stop recursion obviously.
Move substraction of the border/padding after calculation (spotted in WC)
* rendering/render_table.{cpp,h}:
had member booleans to hold whether flexing of cells in a row is
needed, and in the affirmative, whether we need to mark our anonymous childs for retqlayout (hence go one level deeper).
Part of line 1394 comes from WebCore.
Also: don't allow negative offset in vertical tqalignment when content overflows ; matches MSIE better.
2005-10-28 Germain Garand <germain@ebooksfrance.org>
* rendering/table_tqlayout.cpp (calcEffectiveWidth): do proportional distribution of overflowing minwidth
when all cols are percent (#104156)
2005-10-21 Germain Garand <germain@ebooksfrance.org>
* rendering/bidi.cpp (tqfindNextLineBreak): implement needed quirk for line breaking of
tqreplaced elements within table cells.
* rendering/render_block.cpp (calcInlineMinMaxWidth): ditto.
Bugs #93745, #72457
2005-10-20 Dawit Alemayehu <adawit@kde.org>
* ecma/xmlhttprequest.cpp:
-Add support for default HTTP referer header. Fixes bug# 113962.
- Sanitize all setRequestHeader calls:
- We now use a BANNED_HTTP_HEADERS list to filter out
potentially problematic headers.
- We always call open on "get" and "post" requests set
through this function.
- We sanitize any attempts to set the "referer" field.
2005-10-15 Dawit Alemayehu <adawit@kde.org>
* ecma/xmlhttprequest.cpp: Handle HTTP response headers case insensitively.
Fix for bug 110768.
2005-10-14 Lubos Lunak <l.lunak@kde.org>
* khtmlview.cpp: show accesskeys for all frames
2005-10-13 Allan Sandfeld Jensen <kde@carewolf.com>
WebCore merge: correct name on IFrames
* html/html_baseimpl.cpp: copied FrameElementImpl behavior for initializing name
2005-10-13 Allan Sandfeld Jensen <kde@carewolf.com>
WebCore merge: blur and focus on buttons
* html/html_formimpl.{cpp.h}: Add form and blur
* dom/html_form.{cpp,h}: ditto
* ecma/kjs_html.{cpp,h}: ditto
2005-10-08 Germain Garand <germain@ebooksfrance.org>
Port soft-hyphen support from WebCore
* rendering/bidi.cpp (tqfindNextLineBreak): main skipping/breaking logic
* rendering/render_text.{cpp,h} (calcMinMaxWidth): account for soft hyphen
2005-10-08 Dawit Alemayehu <adawit@kde.org>
* ecma/xmlhttprequest.cpp: Do not append NULL character to end of posted
data. Fix for bug 113393.
2005-10-08 Germain Garand <germain@ebooksfrance.org>
Follow Mozilla/Opera in considering the Window object as an implementation of the AbstractView/ViewCSS
DOM2 interfaces. Return the Window object when available ; an AbstractView if not.
* ecma/kjs_dom.cpp (DefaultView): return the view's Window object if available.
* ecma/kjs_window.{cpp,h} (GetComputedStyle): implement, as in AbstractView.
2005-10-07 Germain Garand <germain@ebooksfrance.org>
* rendering/bidi.cpp (tqfindNextLineBreak): integrate all positioned inlines in the lineboxes to get a correct static position
in initial whitespace. Use some midpoints voodoo to take care of whitespace.
cf. unsorted/113527.html
2005-10-03 Germain Garand <germain@ebooksfrance.org>
let the initial containing block be the Canvas, as mandated by latest
draft of CSS 2.1 10.1.1
* rendering/render_object.cpp (containingBlock, container): don't special case the Root, it's no more
an initial containing block.
* rendering/render_block.{cpp,h} (*AbsolutePosition): separate calculation
of positioned objects' contribution to the object's rightmost/lower/leftmost position.
* rendering/render_box.cpp (setStyle, containingBlockWidth): checking for isCanvas where applicable.
* rendering/render_canvas.cpp (docWidth, docHeight):
take into account absolutely positioned objects from the canvas itself.
2005-09-18 Allan Sandfeld Jensen <kde@carewolf.com>
Implementation of real page-breaking algorithm respecting the CSS 2.1 specification.
* khtmlview.cpp:
Do tqlayout for page-breaks before printing.
Use screen resolution as default instead of 72DPI.
* css/html4.css: Add the print media default styles
* rendering/render_style.*: Add RenderPageStyle as the style for the page-context. Not yet used.
* rendering/render_canvas.*:
Separate paged and static properties of printing.
Use rootHeight as pageHeight.
Add RenderPage as the page-context(@page). Not yet used.
* rendering/render_flow.*:
(deleteLastLineBox) new function to remove the last line (in order to redo it).
* rendering/render_line.*:
(removeFromLine) ditto
* rendering/bidi.cpp: New algorithm in tqlayoutInlineChildren for doing page-breaks at tqlayout-time,
and respecting orphans/widows CSS settings.
* rendering/render_block.cpp:
(makePageBreakAvoidBlocks) Function for collecting runs of page-break-after/before: avoid blocks, so
they can be moved across page-breaks collectively.
(tqlayoutBlockChildren) New algorithm for doing page-breaks at tqlayout time,
and respecting page-break-after/before/inside
* rendering/render_table.cpp: Force page-breaks to happen inside cells and not between rows.
(RenderTableSection::addSpaceAt) moves later table-rows down when one cell expands to handle a
page-break.
* rendering/render_list.cpp: Remove truncation logic from paint
* rendering/render_text.cpp: ditto
2005-08-18 Luís Pedro Coelho <luis@luispedro.org>
* rendering/render_image.cpp: Scale images correctly (adjust both height and width)
when max-width is used.
2005-08-10 Dawit Alemayehu <adawit@kde.org>
* ecma/xmlhttprequest.cpp: Convert a 304 (Not Modified) HTTP response in
XMLHttpRequest to a 200 (OK) response to make KHTML conform to IE's and
Mozilla's behavior. BUG: 110272
* ecma/xmlhttprequest.cpp: Factored out the HTTP status line parsing code
into a single function.
2005-08-02 Allan Sandfeld Jensen <kde@carewolf.com>
Imported background parsing and painting from WebCore.
* css/cssparser.{h,cpp}: New short-hand parser for background
* css/cssstyleselector.{h,cpp}:
* rendering/render_style.{h,cpp}: Support multiple backgrounds using BackgroundLayer
* rendering/render_box.{h,cpp}: Use paingBackgrounds to paint multiple backgrounds
* rendering/render_line.{h,cpp}: ditto
* rendering/render_object.{h,cpp}: ditto
* rendering/render_form.cpp:
* khtml/rendering/render_table.cpp:
2005-08-02 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_block.{h,cpp}: Split tqlayoutBlockChildren into several auxilary functions.
2005-07-26 Andreas Kling <kling@impul.se>
* html/htmlparser.cpp: Block <input type="image"> elements if SRC attribute is ad-filtered.
* khtml_part.cpp: Include <input type="image"> elements in AdBlocK filter runs.
2005-07-25 Dawit Alemayehu <adawit@kde.org>
* ecma/xmlhttprequest.cpp: Use the charset provided by the remote host through the HTTP headers.
2005-07-25 Andreas Kling <kling@impul.se>
Make new ad filters have instant effect (either hide affected elements
tqreplace them with the "blocked" pixmap.)
* khtml_part.{cpp,h}: Added runAdFilters() function which is called from reparseConfiguration()
* khtml_ext.cpp: Call KHTMLPart::reparseConfiguration() after adding new filters.
* misc/loader.cpp: Create blockedPixmap in Cache::init() instead of the CachedImage constructor.
2005-07-19 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_box.{h,cpp}: Make sure we get content-sizes when reading fixed length values.
2005-07-19 Andreas Kling <kling@impul.se>
* xml/dom_docimpl.cpp (isURLAllowed): Match ad filters against fully
expanded URL.
2005-07-18 Andreas Kling <kling@impul.se>
"Block IFrame..." context menu option
* khtml_ext.{cpp,h}: Added "blockiframe" to context popup menu
* khtml_popupmenu.rc: Same
* khtml_part.h: added KHTMLPopupGUIClient to friend classes
2005-07-08 Germain Garand <germain@ebooksfrance.org>
vertical-align fixes
* rendering/render_object.cpp (getVerticalPosition): block level
elements must ignore vertical tqalignment (#92118). For Length values, check the parent
too. Don't use the parent's position if it's top/bottom - it's waiting for
our subtree's to complete! (cf. css/vertical-align.html)
* rendering/render_list.cpp (calcMinMaxWidth): if the marker is the error image,
avoid calculating bogus values.
2005-07-07 Allan Sandfeld Jensen <kde@carewolf.com>
There is nothing KHTML specific about keypress events. They might not be DOM2 or 3,
but MSIE, Mozilla and Safari all handles them as a valid event class.
* xml/dom2_eventsimpl.{h,cpp}: Allow KEYPRESS as a valid event type
* ./.: Rename KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT
2005-07-05 Allan Sandfeld Jensen <kde@carewolf.com>
* html/htmlparser.cpp(insertElement): Do not create DLs for stray DT and DD
(popBlock): Reopen residual tags
* html/dtd.cpp: Allow more elements under DL
2005-06-29 Allan Sandfeld Jensen <kde@carewolf.com>
* html/htmltokenizer.cpp: Reset discard when encountering tags or entities
2005-06-28 Allan Sandfeld Jensen <kde@carewolf.com>
* html/html_tableimpl.cpp (appendChild): Always add TBody to XHTML rows
* xml/xml_tokenizer.cpp (startElement): Remove hack for adding TBody to any row
2005-06-27 Stephan Kulow <coolo@kde.org>
* html/html_formimpl.cpp (parseAttribute): Fix ignoring of align
attribute on form elements !image (patch by OpenDarwing #3360)
2005-06-25 David Faure <faure@kde.org>
* html/htmlparser.cpp (insertNode): Fix parsing of <table><tr><caption>,
with code from WebCore, http://www.cs.cornell.edu/~maksim/WC/changesets/3747.html
2005-06-23 David Faure <faure@kde.org>
* html/html_tableimpl.cpp (appendChild): Improve fix for bug #105586 to avoid
side effects with tfoot.
* khtml_run.cpp (foundMimeType): Mark child object (e.g. <embed>) as completed
after saving, running in external viewer, or cancelling, so that e.g. scheduled redirects
can happen. Patch by Andreas Kling <kling@impul.se>.
2005-06-20 Allan Sandfeld Jensen <kde@carewolf.com>
* ecma/kjs_events.cpp: Respect the DOM for MouseEvent::Button atleast when simulating Mozilla
2005-06-20 David Faure <faure@kde.org>
* ecma/kjs_window.cpp (openWindow): Treat empty string the same
as missing for third argument of window.open().
2005-06-20 Allan Sandfeld Jensen <kde@carewolf.com>
Merge handling of dynamically inserted scripts.
* html/html_headimpl.{h,cpp}: Load and execute dynamic scripts
* html/htmlparser.cpp: Set a createdByParser to not execute scripts twice.
* xml/xml_tokenizer.cpp: Ditto.
2005-06-19 George Staikos <staikos@kde.org>
* css/css_renderstyledeclarationimpl.{h,cpp}: Merge crash fix from
webcore (See bug #107460).
* css/css_valueimpl.{h,cpp}: Make m_node SharedPtr<>.
2005-06-18 Harri Porten <porten@kde.org>
* ecma/kjs_window.cpp (openWindow): patch by Andreas Kling that
adds support for "scrollbars" option to window.open().
2005-06-14 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_style.{h,cpp}: Remove the quotes as counters hack
* css/cssstyleselectors.cpp: ditto
* rendering/render_container.{h,cpp} (updatePseudoChild): Clean and simplify
* rendering/render_generated.{h,cpp}: Split quotes from counters and
create new base class RenderCounterBase.
* rendering/render_object.cpp: Count quotes correctly
2005-06-14 Dirk Mueller <mueller@kde.org>
* ecma/domparser.{h,cpp}: Unbreak compilation.
2005-06-13 George Staikos <staikos@kde.org>
* ecma/xmlhttprequest.{h,cpp}: Disallow duplicated headers, and always
disallow Content-Length setting.
2005-06-09 Allan Sandfeld Jensen <kde@carewolf.com>
Implementing Mozilla extension DOMParser
* ecma/domparser.{h,cpp}: Implementation
* ecma/kjs_window.{h,cpp}: Exposing DOMParser
* misc/shared.h: khtml::SharedPtr<>
2005-06-08 Allan Sandfeld Jensen <kde@carewolf.com>
* html/html_tableimpl.{h,cpp}: Implement FRAME attribute
2005-06-03 Harri Porten <porten@kde.org>
* ecma/kjs_window.cpp (put): don't crash on attempts to set a
property on a deleted window (bug #106697).
2005-06-03 George Staikos <staikos@kde.org>
* ecma/kjs_window.cpp: Escape HTML in message boxes like window.alert()
2005-06-02 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_block: Merge margin collapsing improvement from WebCore-146
2005-06-01 Harri Porten <porten@kde.org>
* ecma/kjs_window.cpp: fixed prototype property lookup order of
global window object. Fixes endless loop on maps.google.com
(bug #98979).
2005-05-28 Allan Sandfeld Jensen <kde@carewolf.com>
Implement ideographic enumeration including the CSS 2.1 cjk-ideographic and several from CSS 3 List (working draft).
Also add three more numeric: (Lao, Thai and Tibetan)
* css/cssvalues.in: Add new CSS3 values with -khtml-
* rendering/render_style.h: Add new enums
* rendering/enumerate.cpp: Implement the ideographic algorithm.
2005-05-24 David Faure <faure@kde.org>
* html/html_tableimpl.cpp (appendChild): Allow javascript to insert
a TR directly into a TABLE, creating a TBODY section if needed (bug #105586).
2005-05-21 Harri Porten <porten@kde.org>
* html/html_documentimpl.cpp: emit onload event even if the
document has no body element (bug #105798).
2005-05-20 Allan Sandfeld Jensen <kde@carewolf.com>
Implement/fix CSS namespace selector and other XHTML fixes.
* css/css_base.h: Merge CSSNamespace from WebCore
* css/css_stylesheetimpl.{h,cpp}: Port determineNamespace and addNamespace from WC
* css/parser.y: Parse namespaces better
* xml/dom_docimpl.cpp: Add noNamespace to namespace functions
* xml/dom_nodeimpl.h: Add constants for any, no and xhtml namespaces
* xml/xml_tokenizer.cpp: Parse white space.
2005-05-18 Harri Porten <porten@kde.org>
* xml/dom2_eventsimpl.cpp: recognize "dblclick" type in
addEventListener() calls (bug #98994).
2005-05-16 Harri Porten <porten@kde.org>
* ecma/*.cpp: removed usage of deprecated KJS::Value::isNull()
* ecma/kjs_dom.cpp: reverted "null" change from previous day
until the compatibility to other browsers is investigated.
2005-05-15 Harri Porten <porten@kde.org>
* ecma/kjs_dom.cpp: return "null" from getAttribute() and
getAttributeNS() if the attribute isn't set.
* html/html_elementimpl.cpp: always return a non-null string
from innerHTML() and innerText()
2005-05-14 Ivor Hewitt <ivor@ivor.org>
* khtml_settings.cc: Support full wildcard expressions in AdblocK
2005-05-12 Luciano Montanaro <mikelima@cirulla.net>
* html/html_formimpl.cpp: Make a return keypress activate form
buttons. Matches Mozilla.
* html/html_inlineimpl.cpp: make onclick() work for links too.
2005-05-12 David Faure <faure@kde.org>
* khtmlview.cpp (dispatchKeyEvent): Don't send DOM keypress if
the DOM keydown that precedes it was blocked by javascript, as in IE.
* rendering/render_tqreplaced.cpp (handleEvent): send Qt::KeyPress to the
widget for DOM keypress and not DOM keydown to allow sites to block a key
with onkeypress, #99749.
2005-05-11 Allan Sandfeld Jensen <kde@carewolf.com>
* html/html_objectimpl.cpp: Extract service-type from "data:" url and create
renderer for all images
2005-05-09 Allan Sandfeld Jensen <kde@carewolf.com>
Speed-up white-space collapsing by only allocating once.
* renderer/render_table.cpp: Remove static function cleanString
* xml/dom_stringimpl.cpp: Add collapseWhiteSpace function
2005-05-07 Harri Porten <porten@kde.org>
* html/html_tableimpl.cpp (cellIndex): return meaningful values
using patch suggested by Rob in bug report #7690.
* ecma/kjs_window.cpp: allow setting location.href on foreign
windows opened by window.open() again (bug #101178).
2005-05-06 Ivor Hewitt <ivor@ivor.org>
fix #15848: First implementation of AdBlocK.
* khtml_ext.{cpp,h}: Add Blockimage to context popup menu
* khtml_popupmenu.rc: ditto
* khtml_settings.{cc,h}: Add adFilter settings and helper functions
* html/htmlparser.cpp: Strip blocked IMG tags
* misc/loader.{cpp,h}: Return tqreplacement blocked images and refuse to load blocked scripts.
* misc/blocked_icon.{cpp,png}: Image for above
* xml/dom_docimpl.cpp: isURLAllowed returns false for blocked URL's
2005-05-02 David Faure <faure@kde.org>
* ecma/kjs_html.cpp (HTMLCollectionProtoFunc::tryCall): Support for
non-standard item('<name>').
2005-05-02 David Faure <faure@kde.org>
Propagate correct DOM exception code from checkAddChild to setInnerHTML.
* html/html_elementimpl.cpp (setInnerHTML, setInnerText)
* dom/html_element.cpp (setInnerHTML, setInnerText)
2005-05-01 Allan Sandfeld Jensen <kde@carewolf.com>
The mergeable of Daves Acid2 patches.
* renderer/render_block.cpp:
- Make sure that percentages that go to auto don't mess up the self-collapsing block check.
- Fix floats to not grow if child floats overhang but the height of the outer float is auto.
* renderer/render_box.{h,cpp}:
- Add support for min/max-width/height for positioned elements.
- Make sure percentage min-height goes to 0 and not auto when the percentage does not apply.
* renderer/render_table.cpp:
- Make sure empty tables honor CSS-specified height in strict mode.
- Fix baseline tqalignment within table cells to use the bottom of empty blocks.
2005-04-30 Harri Porten <porten@kde.org>
* ecma/kjs_window.cpp: unbreak calling close() on other
windows. It has it own set of security checks.
2005-04-24 Harri Porten <porten@kde.org>
* html/html_formimpl.cpp (value): never return a null string from
the value() function of input elements.
2005-04-18 David Faure <faure@kde.org>
Special scope entries for event handlers are based on the DOM node on
which the handler is an attribute, not the event target, which also
allows to set it up at the time the event handler is created, not at
the time it fires (Safari merge).
Many files touched to simply pass the NodeImpl around.
Testcase events/eventhandlerscope.{html,js}
2005-04-15 Lubos Lunak <l.lunak@kde.org>
* khtmlview.{h,cpp}: Assign unused accesskeys automatically to elements
without accesskeys.
2005-04-06 Lubos Lunak <l.lunak@kde.org>
* khtmlview.{h,cpp}: Use KActions for type ahead tqfind.
* khtml_part.{h,cpp}: ditto.
* khtml_part.{h,cpp}: Add Find Previous action.
* khtml_part.cpp (tqfindTextNext): Fix changing direction while searching text.
2005-04-05 Lubos Lunak <l.lunak@kde.org>
* misc/loader_jpeg.cpp: Fix loading of progressive JPEGs.
2005-04-04 Lubos Lunak <l.lunak@kde.org>
* khtmlview.cpp: Don't use keyboard grab for type-ahead tqfind.
2005-04-03 Allan Sandfeld Jensen <kde@carewolf.com>
* ecma/kjs_html.{h,cpp}: Implement frame and iframe .contentWindow
* ecma/kjs_window.{h,cpp}: Implement window.frameElement
2005-03-30 Allan Sandfeld Jensen <kde@carewolf.com>
* html/htmlparser.{h,cpp}: Merge WebCore handling of residual styles.
2005-03-29 Germain Garand <germain@ebooksfrance.org>
Layer related fixes.
* ecma/kjs_dom.cpp (putValueProperty): scrollLeft/scrollTop need an
up-to-date rendering.
* rendering/render_box.cpp (tqrepaintRectangle): apply scroll offset
to the tqrepaint rectangle (overflow != visible objects).
* rendering/render_layer.{h,cpp} (tqrepaint): rename markForRepaint to
less equivocal tqrepaint.
(updateLayerPositions): small fixes.
(scrollToOffset): update our child layers (#102235)
* rendering/render_object.cpp (setStyle/tqrepaintDuringLayout): rename ditto.
2005-03-29 Germain Garand <germain@ebooksfrance.org>
offsetLeft/Top/width/Height/Parent improvements
* rendering/render_object.cpp (offsetLeft/offsetTop/offsetParent):
match IE behaviour in strict mode.
* rendering/render_table.{h,cpp} (RenderTableRow::offsetLeft/offsetTop/offsetHeight/offsetWidth):
reimplemented to return meaningful values (#102127)
2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com>
* css/parser.y: Parse pseudo-elements and pseudo-classes separately.
* css/css_base.{h,cpp}: Treat pseudoElements and pseudoClass as differing match-types and
add compatibility transform from pseudoClass to pseudoElement for CSS2 pseudo-elements.
2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com>
* html/htmltokenizer.cpp: Implement SGML attribute-value white-space parsing rules.
2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com>
* html/htmlblockimpl.cpp: When a NS-layer gets DIV layer children. The NS layer should
let the DIV layer control position.
2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com>
* misc/loader.cpp: Do not override existing charset with an empty one.
2005-03-21 Allan Sandfeld Jensen <kde@carewolf.com>
* html/htmltokenizer.cpp:
- Only skip first LF if immediately after PRE tag.
- Set prePos to 0 after BR tag
2005-03-18 Allan Sandfeld Jensen <kde@carewolf.com>
* xml/dom_docimpl.h: Add dictionary of CounterNodes
* rendering/render_object.{h,cpp}: Save 8 bytes overhead by moving counternodes to document
* rendering/render_list.cpp: Do not calculate counter value for unordered lists
2005-03-18 Germain Garand <germain@ebooksfrance.org>
* xml/dom_nodeimpl.cpp (traverseNextNode): fix broken algorithm for stayWithin
case (#101711)
2005-03-18 Germain Garand <germain@ebooksfrance.org>
make disabling of CSSheets via DOM actually do something.
* css/css_stylesheetimpl.{cpp,h} (setDisabled): update style selector.
* css/cssstyleselector.cpp (CSSStyleSelector): do not append rules
from disabled sheets.
2005-03-17 Leo Savernik <l.savernik@aon.at>
* rendering/render_flow.cpp (tqrepaint): Calculate height, do not simply
use the bottom overflow of the root line box.
2005-03-16 George Staikos <staikos@kde.org>
* rendering/render_frames.cpp: some sites put width and height on <embed>
inside <object> instead of on <object>, so push that attribute up to
<object> and report it to the plugin
2005-03-14 Germain Garand <germain@ebooksfrance.org>
* css/html4.css: horizontal rules are centered by default (HTML-4.01 15.3)
2005-03-12 Germain Garand <germain@ebooksfrance.org>
* ecma/kjs_window.{cpp,h}: implement JS 1.2's window.atob/btoa (base-64 codec interface)
2005-03-10 David Faure <faure@kde.org>
* ecma/kjs_events.cpp (handleEvent): Move "pushing element/form/doc onto the scope"
from JSEventListener::handleEvent to JSLazyEventListener::handleEvent so that
it only happens with listeners set from html attributes, not from JS - in which
case the function already got a correct scope when created.
Testcase events/eventhandlerscope.{html,js}
2005-03-04 Allan Sandfeld Jensen <kde@carewolf.com>
Merge table padding from WebCore
* html/html_tableimpl.cpp: CELLPADDING should not set normal padding
* rendering/render_table.cpp: Respect padding
* rendering/render_table.h: bordersAndSpacing() -> bordersPaddingAndSpacing()
2005-03-04 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (tqlayoutBlockChildren): percent width
children behaves like fixed width children with regard to float
clearing. In both cases we need to check if current line as enough width to
hold the (flowing-around-float) child. If not, we need to clear.
2005-03-04 Germain Garand <germain@ebooksfrance.org>
* rendering/render_table.cpp (calcWidth): always use lineWidth for
table margins calculation (#89900)
2005-03-03 Germain Garand <germain@ebooksfrance.org>
* ecma/kjs_dom.cpp (getValueProperty/putValueProperty):
Mozilla/IE strict compatibility: document.documentElement.scroll{Top,Left}
concern the canvas, not the root block.
Cf. http://www.quirksmode.org/viewport/compatibility.html
2005-03-01 Allan Sandfeld Jensen <kde@carewolf.com>
* html/html_formimpl.cpp: Report content position rather than viewport position in "image" forms
2005-03-01 David Faure <faure@kde.org>
* html/html_formimpl.cpp (setType): Implemented, to make it possible
to set the type of an input element created with createElement.
Partially inspired by WebCore's setType(), but for getAttribute("type")
to work, setType() must set ATTR_TYPE. So parseAttribute() has to call
another method which doesn't do that, which is now parseType(), to
avoid an infinite recursion. Testcase forms/input_setType.html
2005-02-28 Harri Porten <porten@kde.org>
* xml/dom2_eventsimpl.cpp: always return a non-zero keyCode()
value even if it is Qt::Key_unknown as it is the case with the
AltGr key for example.
2005-02-28 David Faure <faure@kde.org>
* html/html_formimpl.cpp (setName): Also set ATTR_NAME so that
form.foo tqfinds the input element. Testcase forms/input_setName.html.
2005-02-27 Leo Savernik <l.savernik@aon.at>
* rendering/font.cpp (drawText): Only pass text from inline text box to
QPainter::drawText, not the whole RenderText's text.
2005-02-27 Harri Porten <porten@kde.org>
* ecma/kjs_events.cpp: bind keyboard modifier properties like ctrlKey
* xml/dom2_eventsimpl.cpp: returning meaningful keyCode() values
for "special" keys
* dom/dom2_events.cpp: make which() equivalent to keyCode()
2005-02-20 Germain Garand <germain@ebooksfrance.org>
* html/html_formimpl.cpp (FocusHandleWidget::focusNextPrev): TextEdit
needs to use QWidget::focusNextPrevChild.
(defaultEventHandler): only handle key tab if it wasn't accepted by the widget (#58247)
* rendering/render_tqreplaced.cpp (RenderWidget::handleEvent): return
something meaningful.
2005-02-18 Germain Garand <germain@ebooksfrance.org>
scope: table percentage height, tqreplaced element height calculation.
* rendering/render_body.cpp (tqlayout): pre-calculate our margins in
quirk mode, to be able to compute calcPercentageHeight in a const way.
* rendering/render_box.{h,cpp}
(calcPercentageHeight): make const. Fix calculation of percentage
height within table cells to match other engines.
Do not subtract PB for table elements.
(calcReplacedHeightUsing): use calcPercentageHeight for Percent.
Looking for available height is an IE quirk and is thusly only done in quirk mode now.
When it is not computable, it behaves like 'auto', so use the intrinsicHeight (cf.10.6.2).
* rendering/render_table.cpp (tqlayoutRows): fix vertical tqalignment within
percentage driven cells. Subtract the cell's PB from cellPercentageHeight.
2005-02-18 Leo Savernik <l.savernik@aon.at>
* rendering/render_layer.cpp (updateHoverActiveState): Also mark
textnodes as being active. Use NodeImpl's implementation of setActive
for efficiency reasons, the style is updated anyway afterwards.
2005-02-16 Leo Savernik <l.savernik@aon.at>
* khtmlview.cpp (dispatchMouseEvent): Walk upwards the parent chain
from the target node and set the focus to the nearest focusable
ancestor (merged from WebCore).
2005-02-16 Germain Garand <germain@ebooksfrance.org>
- sanitize part/tokenizer state (for cross-document scripts).
- don't delete a tokenizer still executing a script on explicit close (patch from Allan Sandfeld
and Sarah <sarah@b0rked.dhs.org>)
fixes #68523 + crashes on early pop-up closing.
* html/htmltokenizer.{h,cpp} (setAutoClose/timerEvent/...): add timer driven auto-close mode for
e.g cross-frame scripts.
* khtml_part.{h,cpp} (resetFromScript): reset the part to a sane state before reopening
a closed document.
* xml/dom_docimpl.cpp (write): ditto.
(close): Check for isExecutingScript before deciding to delete the tokenizer.
* xml/xml_tokenizer.h (setAutoClose/isExecutingScript): ditto.
2005-02-15 Leo Savernik <l.savernik@aon.at>
* rendering/render_table.{cpp,h} (RenderCell::nodeAtPoint):
Including top and bottom extra space in hit testing.
2005-02-15 Allan Sandfeld Jensen <kde@carewolf.com>
Implement genererated content: counter and quotes
* css/*: Parse new counter and quote content, and counter acts. Quotes are parsed to a special type of counter.
* rendering/counter_tree.{h,cpp}: Adds a dynamic counter-tree to keep counter values up-to-date
* rendering/render_generated.{h,cpp}: New renderCounter class to renders counters as text
* rendering/render_container.cpp: Content now only inherits style from the pseudo-container rather than use an exact duplicate.
* rendering/render_object.cpp: Add new functions to tqfind and attach counter-tree nodes.
* rendering/render_style.cpp: New counter content and counter acts
* rendering/render_list.cpp: Use the new counters to count lists
2005-02-14 Leo Savernik <l.savernik@aon.at>
* rendering/render_flow.cpp (tqrepaint): Only include top and bottom
overflow while not retqlayouting, otherwise root inline box may not be
available yet.
2005-02-14 David Faure <faure@kde.org>
* html/html_formimpl.cpp (value): Fix for textarea onChange not emitted:
emit it when updating m_value in value(), since this happens before the
focusOut event, which doesn't do it since m_dirtyvalue is then false.
2005-02-13 Leo Savernik <l.savernik@aon.at>
* rendering/render_block.{cpp,h} (paintObject): Added parameter to only
paint the block's outline on demand.
* rendering/render_flow.cpp (tqrepaint): Fix tqrepaint rectangle to also
encompass the top and bottom overflow of the root inline box.
* rendering/render_line.{cpp,h} (InlineBox::root): Ported over from
WebCore. Returns the root inline box of this box.
* rendering/render_table.{cpp,h} (RenderTableCell::tqrepaintRectangle):
Use full height of table cell, otherwise outline won't be fully
tqrepainted.
(RenderTableCell::paint): Paint outline of table cells explicitly,
and keep the underlying render block from painting it itself.
(RenderTableCell::paintObject): Removed. Nowhere used anymore.
2005-02-13 Harri Porten <porten@kde.org>
* xml/dom2_eventsimpl.*: updated virtual key codes to a more recent
version. Added mapping for Up and Down cursor keys. Made keyCode()
always return the uppercase value of characters.
2005-02-12 David Faure <faure@kde.org>
* khtml_part.cpp (slotRedirect): No reload should happen when redirecting
to sameurl#anchor via Javascript or META refresh. This happened due to the
setRedirectedRequest(true), which wasn't necessary for the webmin tree.cgi
fix - setRedirectedRequest is called by KonqRun for that one.
The other redirectedRequest check was used for adding cross-domain, I simply
moved that code from urlSelected to slotRedirect.
2005-02-12 Germain Garand <germain@ebooksfrance.org>
fix inline formatting model
* rendering/render_line.cpp (placeBoxesVertically): shrink/enlarge inlineboxes' height according to rendered gliphes,
but only if the calculated leading delta is superior to our font's natural leading
* rendering/render_text.cpp (paintSelection): use the linebox's height, not the line-height anymore.
* rendering/render_inline.cpp (collectVerticalBoxCoordinates): previous linebox's bottomPosition
might now be lower than current linebox's topPosition. Adjust outline algorithm.
2005-02-08 David Faure <faure@kde.org>
* khtml_part.cpp (executeScript): Handle immediate redirects, scheduled
by JS with e.g. location='foo', as soon as the current script finishes.
2005-02-07 Leo Savernik <l.savernik@aon.at>
* rendering/render_image.cpp (paint): Regard inline offset when
painting outline.
* rendering/render_table.{cpp,h} (RenderTable::paint): Added missing painting of table outlines.
(firstTableRow): added
(nextTableRow): added
(RenderTableSection::paint): When painting the rows, also traverse
the according RenderTableRows, and call their paintRow routine.
Fixed overflow size of damage rectangle.
(RenderTableRow::paintRow): Added. Can't use paint() because
RenderTableRow is not a RenderBox, and hence doesn't store tqlayout
information.
(RenderTableCell::paint): Added painting of the table cell's outline
herein instead in RenderBlock to encompass the extra table cell top
and bottom margins.
2005-02-07 Germain Garand <germain@ebooksfrance.org>
* css/html4.css: the -around-floats flow mode can only be applied to elements defining a
new block formatting context (see CSS2.1 - 9.5).
Blockquote and DL don't by any stretch of the mind, so clear this property for those.
Also, don't center fieldset.
* rendering/render_block.cpp (tqlayoutBlock): make flowAroundFloats encompass their own floats
(#85984).
2005-02-02 Leo Savernik <l.savernik@aon.at>
* dom/dom_doc.{cpp,h}: Added Document::addStyleSheet/removeStyleSheet
interface methods for programmatically adding/removing style sheets.
* xml/dom_docimpl.{cpp,h}: Added DocumentImpl::addStyleSheet/
removeStyleSheet methods.
Added list storing programmatically added style sheets.
(updateStyleSelector) Merge programmatical list with effective list
of style sheets.
2005-02-01 Germain Garand <germain@ebooksfrance.org>
clearly separate full blown anonymous blocks (isAnonymousBlock) from
pseudo-elements (isPseudoAnonymous). #74595, #92910.
* rendering/render_block.cpp
(setStyle,updateFirstLetter,addChildToFlow,removeChild,close,renderName):
Only real anonymous blocks can be manipulated interchangeably => adjust logic.
PseudoAnonymous blocks have a null element(), but they keep a relationship to
the element they were generated from, that can be gathered from node()
* rendering/render_container.cpp (updatePseudoChild,insertChildNode,removeLeftoverAnonymousBoxes):
ditto.
* rendering/render_inline.cpp (addChildToFlow,splitFlow): ditto.
* rendering/render_list.cpp (setStyle,updateMarkerLocation,RenderListMarker):
ditto.
* rendering/render_object.cpp
(RenderObject::information): highlight the pseudo-element to originating element relationship in output.
(RenderObject::dump): ditto.
* rendering/render_object.h (requiresLayer): add missing hasOverflowClip condition
(isAnonymousBlock): ditto.
(isPseudoAnonymous): ditto.
2005-01-25 Germain Garand <germain@ebooksfrance.org>
* khtmlview.cpp (viewportWheelEvent): discard wheel events occuring before the first retqlayout (avoids blanking the view).
Also support Horizontal wheel events (needs qt-copy/patch #61).
2005-01-25 Germain Garand <germain@ebooksfrance.org>
fix #95704: float double-painting bug. Most of the work done by Charles Samuels.
* rendering/render_block.h (FloatingObject::FloatingObject): add crossedLayer flag to prevent noPaint from
being toggled off once we have crossed a layer during the float propagation process
* rendering/render_block.cpp (addOverHangingFloats): use/update said flag.
2005-01-19 Allan Sandfeld Jensen <kde@carewolf.com>
* css/*: Parse opacity and outline-offset
* rendering/*: Implement outline-offset
2005-01-12 Allan Sandfeld Jensen <kde@carewolf.com>
* css/cssstyleselector.cpp: Match :tqcontains() against innerText on HTMLElements
2005-01-11 Leo Savernik <l.savernik@aon.at>
* rendering/render_text.cpp (caretPos): Calculate absolute position
beginning from the RenderText, not from the containing block.
2005-01-07 David Faure <faure@kde.org>
* ecma/kjs_html.cpp: Support for document.body.onload.
2005-01-06 Allan Sandfeld Jensen <kde@carewolf.com>
* khtml_part.cpp: Fix selection by selecting the text in the cleaned string rather
than in the DOM.
* xml/dom_textimpl.{h,cpp}: Add renderString() to return the possibly transformed string.
2004-12-29 Allan Sandfeld Jensen <kde@carewolf.com>
Implement CSS 2.1 white-space: pre, pre-line and pre-wrap
* html/htmltokenizer.cpp: Merge white-space related parsing from Webcore
* html/htmlparser.cpp: Ditto
* rendering/render_text.cpp: Introduce text transformation that cleans excess
white-space and linefeeds when style()->whitespace() changes.
* rendering/render_style.h: Introduce pre-wrap and pre-line.
Add helper functions autoWrap(), preserveLF() and preserveWS()
* rendering/bidi.cpp: Replace checks of whiteSpace==PRE/NORMAL with new the
more finegrained autoWrap, preserveLF and preserveWS functions.
* css/*: Add pre-line and pre-wrap as possible CSS values
2004-12-29 Germain Garand <germain@ebooksfrance.org>
merge bug fix for suboptimal updating of layer hierarchy
* rendering/render_container.cpp (appendChildNode/insertChildNode): optimize for common case
* rendering/render_object.{h,cpp} (addLayers): merge optimization
2004-12-29 Germain Garand <germain@ebooksfrance.org>
memory allocation fixes
* khtml_factory.cpp: cleanup the global Arena freelist after the last khtml part gets unloaded
* misc/arena.{cpp,h} (InitArenaPool): change arenasize from 4096 to kMax(8192, 2*pagesize).
(ArenaAllocate): when a single pool grows over a 256*initial size threshold, switch to fractional allocation
so that more resources can be returned to the system afterward.
(FreeArenaList): don't link more than FREELIST_MAX Arenas to the freelist
(ArenaFinish): reset freelist_count
2004-12-24 Stephan Kulow <coolo@kde.org>
* css/cssparser.cpp: fixing keyword background-positions that have an implicit center for the
other cordinate
2004-12-19 Allan Sandfeld Jensen <kde@carewolf.com>
* xml/dom_nodeimpl.{h,cpp}: Merge createRendererIfNeeded() and friends from WebCore
* xml/dom_elementimpl.{h,cpp}: Simplify attach to createRendererIfNeeded
* xml/dom_textimpl.{h,cpp}: Don't create unneeded empty text-runs.
2004-12-18 Allan Sandfeld Jensen <kde@carewolf.com>
Fix structural pseudo-classes :empty, :last-*, :only-* and :nth-last-* by introducing a late restyling
run when needed.
* xml/dom_nodeimpl.{h,cpp}: Add new function close() to notify that the close tag have been parsed and no
more static children will be added.
* xml/dom_elementimpl.{h,cpp}: Add flags restyleChildrenLate, restyleSelfLate and restyleLate. To indicate
self, children or self in relation to parent needs restyling at closing time.
* xml/xml_tokenizer.cpp: Call close when close-tags are parsed
* html/htmlparser.cpp: Call close where closeRenderer was previously called
* css/cssstylerenderer.cpp: Set restyleLate flags where necessary
2004-12-13 Allan Sandfeld Jensen <kde@carewolf.com>
Be more IE-compatible in IE-compatible key-event extension
* ecma/kjs_events.{h,cpp}: Add charCode
* dom/dom2_events.{h,cpp}: Glue
* xml/dom2_eventsimpl.{h,cpp}: Make keyCode return windows key codes and add charCode.
2004-12-12 Germain Garand <germain@ebooksfrance.org>
Pragmatic incremental tqrepaints: be accurate on layered objects, conservative on
objects in normal flow. Fix performance issues on repeated retqlayouts (#53114)
* khtmlview.{cpp,h}: add needsFullRepaint flag, mostly similar to WebCore's.
(tqlayout): don't tqrepaint the canvas systematically anymore.
* rendering/bidi.cpp (tqlayoutInlineChildren): schedule a tqrepaint on
old rectangle and future rectangle, if marked dirty.
* rendering/render_block.cpp (tqlayoutBlock/tqlayoutBlockChildren/tqlayoutPositionedObjects): ditto.
* rendering/render_table.cpp (tqlayout): ditto.
* rendering/render_box.cpp (calcAbsoluteHorizontal): no more updateLayerPosition() here.
Layers positioning now happen in a separate pass.
* rendering/render_canvas.{cpp,h}
(needsFullRepaint): new - used to determine if we need to do incremental tqrepaint at all. Don't waste time if the whole canvas is dirty.
(tqrepaintViewRectangle): new - schedule a tqrepaint in absolute coordinates.
(deferredRepaint): new - append argument to a list of objects needing a post-tqlayout tqrepaint.
(scheduleDeferredRepaints): new - tqrepaint all objects in list described above, at the end of tqlayout.
* rendering/render_layer.{cpp,h} (markForRepaint): new - schedule a tqrepaint of a layer, calculating its visible rectangle,
and optionnally marking it as needing a post-tqlayout tqrepaint.
(updateLayerPositions): merged++ from WebCore. Position layers. Repaint layers marked by the above.
(calculateClipRects/calculateRects): no more updateLayerPosition call there.
* rendering/render_object.cpp
(setNeedsLayout): when marking for tqlayout, also mark the formatting context for tqrepaint (m_markedForRepaint boolean)
(setChildNeedsLayout): merge WebCore guard against multiple dirtying.
(setStyle): based on the Style diff, decide whether to dirty only the current formatting context, or also the parent's.
(dirtyFormattingContext): new.
(tqrepaintDuringLayout): new - schedule a pre/post-tqlayout tqrepaint on the object, if it makes sense.
2004-12-12 Germain Garand <germain@ebooksfrance.org>
sanitize anchor-jumping code. Merge restoreScrollPosition/gotoAnchor
slots to avoid undeterministic calling order and redundant
connections(#94783, 3.3.2 regression of #57360).
* khtml_part.cpp (restoreURL/openURL/slotData/restoreState): ditto.
(checkCompleted): don't setContentsPos here
* khtml_part.h: remove private gotoAnchor slot
* khtmlpart_p.h: add boolean to record whether we need to restore a
stored scroll offset or honour an anchor
2004-12-09 Allan Sandfeld Jensen <kde@carewolf.com>
Add :enabled and :disabled pseudo-classes
* css/css_base.{h,cpp}: Parse new pseudoclases
* css/cssstyleselector.cpp: Implement new selectors
2004-12-08 Allan Sandfeld Jensen <kde@carewolf.com>
Merge encoding detection from WebCore
* misc/decoder.{h,cpp}: Detect XML-encoding, comments in headers and other merges
* khtml_part.cpp: Frames inherits parents encoding as their default
2004-12-08 Allan Sandfeld Jensen <kde@carewolf.com>
Merge :target pseudo-class from WebCore
* css/cssstyleselector.cpp: Uncomment :target handling
* xml/dom_docimpl.{h,cpp}: Add (set)cssTarget.
* khtml_part.cpp: Call setCssTarget on anchors
2004-12-07 Allan Sandfeld Jensen <kde@carewolf.com>
Implement/merge CSS2-3 text-shadow property
* css/*: Merge values and parsing from WebCore
* render/render_style.{h,cpp}: Merge CSS3Inherited and ShadowData classes
* render/render_text.{h,cpp}: Implement new paintShadow function
2004-12-06 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/bidi.cpp: Layout arabic numbers with a separator correctly.
2004-12-02 Allan Sandfeld Jensen <kde@carewolf.com>
Implement remaining CSS2 list-style-types and a few CSS3
* rendering/render_list.cpp: New algorithms for hiragana, katakana,
armenian, georgian and decimal-leading-zero.
Also fix greek and latin list-styles for larger values.
* css/cssvalues.cpp: Parse box, -khtml-diamond, -khtml-arabic-indic,
-khtml-persian, -khtml-urdu and -khtml-upper-greek
* rendering/render_style.h: Expand list-style enum
2004-11-30 Germain Garand <germain@ebooksfrance.org>
* css/cssstyleselector.{cpp,h}: fontSizes array now uses a QValueVector;
made "font-size: smaller/bigger" follow the standard font scale
when possible.
* css/html4.css: made <big>/<small> use font-size: bigger/smaller (#82657)
2004-11-29 Allan Sandfeld Jensen <kde@carewolf.com>
* css/cssstyleselector.cpp: Handle :lang selector
2004-11-27 Germain Garand <germain@ebooksfrance.org>
merge WebCore differences in logic for Auto table tqlayout
* rendering/table_tqlayout.cpp (calcEffectiveWidth/tqlayout):
distribute remaining width starting with fixed rather than percent (#88104).
2004-11-26 Germain Garand <germain@ebooksfrance.org>
merge zero deep-copy TokenizerString class from WebCore
* html/htmltokenizer.{cpp,h}
* misc/stringit.{cpp,h}
* xml/xml_tokenizer.{cpp,h}
2004-11-23 Allan Sandfeld Jensen <kde@carewolf.com>
Implement the structual pseudo-selectors of CSS3.
* css/tokenizer.flex: Add nth and NOTFUNCTION tokens.
The later because the not-function is unique in its parsing.
* css/tokenizer.cpp: Manually merge output from flex :(
* css/parser.y: Update parsing of pseudo-functions.
Also enables correct parsing of :lang and :tqcontains.
* css/css_base.{h,cpp}: Add new pseudoselectors
* css/cssstyleselector.cpp: Implement new selectors
2004-11-22 Germain Garand <germain@ebooksfrance.org>
* rendering/bidi.cpp (tqlayoutInlineChildren): for elements with some kind of
scrolling overflow and a variable height, include the scrollbar height in
calculations to avoid tqmasking content (#89136).
* rendering/render_block.cpp (tqlayoutBlock/tqlayoutBlockChildren): ditto.
* rendering/render_box.cpp (contentWidth/contentHeight): subtract scrollbars
height/width when applicable.
2004-11-22 Allan Sandfeld Jensen <kde@carewolf.com>
Implement CSS border on form-widgets
* css/cssvalues.in: Add -khtml-native
* css/cssparser.cpp: Accept -khtml-native as a border-type
* css/cssstyleselector.cpp: BNATIVE and not BNONE is now lowest border-style
* css/html4.css: Make -khtml-native default border-style for form-widgets
* render/render_style.h: Add BNATIVE
* render/render_object.cpp: Treat BNATIVE like BNONE
* render/render_tqreplaced.cpp: Remove native, and paint CSS border when allowed
2004-11-21 Germain Garand <germain@ebooksfrance.org>
float and flowAroundFloat fixes.
* css/html4.css: make fieldset -khtml-around-floats (#92979)
* rendering/render_block.cpp (tqlayoutBlockChildren): cleanup float/flowAroundFloats
logic. Merges: add better RTL tqlayouting of fAFs.
(lineWidth): guard against negative values
(clearFloats): don't copy floats if element defines a new block
formatting context (#93511)
(markAllDescendantsWithFloatsForLayout): add missing argument to
recursive call
(getClearDelta): merge
(InlineMinMaxIterator::next): exclude positioned elements
(calcInlineMinMaxWidth): merge float clearing adjustments
(calcBlockMinMaxWidth): ditto
* rendering/render_box.cpp (calcWidth): use containingBlockWidth
* rendering/render_object.cpp (isHR): new. Evil but useful for quirkmode (cf. usesLineWidth).
(flowAroundFloats): add tqreplaced and overflowClip elements
(usesLineWidth): adapt to above.
* rendering/render_table.cpp (calcWidth): style()->flowAroundFloats => flowAroundFloats()
2004-11-19 Stephan Kulow <coolo@kde.org>
* rendering/render_form.cpp (updateFromElement): restore scrolling position in case of a change
in text and do not trigger the update code more often than necessary
2004-11-17 Allan Sandfeld Jensen <kde@carewolf.com>
* render/render_table.{h,cpp}: Improve distribution of excess height
2004-11-17 Allan Sandfeld Jensen <kde@carewolf.com>
* render/render_table.cpp: Respect margins when calculating width to be distributed.
2004-11-16 Germain Garand <germain@ebooksfrance.org>
* rendering/render_tqreplaced.{cpp,h} (cancelPendingResize): allow
canceling of scheduled widget resizes, to avoid flicker when we
had to perform temporary tqlayouts.
* rendering/render_table.cpp (calcRowHeight): displace resetting tqlayout of cells with
percent children here and mark those dirty, or we might get zero-height widgets on resize
(cf. map24.com)
(tqlayout): ditto.
(tqlayoutRows): cancel widget resizes from temporary tqlayouts.
2004-11-16 Stephan Kulow <coolo@kde.org>
* rendering/break_lines.cpp (khtml): adding patch by Otto Pattara to support
libthai for correct line breaks
2004-11-15 Allan Sandfeld Jensen <kde@carewolf.com>
Fix odd spacing in gmail-composer and zeg-shop.de
* render/render_box.h: Change auxillary box-size functions to protected
* render/render_table.cpp: Calculate percentage heights based on containing box
rather than viewport, by merging code with renderBox.
2004-11-09 Germain Garand <germain@ebooksfrance.org>
fix globeandmail.com famlily of crashes (#65715)
* rendering/render_box.cpp (createAnonymousBlock): moved from RenderFlow
(restructureParentFlow): check soundness of parent's flow structure with regard to
the child's new display. Adapted from WebCore.
(setStyle): check parent if floats or positioned objects become in-flow
and thus affects flow structure.
* rendering/render_flow.cpp (createAnonymousBlock): moved.
* rendering/render_inline.cpp (splitInlines): use addChildToFlow
rather than appendChildNode
* rendering/render_line.cpp: display COMPACT cleanups
* rendering/render_object.cpp: ditto.
2004-11-06 Allan Sandfeld Jensen <kde@carewolf.com>
Implement CSS3 property box-sizing to match MacIE, Opera and Mozilla
* css/css*.in: Add new property and primitive values
* css/cssparser.cpp: Detect content-box and border-box as primitives
* css/cssstyleselector.cpp: Parse box-sizing
* render/render_style.h: Add box-sizing to non-inherited values
* render/render_box.cpp: Consult box-sizing before adding padding and
border to width and height
2004-11-05 Germain Garand <germain@ebooksfrance.org>
* khtml_part.cpp (closeURL/slotData/restoreState): avoid triggering
full tqrepaints of the view before the first tqlayout is done.
2004-11-05 Germain Garand <germain@ebooksfrance.com>
* css/cssstyleselector.cpp (computeFontSizes): add compensated font scale
from Todd Fahrner's "Toward a standard font size interval system"
article for 12ppem and below (suggested by Bert Bos <bert@w3.org>)
2004-11-04 Stephan Kulow <coolo@kde.org>
* rendering/bidi.cpp (bidiReorderLine): applying patch by Mitz Pettel
to fix neutral types at beginning of context
2004-11-03 Germain Garand <germain@ebooksfrance.com>
* khtmlview.cpp (slotScrollBarMoved): make sure we are tqlayouted before
scrolling if we are still loading (#51473)
2004-11-02 Stephan Kulow <coolo@kde.org>
* rendering/render_tqreplaced.cpp (setStyle): set hidden widgets to invisible
* xml/dom_docimpl.cpp (recalcStyleSelector): avoid invalid casts on XML documents
2004-11-02 Germain Garand <germain@ebooksfrance.com>
* css/cssstyleselector.cpp (adjustRenderStyle):
ignore relative positioning on table sections. CSS 2.1 does not
define that, but it is a consensus amongst all major browsers.
2004-11-01 Sandro Giessl <sandro@giessl.com>
* rendering/render_tqreplaced.cpp (copyWidget): don't fill the
background of QFrames. they paint their own background now
2004-10-30 Stephan Kulow <coolo@kde.org>
* html/html_formimpl.cpp (parseAttribute): ignore height element
for input elements that are not image
2004-10-28 Stephan Kulow <coolo@kde.org>
* html/html_documentimpl.cpp (determineParseMode): adding a fixed list of
doctypes to enable quirks mode on (derived from Webcore, but majorly revised)
* enable strict CSS parsing also for transitional doctypes
2004-10-27 Germain Garand <germain@ebooksfrance.com>
make font-sizes CSS2.1 compliant.
* css/cssstyleselector.cpp (computeFontSizes): use standard ratios
from CSS 2.1 15.7.
(applyRule): don't apply zoom factor to ems/exs relative values (#91228).
* css/html4.css: Hx elements - margin ratios are now 1.1/corresponding ratio.
Switch to absolute sizes from CSS 2.1 15.7
2004-10-27 Stephan Kulow <coolo@kde.org>
* css/cssstyleselector.cpp (checkOneSelector): match exact matches case sensitive
only in XHTML - HTML attributes are all case insensitive
2004-10-26 Stephan Kulow <coolo@kde.org>
* html/html_elementimpl.cpp (addCSSProperty): don't add all css properties in
lower case but select those those where it matters
2004-10-26 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/bidi.{h,cpp}: Merge bidi-changes from WebCore
2004-10-26 David Faure <faure@kde.org>
* khtml_part.cpp (urlSelected): Only call recursiveFrameRequest if target is
different from _self, _top, _blank and _parent. See tests/frames/target/*.
2004-10-25 David Faure <faure@kde.org>
* khtml_part.cpp (processObjectRequest): connect to completed(bool) for <embed>
too, to avoid a never-ending-spinning-wheel on the following testcase
<META HTTP-EQUIV="Refresh" content="10;URL=www.kde.org"><EMBED>
2004-10-25 Stephan Kulow <coolo@kde.org>
* html/html_elementimpl.cpp (addCSSProperty): add css properties parsed from
attributes as lower case
2004-10-25 George Staikos <staikos@kde.org>
* rendering/render_image.cpp: Pass through the CachedObject so we can
use the suggested filename possibly provided by the HTTP headers.
* khtml_ext.cpp: Make use of the suggested filename for images.
2004-10-24 David Faure <faure@kde.org>
* html/html_formimpl.cpp (value): Fixed m_value vs ATTR_VALUE problem
which didn't allow sending mail on gmail.google.com. Testcases:
forms/form_setattribute.html, mozilla/dom/dom-html/{hfor009.html,hinp017.html}
2004-10-22 Stephan Kulow <coolo@kde.org>
* ecma/kjs_window.cpp (tryCall): merging handling of event handlers
* css/cssparser.cpp (parseValue): implementing CSS 2.1 compliant parsing
of background-position (#91572)
2004-10-21 Allan Sandfeld Jensen <kde@carewolf.com>
Implement limited DHTML capabilities to the layer implementation
* html/html_miscimpl.{h,cpp}: Extract collection of all layers
* dom/html_block.{h,cpp}: Add layer DOM
* dom/html_document.{h,cpp}: Add .layers to document DOM
* ecma/kjs_html.{h,cpp}: Add layer DHTML and allow layers to be found by ID
* ecma/kjs_window.cpp: Allow layers to be found by ID
2004-10-19 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_box.{h,cpp}: Merge min,max-height fixes
2004-10-19 Germain Garand <germain@ebooksfrance.org>
finish merge of static position for positioned objects
* css/cssstyleselector.cpp (adjustRenderStyle): remember our original display
* rendering/bidi.cpp (appendRun): include positioned objects with static X/Y,
now that we use those.
(tqfindNextLineBreak): adjust static position
* rendering/render_block.cpp (tqlayoutBlockChildren): ditto.
* rendering/render_box.cpp (containingBlockWidth): use usesLineWidth
(position): activate static position logic
(calcAbsoluteHorizontal): tqreplace static position calculation
(calcAbsoluteVertical): ditto.
* rendering/render_object.cpp (removeChild): fix typo
(usesLineWidth): merge usesLineWidth from WebCore
* rendering/render_style.h (NonInheritedFlags::): originalDisplay member
(setBitDefaults): initialize the above
(originalDisplay/setOriginalDisplay): accessors
(isDisplayReplacedType/isDisplayInlineType/isOriginalDisplayInlineType):
helpers
2004-10-18 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_table.cpp: Merge tqlayout fixes from Webcore
2004-10-17 Stephan Kulow <coolo@kde.org>
* ecma/kjs_dom.cpp: adding patch by Richard Lärkäng to support IE
extension insertAdjacentHTML (#33968)
2004-10-16 Allan Sandfeld Jensen <kde@carewolf.com>
* html/html_formimpl.cpp: Escape otherwise unencodable characters.
Matches the behavior of Gecko.
2004-10-15 Stephan Kulow <coolo@kde.org>
* rendering/render_form.cpp (updateFromElement): don't set assume <select>
got items when we calculate a height for items (#87466)
* css/html4.css: changing default horizontal margins for H1-H6 from
auto to 0 (#91327)
2004-10-15 Germain Garand <germain@ebooksfrance.org>
bring z-order to QScrollView
* html/html_formimpl.cpp (defaultEventHandler): propagate events to
QScrollView
* khtmlview.{cpp,h}: QScrollview needs fast tqrepaints. Fix
background color of QFrames.
* rendering/render_form.cpp (createListBox/TextAreaWidget):
make those widgets z-ordered as well.
* rendering/render_tqreplaced.cpp (paintWidget): optimize painting by
avoiding unnecessary background tqrepaints and by using a shared
paint buffer.
2004-10-15 Germain Garand <germain@ebooksfrance.org>
display: compact fixes.
* rendering/bidi.cpp: remove checks for display: compact,
not needed anymore.
* rendering/render_block.cpp (tqlayoutBlockChildren):
simpler implementation for compact display: do not insert the
compact child within the next block anymore.
Solves lot of problems with host blocks having non-inline children.
* rendering/render_object.{cpp,h} (getVerticalPosition): add
ability to compute vertical position with respect to other
RenderObjects than parent.
2004-10-14 David Faure <faure@kde.org>
* html/htmltokenizer.cpp (parseTag): Merged patch by John Sullivan (safari)
to refuse skip more <script> tags depending on the value of type and language.
* html/html_documentimpl.cpp (determineParseMode):
When the document is loaded as text/html, even if xhtml doctype, activate case-insensitive
("htmlCompat") lookup of tags and attributes (but not in CSS parser). (#86446)
2004-10-14 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/*.*: WebCore merge/port of tqlayouted->needsLayout
2004-10-11 David Faure <faure@kde.org>
* xml/dom_nodeimpl.cpp (dispatchGenericEvent): Fixed stopPropagation
when called from the target node itself (#90750).
2004-10-11 Harri Porten <porten@kde.org>
* ecma/*.cpp: return an empty string (instead of null) when
querying unset string properties
* ecma/kjs_html.cpp: use full url for Image.src.
2004-10-08 David Faure <faure@kde.org>
* ecma/kjs_html.cpp (KJS::HTMLCollection::tryGet):
return Undefined instead of Null for out-of-range indices.
2004-10-07 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp
(updateFirstLetter): move update of first-letter from addChildToFlow to
setStyle/close. Better drilling logic. Use RenderTextFragment to
correctly handle text-transform on first-letter(#76078).
(addChildToFlow): ditto. fix display: block on pseudo-elements (#90917)
(tqlayoutBlockChildren): only clear if floats actually changed our
height.
* rendering/render_object.h (node): accessor to m_node
* rendering/render_text.{cpp,h}: merge RenderTextFragment class
* xml/dom_nodeimpl.h (setRenderer): accessor
2004-10-07 Allan Sandfeld Jensen <kde@carewolf.com>
* rendering/render_style.h:
WebCore merge of paged media attributes (#68930).
* rendering/render_block.cpp (paintObject):
Break on page-break-before and -after.
* rendering/render_canvas.{h,cpp}:
Merge bestTruncatedAt from WebCore.
* khtmlview.cpp (print):
Use bestTruncatedAt for detect truncated pages.
2004-10-07 David Faure <faure@kde.org>
* xml/dom_nodeimpl.cpp (dispatchWindowEvent): Emit load event for frames
from there, to avoid bubbling (safari merge)
2004-10-05 Rob Buis <buis@kde.org>
* render/render_form.{cpp,h}:
Implemented onchange event generating for checkbox and radio buttons (fixes #51765).
2004-10-05 David Faure <faure@kde.org>
* html/html_baseimpl.cpp (parseAttribute):
Set event listener on frame element itself (fixes #72440)
* xml/dom_docimpl.cpp (ownerElement): Safari merge.
* html/html_documentimpl.cpp (close):
Emit onload event for frames (famous gmail bug).
* ecma/kjs_html.cpp (getValueProperty):
Don't return null when innerText or innerHTML is empty.
2004-10-04 David Faure <faure@kde.org>
* khtml_part.cpp (processObjectRequest):
Fixed showing of iframe hidden with display=none (#84332).
2004-09-16 Leo Savernik <l.savernik@aon.at>
* rendering/render_inline.{cpp,h} (paintOutline): removed.
(paintOutlinePath): Paints an outline by following a path consisting of
rectangular line segments.
(appendIfNew): Append point if not contained at end.
(reduceSpike): Reduce spikes.
(reduceSegmentSeparators): Redoce segment separators.
(appendPoint): Appends point with reductions.
(collectHorizontalBoxCoordinates): Determines points for top-/bottommost line box.
(lineBoxesDisjoint): Checks whether two line boxes don't share a common x-range.
(collectVerticalBoxCoordinates): Determines points for left/right sides of line boxes.
(linkBeginToEnd): Links the last point to the first one, reducing even more.
(paintOutlines): Uses new painting outline algorithm.
(kSwap): Swaps two variables (candidate for misc?)
(bsOrientation): returns whether border side is horizontal/vertical.
(newBorderSide): Determines new border side.
(paintOutlineSegment): Paints a straight outline segment.
2004-09-11 David Faure <faure@kde.org>
* khtml_part.cpp (defaultEncoding, encoding, createDecoder):
Make default charset latin1 over HTTP, keep default to locale on other protocols.
2004-09-02 Leo Savernik <l.savernik@aon.at>
* html_formimpl.{cpp,h} (HTMLTextAreaElementImpl::value):
Only take text from RenderTextArea when it has been fully initialized.
Mark it fully initialized when RenderTextArea has been initialized
from the DOM.
(HTMLTextAreaElementImpl::setValue): Mark element as initialized after
setting.
* render_form.cpp (RenderTextArea::setStyle):
Block signals on call to QTextEdit::tqsetAlignment. Otherwise, a bogus
textChanged signal is emitted.
2004-08-27 Germain Garand <germain@ebooksfrance.org>
scope: - more accurate completed() signal.
- anchor jumps (#57360)
* khtml_part.cpp (openURL): when restoring a previous scroll
position on reload, avoid jumping to anchors.
(gotoAnchor): keep jumping at least while we are parsing.
(gotoAnchor): "top" and "" anchors mean top of document.
(checkCompleted): entrust the view to emit completed on our behalf
after any pending tqlayout/tqrepaint is done.
* khtmlview.{cpp,h}: ditto
* xml/dom_nodeimpl.cpp (getUpperLeftCorner/getLowerRightCorner):
use inlineYPos for text objects (#57360 c.#17).
2004-08-27 Leo Savernik <l.savernik@aon.at>
* html/html_tableimpl.cpp (HTMLTableCellElementImpl::attach):
Fixed explicit setting of border to 0 width.
2004-08-24 Leo Savernik <l.savernik@aon.at>
* ecma/kjs_html.{cpp,h} (HTMLDocument):
Added Javascript-support for HTMLDocument.compatMode.
2004-08-23 Leo Savernik <l.savernik@aon.at>
* rendering/render_layer.{cpp,h} (Marquee): Added a stop method for
the ECMAScript invokation.
Fixed starting and stopping and suspending by properly discriminating
against them.
2004-08-19 Germain Garand <germain@ebooksfrance.org>
* rendering/render_body.cpp (setStyle): only disallow fixed positioning
on body, not relative/absolute (#77048, #76982).
* rendering/render_box.cpp (paintBackgroundExtended): make sure backgrounds paint
in the border box and not just in the padding box (WC merge - meyerweb.com/unsorted/bg-position.html).
2004-08-18 Leo Savernik <l.savernik@aon.at>
* rendering/render_block.cpp (tqlayoutBlock, tqlayoutBlockChildren,
tqlayoutPositionedObject): Ensure that m_overflowWidth/m_overflowHeight
get updated properly to include relatively positioned
elements, but to exclude the overflow-area of clipped children.
* rendering/render_box.cpp (tqrepaint): Removed superfluous null ptr check.
Use effectiveWidth/Height instead of overflowWidth/Height.
* rendering/render_canvas.cpp (docHeight): Fixed superfluous vertical
scrollbars on clipped children.
(docWidth): Fixed superfluous horizontal scrollbars on clipped children.
* rendering/render_flow.cpp (tqrepaint):
Use effectiveWidth/Height instead of overflowWidth/Height.
* rendering/render_object.h: Added effectiveWidth/Height.
Made hasClip and hasOverflowClip const.
2004-08-05 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (tqlayoutBlockChildren): when positionning floats,
use the margin tracking variables, and not the prevFlow -there might be
self-collapsing blocks in between (#85150).
(calcMinMaxWidth): better calculation merged from WebCore. Fixes a few testcases.
* rendering/render_object.h (collapsedMarginTop/Bottom): don't avoid max(Top|Bottom)Margin,
they are virtuals reimplemented for RenderBlock.
* rendering/render_object.cpp (createObject): do not set the style before
the renderer is assigned to a node. Fixes Marquee initial tqlayout
(unsorted/RESOLVED-57087-1342.html) failing because of 'element()->renderer() == this' checks.
* xml/dom_elementimpl.cpp (attach): ditto
2004-08-04 Germain Garand <germain@ebooksfrance.org>
* khtmlview.cpp (resizeEvent): take care, in case we are shrinking,
not to pass past the content limits yet. Next tqlayout will calculate
if we positively need scrollbars or not (#84798).
* rendering/render_canvas.cpp (tqlayout): remove scrollbar flickering turnarounds.
instead, account for a scrollbar hysteresis level when sizing the content (#61730).
2004-07-30 Jean-Baptiste Mardelle <bj@altern.org>
* khtmlview.{cpp,h} (displayAccessKeys): When accesskeys are activated,
small tooltips appear showing existing accesskeys on the page.
2004-07-28 Stephan Kulow <coolo@kde.org>
* html/html_miscimpl.cpp (getNamedItem): more investigation on tags returned
by name attribute in document.all
2004-07-28 Leo Savernik <l.savernik@aon.at>
* khtmlview.{cpp,h} (KHTMLToolTip::maybeTip): Query <area> elements
of image maps.
(dispatchMouseEvent): Added parameter innerNonSharedNode.
* khtml_part.{cpp,h}: Added method nonSharedNodeUnderMouse.
* xml/dom_docimpl.cpp (prepareMouseEvent): Initialize
innerNonSharedNode in DOM mouse event.
* xml/dom_nodeimpl.h: Added innerNonSharedNode to
NodeImpl::MouseEvent.
* html/html_imageimpl.h: Added cachedRegion() for being able to
retrieve the region in KHTMLToolTip.
2004-07-20 Stephan Kulow <coolo@kde.org>
* css/parser.y: catching imports that come between rules.
They have to be ignored (css1/test11.htm)
2004-07-14 Jean-Baptiste Mardelle <bj@altern.org>
* khtmlview.{cpp,h}: Accesskeys now activated when pressing & releasing
the crtl key (#83053).
2004-07-12 Jean-Baptiste Mardelle <bj@altern.org>
* html/html_formimpl.{h,cpp}: Make form labels clickable (#59489)
* khtmlview.cpp (focusNodeWithAccessKey): Make accesskeys work for labels
2004-07-12 Germain Garand <germain@ebooksfrance.org>
* ecma/kjs_navigator.{h,cpp} (getValueProperty):
implement navigator.productSub. Fixes most
instances of #68271
2004-07-10 Germain Garand <germain@ebooksfrance.org>
* rendering/render_layer.cpp (calculateClipRects):
absolutely positioned objects must update the overflowClipRect
passed to relatively positioned child layers to match the
posClipRect in effect (#67665/#72994).
2004-06-30 Tobias Anton <anton@stud.fbi.fh-darmstadt.de>
* khtmlview.{cpp,h}:
integrated keyboard tabbing with mouse scrolling.
Hitting tab skips at most one page, but respects
the tabindex ordering of the document.
If the document has been scrolled by the mouse before,
"tab" now selects the first/last element in the visible
area of the page.
2004-06-26 Germain Garand <germain@ebooksfrance.org>
* css/html4.css:
- do not set vertical-align on the table: it breaks inline-table's
default (baseline). cf.webcore/fast/inline-block/001.html
- default all of tbody/tfoot/thead to 'vertical-align: middle'
as per specification.
* rendering/render_object.cpp:
(getVerticalPosition): fix inverted logic. cf.unsorted/74399.html
(lineHeight/baselinePosition): inline-blocks behaves like tqreplaced elements
only after they are tqlayouted.
* rendering/render_table.h (position): remove empty reimplementation:
inline-tables need positioning. cf.webcore/fast/inline-block/001.html
* rendering/render_box.cpp (calcAbsoluteHorizontal): subtract p/b width
when shrinking-to-fit, otherwise it gets accounted for twice.
2004-06-22 Zack Rusin <zack@kde.org>
* ecma/kjs_events.cpp (JSLazyEventListener): Adding a destructor
which is now needed since Niko's eventlistener changes make
jseventlistener destructor not remove the listener from
jsEventListeners
2004-06-22 Germain Garand <germain@ebooksfrance.org>
Scope: Inline-blocks inlining. Merge Webcore improvements for
Fieldset/Legend
* css/html4.css: Legend => display: block.
* html/html_formimpl.{cpp,h} (addChild): remove.
* rendering/render_block.cpp:
(setStyle): do not overwrite inline status
(makeChildrenNonInline): change assert
(tqlayoutBlock): account for inline-blocks
(tqlayoutBlockChildren): ditto
(clearFloats): ditto. bail out.
* rendering/render_box.cpp:
(calcWidth): fix logic. cf.css1/test43.htm
(calcHeight): fix logic
* rendering/render_form.cpp:
(tqlayoutLegend): merges from WebCore-125
(tqfindLegend): ditto
(paintBoxDecorations): ditto
(setStyle): cf.webcore/fast/forms/007.html
2004-06-22 Germain Garand <germain@ebooksfrance.org>
Scope: avoid leaking placeholder InlineBoxes. Cleanups.
* rendering/bidi.cpp (Bidinext): simplified logic. Do not return each
InlineFlow twice.
(tqlayoutInlineChildren): clear InlineBoxes on retqlayout.
* rendering/render_object.{cpp,h}:
(deleteInlineBoxes): new virtual method.
* rendering/render_box.{cpp,h}: added m_placeHolderBox member.
(createInlineBox/deleteInlineBoxes): reimplemented.
* rendering/render_flow.{cpp,h}:
(createInlineBox/deleteInlineBoxes): ditto.
* rendering/render_tqreplaced.cpp (detach): call deleteLineBoxes
* rendering/render_text.{cpp,h} (deleteInlineBoxes): reimplemented, replacing
deleteTextBoxes
(~RenderText): no need to clear lineboxes twice.
2004-06-13 Leo Savernik <l.savernik@aon.at>
* khtml_part.cpp: (clear) Stopping marquees.
* css/cssparser.cpp: (parserValue) Parse overflow: marquee.
Inserted CSS3 Properties section.
Moved -khtml-user-input to CSS3 Properties.
Added parsing of -khtml-marquee{,-direction,-increment,-style,-repetition,
-speed}.
* css/cssproperties.{c,h}: Regenerated.
* css/cssproperties.in: Added -khtml-marquee{,-direction,-increment,
-style,-repetition, -speed} keywords.
* css/cssstyleselector: (applyRule) Handle overflow: marquee.
Handle applying of -khtml-marquee{,-direction,-increment,-style,-repetition,
-speed}.
* css/cssvalues.{c,h}: Regenerated.
* css/cssvalues.in: Added marquee, forwards, backwards, ahead, reverse,
up, down, slow, fast, infinite, slide, alternate, and unfurl keywords.
* css/html4.css: Updated rule to make marquee behave like marquee.
* html/html_blockimpl.{cpp,h}: Added class HTMLMarqueeElementImpl.
* html/html_elementimpl.cpp: (addCSSLength) Fixed adding numeric lengths
without unit.
* html/html_parser.cpp: (getElement) Made ID_MARQUEE generate an
HTMLMarqueeElement.
* htmlattrs.{c,h}: Regenerated.
* htmlattrs.in: Added behavior, direction, loop, scrollamount, scrolldelay,
truespeed attribute keywords.
* rendering/bidi.cpp: (RenderBlock::tqfindNextLineBreak): marquee-related extensions.
* rendering/render_block.{cpp,h}: Updated lowestPosition, rightmostPosition, added
leftmostPosition.
* rendering/render_box.{cpp,h}: Updated lowestPosition, rightmostPosition, added
leftmostPosition.
(setStyle) Inserted call to styleChanged of layer.
(calcWidth) Used containing block's direction when aligning this box.
(calcWidthUsing) Used centralized sizesToMaxWidth() method.
(calcHorizontalMargins) Margin fix for inline blocks.
* rendering/render_flow.{cpp,h}: Updated lowestPosition, rightmostPosition, added
leftmostPosition.
* rendering/render_layer.{cpp,h}: Added Marquee class which takes care of
the shifting operations.
Added styleChanged and suspendMarquees methods.
(updateLayerPositions) Inserted call to updateMarqueePosition.
(scrollToOffset) Took care of marquee.
* rendering/render_object.{cpp,h}: Updated lowestPosition, rightmostPosition,
added leftmostPosition.
Added isHTMLMarquee, sizesToMaxWidth, and isCompact.
* rendering/render_style.{cpp,h}: Added CSS3NonInheritedData structure.
Added StyleMarqueeData. Added OMARQUEE to EOverflow.
Added EMarqueeBehavior, EMarqueeDirection.
Added CSS3 Getter Methods section.
Moved userInput to CSS3 Getter Methods section.
Added marqueeIncrement, marqueeSpeed, marqueeLoopCount,
marqueeBehavior, marqueeDirection.
(RenderStyle::RenderStyle) Instantiated CSS3NonInheritedData there.
Added respective setters to new CSS3 Setters section.
* rendering/render_text.{cpp,h}: Removed rightmostPosition.
* xml/dom_docimpl.cpp: (createHTMLElement) Made it return a
HTMLMarqueeElement for ID_MARQUEE.
2004-06-10 Zack Rusin <zack@kde.org>
* xml/dom_textimpl.cpp (escapeHTML): Move from dom_elementimpl.cpp,
and use it to espace text nodes in here
* xml/dom_elementimpl.cpp: propely handle attributes,
* dom/dom_doc.cpp (toHTML): deprecate in favor of toString and
implement in terms of toString,
* dom/html_elementimpl.h (innerHTML): implement in terms of
toString,
* xml/dom_nodeimpl.{h,cpp}: remove the toHTML and recursive_toHTML
methods,
2004-06-09 Zack Rusin <zack@kde.org>
* xml/dom_nodeimpl.h, xml/dom_xmlimpl.{h,cpp},
xml/dom_textimpl.{h,cpp}, xml/dom_elementimpl.{h,cpp},
xml/dom_docimpl.{h,cpp}, html/html_elementimpl.{h,cpp},
dom/dom_doc.{h,cpp} : Merging in toString method which serializes
the DOM tree back to a string
2004-06-09 Zack Rusin <zack@kde.org>
* xml/xml_tokenizer.{h,cpp}: adding bool isWaitingForScripts()
const method to tokenizer interface which should return true if
the tokenizer is waiting for scripts to finish. Adding the method
to XMLTokenizer,
* html/htmltokenizer.{h,cpp}: adding the isWaitingForScripts
method,
* xml/dom_docimpl.cpp (close): On an explicit document.close()
don't destroy the tokenizer if it's still waiting on external
scripts
2004-06-09 Zack Rusin <zack@kde.org>
* ecma/kjs_events.{h,cpp}: made the listener in jseventlistener an
object instead of a value and switch its function accordingly,
adding JSLazyEventListener which delays evaluation of event
handlers,
* ecma/kjs_window.{h,cpp}: adding getJSLazyEventListener which
creates lazy listeners,
* ecma/kjs_dom.cpp (getListener): switched to use lazy listeners,
* ecma/kjs_html.cpp (getValueProperty): adding check of whether
listener implementation is in place (listener is valid),
* ecma/kjs_proxy.cpp (createHTMLEventHandler): switched to use
getJSLazyEventListener,
2004-06-08 Zack Rusin <zack@kde.org>
* html/htmltokenizer.cpp (parseEntity): Fix to make 8-character
hexadecimal entities work in khtml from Darin Adler. Testcase at
http://www.alanwood.net/tqunicode/deseret.html
2004-06-06 Zack Rusin <zack@kde.org>
* xml/dom_docimpl.cpp (getId): do html lookup if specified even if not
in a html document since elements can be in xhtml the namespace
* xml/dom_docimpl.h (hasPendingSheets): adding function returning true,
if stylesheets are currently loading for document.
* xml/xml_tokenizer.cpp: Merging table hack for XML parsing from
Safari, merging in character changes, but with a fix which we
need, delaying attaching of text nodes till parsing finishes (
also merged from the Safari team), adding FOUC prevention code.
2004-06-02 Zack Rusin <zack@kde.org>
* xml/dom_xmlimpl.cpp: Correctly handle stylesheet loading in
XML documents (try to avoid FOUC)
* xml/xml_tokenizer.{h,cpp}: Added pushNode(), popNode() and
currenNode() methods. Removed m_currentNode memeber and switched
node construction to a stack based ones. Try to attach to the
parent of the tag which encloses us if it can't handle children.
2004-05-28 Leo Savernik <l.savernik@aon.at>
* rendering/render_object.cpp: (drawBorder) Make use of Mozilla's
border-bevel coloring algorithm.
2004-05-14 Leo Savernik <l.savernik@aon.at>
* rendering/render_table.cpp: (RenderTableCell::paintBoxDecorations)
Make it unconditionally paint background on empty table-cells
with empty-cells:hide in quirks mode.
2004-05-13 Leo Savernik <l.savernik@aon.at>
* rendering/font.cpp: (drawDecoration)
rendering/render_line.cpp: (InlineFlowBox::paintDecoration)
Increased width of text decoration by one.
2004-05-12 Leo Savernik <l.savernik@aon.at>
* css/cssstyleselector.cpp: (applyRule) Make borders be at least one
pixel wide between 1pt and 0.025pt. This makes konqueror's behaviour
more compatible to Mozilla's.
2004-05-09 Leo Savernik <l.savernik@aon.at>
* rendering/font.cpp: (drawDecoration) Honored line thickness.
Used fillRect instead of drawLine.
* rendering/render_layer.cpp: (paintLayer) Added invokation of
PaintActionSelection phase when there is a selection.
* rendering/render_line.cpp: (InlineFlowBox::paintDecorations)
Honored line thickness. Used fillRect instead of drawLine.
Actually use it.
* rendering/render_text.cpp: (paint) Stopped drawing text in PaintActionSelection.
Stopped drawing selection in any other phase.
Make it draw text-decorations only in quirks mode.
2004-05-09 Leo Savernik <l.savernik@aon.at>
* rendering/render_block.cpp: (paint, paintObject, paintFloat)
Introduced maximalOutlineSize, PaintActionOutline phase.
* rendering/render_box.cpp: (setStyle) Updating maximumOutlineSize.
* rendering/render_canvas.{cpp,h}: Added maximumOutlineSize
member, setter, and getter.
* rendering/render_image.cpp: (paint) Added handling new
PaintActionOutline phase.
* rendering/render_inline.{cpp,h}: Moved paintOutline{s,} from RenderText
to RenderInline.
(paint) Handled PaintActionOutline phase.
* rendering/render_layer.cpp: (paintLayer) Added invokation of
PaintActionOutline phase.
* rendering/render_object.{cpp,h}: Added PaintActionOutline phase and
maximumOutlineSize.
* rendering/render_table.cpp: Added code for handling outlines.
* rendering/render_text.{cpp,h}: (paint) Removed outline painting
code from there.
Moved paintOutline{s,} to RenderInline.
* xml/dom_nodeimpl.cpp: (NodeBaseImpl::setFocus) Fixed recursive
application of focus to child elements now that outline correctly
handles block elements.
2004-05-06 Tobias Anton <anton@stud.fbi.fh-darmstadt.de>
* html/htmlparser.cpp (class KHTMLParser): use setCurrent() after reset()
to avoid a memleak whenever the parser is used on a DocumentFragment.
2004-05-04 Leo Savernik <l.savernik@aon.at>
* css/cssparser.cpp: (parseValue) Updated order of border values to
accomodate border precedence.
Made all colors accept transparent.
* css/cssstyleselector.cpp: (applyRule) Fixed recognition of transparent
colors so that BorderValue::isTransparent returns true for border colors.
* css/cssvalues.in: Updated order of border values to accomodate border
precedence.
* rendering/render_form.cpp: (paintBorderMinusLegend) Honor new border
precedence.
* rendering/render_object.cpp: (drawBorder) Inserted forgotten break.
(paintBorder) Make border-color: transparent work like in WebCore.
Honor new border precedence.
* rendering/render_object.h: Introduced PaintActionCollapsedTableBorders.
* rendering/render_style.h: Updated EBorderStyle to accomodate border
precedence.
(class BorderValue) Merged nonZero and isTransparent to make border
drawing code work.
Merged lots of stuff needed for border-collapse.
Set initial value of empty-cells to hide (to match NN, Moz, IE behaviour).
* rendering/render_table.cpp: (RenderTable::RenderTable,
RenderTable::setStyle) Merged small adaptations for border-collapse.
(RenderTable::paint) Merged border-collapse paint code from WebCore.
(class RenderTable) Merged new paintBoxDecorations code.
(class RenderTableCell) Merged lots of helper classes from WebCore.
(RenderTableSection::paint) Fixed cutting off of borders spilling into
neighbour cells.
(RenderTableCell::paint) Merged paint code from WebCore.
* rendering/render_table.h: Added prototypes/member variables.
2004-04-18 Leo Savernik <l.savernik@aon.at>
* khtml_part.cpp: (extendSelectionTo): Fixed deselection of whole
word/line at line boundaries in ExtendByWord/ExtendByLine mode.
2004-04-18 Leo Savernik <l.savernik@aon.at>
* khtml_part.cpp: Merged firstRunAt, lastRunAt from WebCore.
(khtmlMouse{Press,DoubleClick,Move,Release}Event): Support extending selection
by word and by line as mandated by the KDE style guide.
(khtmlMousePressDoubleClickEvent): Fixed automatic scrolling when mouse
moves off the view while selecting.
(extendSelection): Make it support extending by line by merging
WebCore's startAndEndLineNodesIncludingNode into it.
Fixed issue with double word selection when between two words.
* khtmlpart_p.h: added m_initialNode, m_initialOffset and
m_extendMode.
* khtmlview.cpp (extendSelection): Initialize all relevant fields for selection.
* rendering/render_text.h: Merged inlineTextBoxes function, needed by
firstRunAt, lastRunAt.
(tqfindInlineTextBox): Make it public.
2004-04-15 Leo Savernik <l.savernik@aon.at>
* khtml_caret{.cpp,_p.h}: Vast changes.
Added classes CaretBox, CaretBoxLine, CaretBoxIterator,
EditableCaretBoxIterator. Changed every other class.
* khtmlview.[cpp,h}: (class KHTMLView) Adapt to khtml_caret* changes.
(KHTMLToolTip::maybeTip) Save tooltip position instead of recalculating it.
* rendering/render_{inline,box}.{cpp,h}: (Render{Box,Inline}::caretPos)
Handle outside caret positions.
* rendering/render_{image,br}.{cpp,h}: Remove superfluous
Render{Image,BR}::caretPos.
* rendering/render_line.h: (InlineBox::maxOffset) Return 0 instead of 1.
* rendering/render_object.{cpp,h}: (RenderObject::caretPos) Introduce
flags to denote outside positions.
Add RenderObject::isRenderReplaced.
* rendering/render_tqreplaced.h: Add RenderReplaced::isRenderReplaced
returning true.
* rendering/render_text.{cpp,h}: (RenderText::caretPos) Handle flags.
* xml/dom_nodeimpl.{cpp,h}: (NodeImpl::getCaret) Handle DOM Range
positions.
Remove unused NodeImpl::{prev,next}LeafNode.
(NodeImpl::maxOffset) Return child node count instead of 1 for element
nodes.
(NodeBaseImpl::childNode): Don't crash on out-of-bounds offsets.
2004-04-02 Dirk Mueller <mueller@kde.org>
* misc/loader.cpp (slotFinished): store suggestedfilename for later.
(movieResize): start with the notify. Experimental.
* rendering/render_layer.cpp (nodeAtPoint): make sure we set
the urlelement to the innermost urlelement. otherwise
overURL and the actual url followed during click get out of sync.
2004-03-23 Dirk Mueller <mueller@kde.org>
* khtml_part.cpp (checkLinkSecurity): Be stricter.
* rendering/render_frames.cpp (updateWidget): readd the recursion protection.
2004-03-21 Arend van Beelen jr. <arend@auton.nl>
* khtml_part.cpp/.h: if text in a link is highlighted, the link now receives
focus.
* khtmlview.cpp: made type-ahead tqfind more aggressive by grabbing the keyboard
when active, this way it temporarily overrules single-letter shortcuts as seen
in KMail. Note it immediately releases the keyboard when it looses focus.
2004-03-20 Arend van Beelen jr. <arend@auton.nl>
* khtml_part.cpp/.h: finished new searching API.
* khtmlview.cpp/.h: implemented type-ahead tqfind (#51259).
2004-03-21 Dirk Mueller <mueller@kde.org>
* html/html_formimpl.cpp (encoding): fix submission of forms
without file upload (#77382).
* css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): fix crash (#77324).
2004-03-20 Dirk Mueller <mueller@kde.org>
* xml/dom_docimpl.cpp (processHttpEquiv): improve refresh handling for negative and
slightly malformed delays (#78049)
2004-03-18 Lubos Lunak <l.lunak@kde.org>
* khtmlview.cpp, xml/dom_docimpl.cpp: accesskey attribute support
2004-03-03 Dirk Mueller <mueller@kde.org>
* html/htmlparser.cpp (getElement): try to avoid nesting <nobr> and <wbr>,
but don't forbit it.
2004-03-01 Dirk Mueller <mueller@kde.org>
* rendering/render_text.cpp (calcMinMaxWidth): some more hacks for white-space !=
normal.
* rendering/render_object.cpp (drawBorder): use drawPixel directly.
turns out to be more reliable and equally fast (#62296).
2004-02-29 Dirk Mueller <mueller@kde.org>
* html/html_documentimpl.cpp (determineParseMode): treat xhtml transitional
that way (#76449).
* rendering/bidi.cpp (tqfindNextLineBreak): make sure we move
tqreplaced elements, that don't fit on a line below the floats (#74609).
* rendering/render_tqreplaced.cpp (calcMinMaxWidth): respect
padding and borders (#65788).
* rendering/render_form.h (RenderFormElement): make sure we never
end up getting a border or padding for form elements.
* rendering/render_frames.cpp (partLoadingErrorNotify): don't trigger
slotPartLoadingErrorNotify twice.
(slotPartLoadingErrorNotify): avoid KMessageBox deletion race.
* misc/loader_jpeg.cpp: fix incredibly rare lockup in jpeg decoder.
2004-02-28 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (tqlayoutBlockChildren):
- displace the check for if we need to retqlayout our childs
because of a float. It was outside of loop (#71445)
- remove check for floatBottom() > m_y has it seems outdated.
2004-02-25 Dirk Mueller <mueller@kde.org>
* rendering/render_text.h (class InlineTextBox): rename width(int)
to widthFromStart(int), since it otherwise clashes with upcoming
Safari merges.
* rendering/render_image.cpp (notifyFinished): forward the
notifyFinished call to the inherited class.
* rendering/render_inline.h (class RenderInline):
constructor/destructor cleanup.
* misc/htmlattrs.h: don't export getAttrName symbol.
* rendering/render_object.h (class RenderObject): move background
tqrepaint handling over here, since TableSections don't inherit RenderBox,
but still have a background.
* khtml_settings.cc (init)/html4.css: MediumFontSize up to 12. Form elements
get font-size: small instead.
2004-02-24 Dirk Mueller <mueller@kde.org>
* ecma/xmlhttprequest.h/cpp: Implement asynchronous interface
enough to pass the tests on http://www.mozilla.org/xmlextras/tests.html
* xml/dom2_eventsimpl.h (EventImpl): rename KHTML_KEYUP/DOWN_EVENT
to KEYUP/DOWN_EVENT. Add events needed for XMLHttpRequest.
* rendering/render_object.h (class RenderObject): introduce a PaintInfo
struct that tqcontains the information necessary for all those paint..() methods.
Requires much less parameters to pass and is therefore faster. While being
at it, eliminate the unnecessary virtual method paintObject.
2004-02-23 Stephan Kulow <coolo@kde.org>
* rendering/render_inline.cpp: check if the containingBlock is displayed
as block before using it as continuation (#73573)
2004-02-22 Frerich Raabe <raabe@kde.org>
* khtml_part.cpp/.h (openURL): In case the call is a reload, do a stat
on the user-defined stylesheet and reload it in case it changed in
the meanwhile (#39962).
* khtmlpart_p.h (class KHTMLPartPrivate): Added
m_userStyleSheetLastModified variable which keeps track of the
mtime of the user-defined sheet.
2004-02-20 Germain Garand <germain@ebooksfrance.org>
* rendering/bidi.cpp (operator ++): skip empty RenderText.
Remove unused forcedMinWidth cruft.
* rendering/render_block.cpp (addChildToFlow): keep the refcount
high for first-letter affected text while we manipulate it.
* rendering/render_text.cpp: remove unused forcedMinWidth cruft.
2004-02-20 Frerich Raabe <raabe@kde.org>
* misc/loader.cpp (DOCLOADER_SECCHECK): Adjusted the macro so that it
takes a bool parameter which indicates whether it should check for
invalid redirections.
(requestImage, requestScript): Use DOCLOADER_SECCHECK(true) now
* misc/loader.cpp/.h (requestStyleSheet): Added parameter which tells
whether the given URL references the user-defined stylesheet. If so,
use DOCLOADER_SECCHECK(false) to disable the check for invalid
redirections (it's not useful for the user-defined URL).
* khtml_part.cpp (PartStyleSheetLoader ctor): pass true to
DocLoader::requestStyleSheet to indicate that the user-stylesheet is
loaded. Fixes seemingly ignored user-defined stylesheet. (#69697)
2004-02-17 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (addChildToFlow): first-letter:
better fix for pure punctuation/single letter text childs.
Fixes an invalid reference crash (#70546).
2004-02-16 Germain Garand <germain@ebooksfrance.org>
* css/cssstyleselector.cpp (styleForElement): pseudo-elements
use their subject's style as parentStyle -e.g: 'inherit' value.
(adjustRenderStyle): mutate pseudo style display to block if
needed (floating or ps. content) as allowed by recent CSS2.1
draft.
2004-02-16 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (setStyle): skip pseudo
styles when updating anonymous blocks'style (#73978).
(addChildToFlow):don't crash when installing
first-letter in anonymous blocks or when remaining
content is empty.
* rendering/render_container.cpp (updatePseudoChild):
always regenerate :before/:after content holding
:first-letter.
* rendering/render_style.cpp (addPseudoStyle): don't use
RenderStyle's copy constructor for pseudo-elements.
2004-02-16 Stephan Kulow <coolo@kde.org>
* rendering/render_container.cpp (updatePseudoChild): merge more
code for content generated elements
2004-02-15 Zack Rusin <zack@kde.org>
* xml/dom2_viewsimpl.cpp (getComputedStyle): implementing
26311
* css/css_renderstyledeclarationimpl : implementing
CSSStyleDeclarationImpl which maps the properties
to the rendering tree
* css/css_valueimpl.h: changing some methods to virtual
in order to overload them in RenderStyleDeclarationImpl
2004-02-15 Dirk Mueller <mueller@kde.org>
* css/css_base.cpp (specificity): fix detection of the *
selector (#73214).
2004-02-13 Zack Rusin <zack@kde.org>
* xml/xml_tokenizer (XMLIncrementalSource): implementing
incremental XML parsing
* xml/dom_nodeimpl.h : removing superfluous semi-colons
2004-02-11 Germain Garand <germain@ebooksfrance.org>
Activate merged alternate code path for inline boxes
construction/painting. Whitespace count consistency.
* rendering/bidi.cpp: merge computeHorizontalPositionsForLine
to get properly constructed InlineFlowBoxes.
(Bidinext): merge skipInline bool to avoid leak.
(RenderBlock::bidiReorderLine): handle whitespace count through
category separator_Space
(RenderBlock::tqfindNextLineBreak): account for empty InlineFlow
* rendering/font.cpp (drawText, width): whitespace handling
* rendering/render_box.cpp (position): partial merge
* rendering/render_line.cpp (placeBoxesVertically):
- line-height on block level means minimum line-height for children.
- Don't enlarge boxes to fit font, only shrink (CSS2:10.8.1)
- Add font's half-leading to top and bottom to avoid nodeAtPoint gaps.
Use fm.height(): WebCore's QFontMetrics includes the baseline in descent
* rendering/render_object.cpp (offsetLeft/offsetTop): adjust
(hasStaticX/hasStaticY): merged non-virtual methods
* rendering/render_tqreplaced.cpp (position): do not add margin anymore
* rendering/render_text.cpp: whitespace handling. No more p/b/m.
2004-02-10 Dirk Mueller <mueller@kde.org>
* implement support for pageX/pageY. fix layerX/layerY, which was horrible broken
due to its (wrong) assumption that clientX is the same as pageX (#74718), (#70290).
* dom/dom2_events.cpp (pageX/Y): add bindings.
* html/htmlparser.cpp (insertNode): argh. regression fix (http://www.cygwin.com) (#74329).
2004-02-09 David Faure <faure@kde.org>
* ecma/kjs_events.h (clear): set listener object to Null(), not to an invalid Object(),
which will crash when the listener is stored in another frame (#61467). Maybe it would be better
to really remove the event listener in this case, but this is hard to do efficiently.
2004-02-09 Stephan Kulow <coolo@kde.org>
* css/html4.css: use text-align: left for all input elements
2004-02-09 David Faure <faure@kde.org>
* ecma/kjs_html.cpp (getValueProperty): s/getString/String/ for meta attributes,
fixes http://www.accorhotels.com/fr/fidelisation/travelplus/tp_pros_adh_form.shtml
2004-02-07 Harri Porten <porten@kde.org>
* rendering/render_layer.cpp (sortByZOrder): compile fix for non-gcc
compilers
2004-02-04 Zack Rusin <zack@kde.org>
* dom/dom2_traversal : Making NodeFilter( NodeFilterImpl* )
constructor public. Making setFilter method take arg by
reference
* dom/dom_doc.cpp (createTreeWalker): implementing the
method
* xml/dom2_traversalimpl : Implementing TreeWalkerImpl
* xml/dom_docimpl (createTreeWalker): Implementing the
method
2004-02-04 Stephan Kulow <coolo@kde.org>
* html/html_tableimpl.cpp (insertRow): append to tbody if
there is no tfood for insertRow(numRows) (#74125)
2004-01-29 Germain Garand <germain@ebooksfrance.org>
* xml/dom_elementimpl.cpp (name): return attribute names in lowercase
in compatibility mode. Solves contradiction between DOM L2/L3. Erratum
to DOM L2 is pending, thanks to David Faure.
2004-01-29 David Faure <faure@kde.org>
* ecma/kjs_window.cpp (get): update frame sizes before returning value for
innerWidth/innerHeight, in case the window was just resized (#73528, regtest ecma/window.js)
2004-01-29 Dirk Mueller <mueller@kde.org>
* html/html_inlineimpl.cpp (parseAttribute): restore KDE 3.1 behavior
of <font size=-1> (#73500).
2004-01-26 David Faure <faure@kde.org>
* ecma/kjs_window.cpp (get/hasProperty): Reduce window.<name> to
forms, images and applets, like document.<name> (#71363 comment #5)
by sharing NamedTagLengthDeterminer with kjs_html.cpp
2004-01-26 Dirk Mueller <mueller@kde.org>
* html/html_inlineimpl.cpp (defaultEventHandler): use content, not
viewport coordinates for server side image maps (#59701).
* rendering/bidi.cpp (computeVerticalPositionsForLine): update
overflowWidth, otherwise a lot of things go wrong (#59701).
* misc/loader.cpp (data): correctly emit notifyFinished(), otherwise our
state machine goes out of sync.
* rendering/render_image.cpp: avoid shoot-out effect when neither oimage nor
image are fully loaded. do a tqrepaint when the new image finished loading, so
that it actually updates. avoid reloading images on news.google.com on hover.
* khtmlview.cpp (scheduleRepaint): make scheduling not starvating tqrepaints.
Fix tqrepainting logic to optimize for reduced X server load and minimum CPU
usage in traversing the render tree (#72575).
2004-01-25 Dirk Mueller <mueller@kde.org>
* rendering/render_object (offsetLeft/offsetTop): fix Heirmenus which expect to get the
<body> offset when the offsetParent is the <body> itself.
* misc/loader.cpp (class ImageSource): by default, we're rewindable.
* rendering/render_block.cpp (positionNewFloats): when somebody says
clear: both;, he usually means it (#68068).
* html/html_objectimpl.cpp (renderAlternative): give the alternative rendering
some time to avoid ugly deletion races.
* rendering/render_canvas.cpp (tqlayout): don't recurse when printing (#72775).
* rendering/render_image.cpp (setPixmap): handle cases when
we're not inserted in the tree yet, but the image is already loaded
(this happens when the memory cache actually works) (#73311).
2004-01-23 Lubos Lunak <l.lunak@kde.org>
* html_inlineimpl.cpp (defaultEventHandler): make HTMLAnchorElementImpl
react also on DOMActivate event
2004-01-23 David Faure <faure@kde.org>
* html/html_tableimpl.cpp (insertRow): Fix for DOMTS-L2-HTML test
HTMLTableElement39.html: insertRow(-1) appends to last section in
document order, not to TFOOT.
* xml/dom_docimpl.cpp (hasFeature): Updated to current state.
(createEvent): Allow to create events with eventType="Events"
2004-01-22 David Faure <faure@kde.org>
* xml/dom_nodeimpl.cpp (GenericRONamedNodeMapImpl): Implementation of
node map for entities and notations, required by some DOMTS Core 1 tests.
2004-01-22 Waldo Bastian <bastian@kde.org>
* html/htmlparser.cpp (class HTMLStackElem): ref and unref the nodes to avoid them beeing removed below us (#73112)
2004-01-22 Lubos Lunak <l.lunak@kde.org>
* khtmlview.cpp: make Ctrl only temporary suspend Shift+Down scrolling
2004-01-22 David Faure <faure@kde.org>
* xml/dom_nodeimpl.cpp (setNodeValue): Don't throw NO_MODIFICATION_ALLOWED_ERR from
there, DOMTS-Core-Level1's hc_nodevalue03 says createEntityReference().setNodeValue()
should simply do nothing.
* dom/dom_element.cpp (removeAttributeNode): Fixed logic for NOT_FOUND_ERR.
(setAttributeNode): removed tests for WRONG_DOCUMENT_ERR and
INUSE_ATTRIBUTE_ERR, the latter being incorrect and both being already
done by setNamedItem
* xml/dom_elementimpl.cpp (setNamedItem): if attribute exists already,
return it, to fix DOMTS-Core-level1 test hc_elementtqreplaceattributewithself
2004-01-21 Leo Savernik <l.savernik@aon.at>
* khtml_part.cpp (checkCompleted): do not explicitly set focus to
the document if m_focusNodeNumber is not set (fixes dict.leo.org)
2004-01-21 Stephan Kulow <coolo@kde.org>
* html/html_formimpl.h: handle malformed forms different than
wellformed
2004-01-21 Germain Garand <germain@ebooksfrance.org>
* rendering/render_block.cpp (tqlayoutBlockChildren): use maxTopMargin
again, for correct margin-top determination (#67527)
2004-01-20 Dirk Mueller <mueller@kde.org>
* css/cssstyleselector.cpp (applyRule): Implement handling of
empty-cells.
* css/cssstyleselector.cpp (applyRule): remove superfluous setZIndex(0)
after setHasAutoZIndex, which breaks auto.
2004-01-19 Dirk Mueller <mueller@kde.org>
* rendering/render_object.cpp (getVerticalPosition): improve
logic (#65121).
2004-01-19 Stephan Kulow <coolo@kde.org>
* rendering/render_style.h: providing an initial property
function for every css property and using it in macros
from cssselector.cpp to unify the handling of short hand
properties (based on safari patch)
* css/cssstyleselector.cpp (parseValue): unify handling
of inherited css properties (based on safari patch)
2004-01-18 Dirk Mueller <mueller@kde.org>
* khtmlpart_p.h (class KHTMLPartPrivate): experimental:
copy encoding information from parent frame. helps on
http://www.pfl.ru/ when manually setting the correct encoding.
* rendering/render_container.cpp (addChild): make sure
that a RenderTableCol object is correctly nested inside
a table (#59766).
* xml/dom_elementimpl.cpp (recalcStyle): fix tree corruption
when recalcStyle() happens to be invoked in the wrong moment.
* html/html_baseimpl.cpp (setLocation): fix KURL() casting issue.
2004-01-16 Dirk Mueller <mueller@kde.org>
* rendering/render_image.cpp: remove some asserts that
noone needs anyway (#72739).
2004-01-16 Stephan Kulow <coolo@kde.org>
* html/htmltokenizer.cpp: fixing <pre> parsing (#58584)
2004-01-15 Dirk Mueller <mueller@kde.org>
* misc/loader.cpp (ref): ok, there are cases where an image
gets refed twice from the same client. *sigh*.
2004-01-15 Lars Knoll <knoll@kde.org>
* rendering/render_table.cpp: set overflowWidth to width
when tqlayouting (#72420)
* xml/dom2_eventsimpl.cpp rendering/render_block.cpp
nodeAtPoint() should always use contents coordinates.
2004-01-14 Dirk Mueller <mueller@kde.org>
* misc/loader.cpp: Fix uncachable image leak (#72197).
2004-01-13 Dirk Mueller <mueller@kde.org>
* css/css_ruleimpl.cpp (CSSMediaRuleImpl): set parent to 0
to avoid leak (#70731).
2004-01-13 Germain Garand <germain@ebooksfrance.org>
* rendering/render_canvas.cpp (tqlayout):
force scrollbar visibility status while tqlayouting
to avoid endless cycles (#69613)
2004-01-13 Dirk Mueller <mueller@kde.org>
* ecma/kjs_events.cpp (JSEventListener): store them in a dictionary,
not a linked list.
* css/parser.y: fix rect() parsing problem (#72458).
2004-01-12 Dirk Mueller <mueller@kde.org>
* rendering/render_block.cpp (left/rightRelOffset): recursion protection
(#70608).
* rendering/render_image.cpp (updateFromElement): add tracking of
an oldimage, to avoid a "shoot out" effect on hovering expired images.
2004-01-11 Germain Garand <germain@ebooksfrance.org>
* rendering/render_text.cpp (paintBoxDecorations):
make background images on inlines obbey the full CSS
spec (#59600)
* rendering/render_text.h (paintBoxDecorations): changed prototype
* rendering/render_line.cpp (paintDecorations): disable for now.
2004-01-11 Dirk Mueller <mueller@kde.org>
* html/htmlparser.cpp (insertNode): fix <p><dl> handling (#68167).
* css/css_base.cpp (extractPseudoType): make it case-insensitive (#72159).
2004-01-11 Germain Garand <germain@ebooksfrance.org>
border/padding/margin issues on inlines (#68394)
* rendering/bidi.cpp (computeVerticalPositionsForLine):
add the correct width offset for text objects
* rendering/render_line.cpp (paintBackgroundAndBorder):
guard against invalid width values
* rendering/render_text.cpp (paintDecoration):
revert revision 1.224, avoid resurecting #50683
by matching the conditionals of RenderText::position
(RenderText::nodeAtPoint): revert part of r1.234,
avoid #69345 by commenting incompatible merge.
(RenderText::width): add padding/border/margin
2004-01-10 Dirk Mueller <mueller@kde.org>
* css/html4.css: fix default font/fontsize of input,select and textarea
(#67851).
* misc/loader_jpeg.cpp (decode): try hard not to shoot
down the machine with large images
(try http://www.parisc-linux.org/~willy/kde/graph.jpg)
* rendering/render_image.cpp (tqlayout): ugh, major stupidity. don't rescale large
images if nobody explicitely asked for it. makes loading of very large images
quite a bit faster.
* rendering/render_image.cpp/.h: Reduce X-server pressure with large images (#39693).
* misc/loader_jpeg.cpp: Upon suggestion from Maksim, implement decoding of
nonprogressive jpegs in non-buffered-image mode. This massively reduces memory
footprint and slightly improves performance.
2004-01-09 Dirk Mueller <mueller@kde.org>
* rendering/render_tqreplaced.cpp (eventFilter): readd the wheel event handling
which allows scrolling of the page again. Thanks a lot for just removing it. (#45180)
2004-01-02 Dirk Mueller <mueller@kde.org>
* html/htmltokenizer.cpp (notifyFinished): fix null pointer dereference
in rare cases.
* css/cssstyleselector.cpp (reparseConfiguration): implement.
* khtml_part.cpp (reparseConfiguration): call CSSStyleSelector::reparseConfiguration
instead of ::clear(). much less crashy. (#68141)
2003-12-27 Simon Perreault <nomis80@nomis80.org>
* khtml_part.cpp: Remove unused zoom actions. Assign CTRL + Key_Plus to
zooming in and CTRL + Key_Minus to zooming out.
2003-12-27 Luis Pedro Coelho <luis@luispedro.org>
* misc/loader.cpp : Discard items from cache if they have the wrong type (#68181)
2003-12-20 Koos Vriezen <koos.vriezen@xs4all.nl>
* html_objectimpl.cpp (attach): Check KImageIO::typeForMime first if RenderImage
supports the image format
2003-12-11 Stephan Kulow <coolo@kde.org>
* rendering/render_image.cpp (updateFromElement): set the alt text before doing anything
else, because it might trigger a setting of the error pixmap and then we don't know the
alt text to draw and get wrong sizes
2003-12-10 Germain Garand <germain@ebooksfrance.org>
* rendering/render_tqreplaced.cpp (updateFromElement): don't use setEraseColor for __khtml
widgets as it changes the background mode and induces flicker (#69130)
(copyWidget): retrieve background color from the widget's palette.
2003-12-10 Dirk Mueller <mueller@kde.org>
* rendering/render_list.cpp: fix toLetter, based on Safari patch.
2003-12-09 Dirk Mueller <mueller@kde.org>
* html/html_formimpl.cpp (submit): don't ask over and over again the same question.
2003-12-08 Zack Rusin <zack@kde.org>
* khtmlview.*, html/html_formimpl.cpp (submit): Fixing 67179 -
Possibility to avoid saving form data for certain sites.
2003-12-05 David Faure <faure@kde.org>
Clean up "default handling" of events. Fixes recent regressions like
"arrow keys in lineedit make the scrollview scroll".
* xml/dom_nodeimpl.*: Removed bool return value from most dispatch*Event methods,
documented the two that still return a bool. The meat of the change is
that dispatchKeyEvent returns defaultHandled || defaultPrevented.
* dom/dom_node.cpp (dispatchEvent): Return !defaultPrevented as mandated by
the DOM, now that NodeImpl doesn't do it anymore.
* rendering/render_tqreplaced.cpp (eventFilter): Adapted to new logic
* khtmlview.cpp (dispatchKeyEventHelper): Adapted to new logic
2003-12-05 Stephan Kulow <coolo@kde.org>
* css/cssparser.cpp (parseValue): Do not accept negative values for padding (#59557)
2003-12-05 Lubos Lunak <l.lunak@kde.org>
* khtmlview.cpp, xml/dom2_eventsimpl.*, xml/dom_nodeimpl.*, rendering/render_tqreplaced.cpp :
fix mapping between Qt and DOM key events
2003-12-05 Germain Garand <germain@ebooksfrance.org>
* rendering/render_object.cpp (nodeAtPoint): don't offset
relatively positioned objects coordinates. They already are (#68716/#60453)
* rendering/render_text.cpp (nodeAtPoint): no need to include borders and padding
in the matching region anymore (#69345)
2003-12-05 Germain Garand <germain@ebooksfrance.org>
* rendering/render_box.cpp (paintRootBoxDecorations): use the full canvas's height
when painting the root's background (#55065)
2003-12-03 Stephan Kulow <coolo@kde.org>
* css/html4.css: define default text-tqalignments for input fields to avoid
problems with inherited attributes
2003-12-02 Stephan Kulow <coolo@kde.org>
* html/htmltokenizer.cpp: do not discard any line feed from parsing textareas
2003-11-29 Dirk Mueller <mueller@kde.org>
* css/cssstyleselector.cpp: add indigo/crimson colorhandling as it is not in X11's rgb
names list.
* misc/loader.cpp (CachedCSSStyleSheet/CachedScript::data): add some utf8/utf16 encoding
handling. Workaround Qt bugs (#69115). Initial investigation and patch by Harri.
2003-11-29 Stephan Kulow <coolo@kde.org>
* html/html_elementimpl.cpp (addHTMLAlignment): readding floating for input type="image"
* rendering/render_form.cpp (setStyle): respect text-align style on input elements
(#65610)
* html/html_formimpl.cpp (HTMLInputElementImpl): don't make input elements
floating, but only care for the text tqalignment
2003-11-28 Harri Porten <porten@kde.org>
* css/css_valueimpl.cpp (setProperty): remove superfluous
removeProperty() call. It will be done later in CSSParser. After
after the value has been recognized as valid.
2003-11-28 Germain Garand <germain@ebooksfrance.org>
* html/html_headimpl.cpp (class HTMLLinkElementImpl): grant to alternate sheets
enabled via script the same status as preferred sheets. Restore proper tracking
of pending stylesheets.(#67453/#68504)
* html/html_headimpl.h (HTMLLinkElementImpl::setDisabled)
* xml/dom_docimpl.cpp (recalcStyleSelector): don't remove sheets linked from
DOM-disabled link elements from the list of available alternate stylesheets.
Re-enabling them manually is a valid option.
2003-11-26 Lubos Lunak <l.lunak@kde.org>
* khtmlview.cpp, xml/dom2_eventsimpl.cpp : generate correctly keydown,keypress and keyup events
2003-11-26 Dirk Mueller <mueller@kde.org>
* html/htmlparser.cpp (parseToken): ignore flat on <select>. maybe
we should only do this in compat mode though (#69017).
2003-11-25 Dirk Mueller <mueller@kde.org>
* html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events
on space too.
* css/html4.css: Set quirky margins on elements that need it (#66490).
2003-11-25 Stephan Kulow <coolo@kde.org>
* rendering/render_container.cpp (updatePseudoChild): fix handling of
images in :content (#67373)
* html/html_baseimpl.cpp (parseAttribute): fix parsing of body attributes (safari merge)
* rendering/render_box.cpp (calcAbsoluteVertical): basically reverting commit 1.218
for height calculation. It broke floating images (#67839)
2003-11-25 David Faure <faure@kde.org>
* ecma/kjs_window.cpp: Implement hasProperty and get for frames by number in Window,
to fix window[0] and parent[1] etc. (#56983)
2003-11-25 Germain Garand <germain@ebooksfrance.org>
* khtml_part.cpp (checkCompleted): prepend "Automatic Detection" entry to
"Use Stylesheet" menu.
(slotUseStylesheet): set m_sheetUsed to null string if autodetect is on.
Fixes #54335.
* xml/dom_docimpl.cpp (recalcStyleSelector): if the previous sheet is sticky but
still missing when we've already got <body>, choose the document's best
candidate until parsing ends. Avoids ending with no decision (#63348).
2003-11-24 Dirk Mueller <mueller@kde.org>
* html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events.
Only react when we saw a matching keydown before.
2003-11-24 David Faure <faure@kde.org>
* html/htmlparser.cpp (popInlineBlocks): Fixed infinite loop due to
popOneBlock returning immediately if blockStack==0. #68034.
* rendering/bidi.cpp: Fixed infinite loop with <nobr> due to tqfindNextLineBreak
going back (wrong variable used). #66867, #68598, #59230 and their duplicates.
2003-11-24 Stephan Kulow <coolo@kde.org>
* css/cssparser.cpp (parseFontFamily): handle invalid font families like
font-family: ms sans serif, utopia
* css/css_valueimpl.cpp (FontFamilyValueImpl): merging safari code to handle
invalid font families. Replacing buggy font maching by substring search by
simply ripping out "MS" and searching for similiar fonts
2003-11-24 David Faure <faure@kde.org>
* html/htmlparser.cpp (getElement, processCloseTag): Allow only one
non-empty <title> tag, discard any following <title> tag. This matches
both IE and Mozilla. Testcases khtmltests/regression/tests/ecma/title*
* html/html_headimpl.cpp (childrenChanged): Set title immediately, like
other browsers do.
2003-11-23 Germain Garand <germain@ebooksfrance.org>
* html/html_imageimpl.cpp (attach): don't create a renderer if our parent doesn't
allow childs. e.g: a RenderPartObject (#66793)
2003-11-23 Stephan Kulow <coolo@kde.org>
* css/cssstyleselector.cpp (applyRule): fixing my fix for #60556, which
introduced quite some regressions (thanks to Paul Sprakes for working
that out with me)
2003-11-22 Stephan Kulow <coolo@kde.org>
* rendering/render_line.cpp (paintDecorations): avoid underlining elements that
have no dimension in itself (#68728)
2003-11-22 Koos Vriezen <koos.vriezen@xs4all.nl>
* html_miscimpl.cpp (HTMLCollectionImpl): Make
window.xxx == document.xxx for APPLET/OBJECT/EMBED elements, using
ID or NAME attributes, behave alike
2003-11-22 Germain Garand <germain@ebooksfrance.org>
* dom/css_value.cpp (getPropertyPriority): const version was declared
but not implemented
* rendering/font.cpp (drawText): do not use DirWS to count spaces
when justifying, it won't count 's (#65903)
* rendering/render_text.cpp (class InlineTextBox): ditto.
2003-11-19 Dirk Mueller <mueller@kde.org>
* html/html_baseimpl.cpp (attach): respect display: NONE on <frame>, since
it is used to indicate the FOUC prevention code path now.
* css/cssparser.cpp (parseColor): remove use of invalidColor. use a boolean
return instead. invalidColor was confusing as it was actually a valid color.
Also add rgba() parsing.
* css/cssstyleselector.cpp (adjustRenderStyle): add check to avoid that
<FRAME> gets a display != BLOCK assigned (#63640).
2003-11-18 Harri Porten <porten@kde.org>
* ecma/kjs_html.cpp: limit collection length to >= 0 (Maciej)
2003-11-18 David Faure <faure@kde.org>
* css/css_valueimpl.* (cssText): cssText implementation from Maciej Stachowiak.
2003-11-17 David Faure <faure@kde.org>
* khtml_part.cpp (processObjectRequest):
Stop the spinning wheel on <frame src="">.
Testcase: webcore's fast/frames/empty-frame-src.html
2003-11-17 Stephan Kulow <coolo@kde.org>
* rendering/render_*.cpp: changing the output of dump to
get a more comprehensive renderer tree output - as inspired
by Safari's kwqDebugTree. This allows for a change in
test_regression to check tqlayouts
2003-11-15 Zack Rusin <zack@kde.org>
* rendering/render_box.cpp (calcHeight): correctly compute the
height for relatively positioned object with percentage based
dimensions - pretty much a merge from safari (#53902)
2003-11-14 Germain Garand <germain@ebooksfrance.org>
fix "overflow: scroll" tqlayout/painting issues
* rendering/render_box.cpp (getOverflowClipRect): substract
scrollbars width/height if any. Merged from WebCore.
* rendering/render_layer.cpp (horizontalScrollbarHeight,
verticalScrollbarWidth): use tqpixelMetric instead of width()/height().
2003-11-13 Zack Rusin <zack@kde.org>
* rendering/render_box.cpp (calcAbsoluteVertical): fix the
computation of the height for the percentage positioned elements
contained in the root
2003-11-11 Dirk Mueller <mueller@kde.org>
* rendering/render_style.h (StyleBoxData>): fix SunProCC
compatibility problem.
* xml/dom_elementimpl.cpp (attach): don't attach a renderobject
to a parent that does not support childs (childAllowed()).
* html/html_objectimpl.cpp (attach): check for childAllowed().
* xml/dom_textimpl.cpp (attach): check for childAllowed().
* misc/loader.cpp (CachedCSSStyleSheet): add "*/*;q=0.1" to the
accept header (#67803).
2003-11-10 David Faure <faure@kde.org>
* khtml_part.cpp: Ask the user "open or save?" before embedding a
non-usual mimetype into a frame (e.g. ZIP files or PS files).
(html and images are the 'usual' exceptions)
Includes a dontshowagain checkbox, so this shouldn't be too annoying.
2003-11-07 Stephan Kulow <coolo@kde.org>
* css/cssparser.cpp (parseValue): set the background-* properties
to their initial value before expanding (#64743)
2003-11-07 Dirk Mueller <mueller@kde.org>
* css/css_valueimpl.cpp (cssText): wrap uri's into url().
Stephan Kulow noted that other browsers do that.
* rendering/render_list.h (class RenderListItem): another
SunCC incompatibility fixed. Only applies to HEAD (*phew*).
2003-11-05 Germain Garand <germain@ebooksfrance.org>
Refinement of namespace handling for Attributes,
following David's patch of 2003-10-25.
* xml/dom_elementimpl.cpp: get rid of the m_localName string member
for Attributes.
(AttrImpl::cloneNode): fix wrong argument order in ctor call
* xml/dom_docimpl.cpp (getId/getName): fix problems introduced by the
switch to an Id of zero for both global and XHTML Namespace. Zero is
also what a failed QDict lookup returns...
2003-11-05 Dirk Mueller <mueller@kde.org>
* html/htmltokenizer.cpp (parseEntity): fix annoying entity parsing problem
that caused stale ';''s popping up everywhere.
2003-11-04 Leo Savernik <l.savernik@aon.at>
* khtml_part.{cpp,h} (selection): Added new overloaded function to
return selection boundaries.
2003-11-04 Dirk Mueller <mueller@kde.org>
* html/html_baseimpl.cpp (attach): fix assertion failure thanks
to the FOUC patch.
2003-11-04 David Faure <faure@kde.org>
* html/html_documentimpl.cpp (close): Ensure setTitle is called
at least once, with an empty string if there's no title tag.
* xml/dom_docimpl.cpp (setTitle): Skip equality test if passing an
empty title, since m_title is initially empty.
2003-11-03 Dirk Mueller <mueller@kde.org>
* misc/loader.cpp (buildAcceptHeader): add */* to Accept-Header
for image requests with low priority to fix www.tweakers.net (#53515).
* css/parser.y: lowercase the media we get via CSS stylesheets.
Its true that the media is case insensitive in CSS, but it is
case sensitive in HTML, and as we don't want to do the code twice
we cheat a little here.
Also change media parsing logic for @import to handle
http://www.hixie.ch/tests/evil/css/import/extra/importexoticmedia.html
correctly (idea by Stephan Kulow).
* html/html_formimpl.cpp (defaultEventHandler): react on space too
(#64200).
* dom/html_base.cpp (src): return the completeURL.
* html/html_formimpl.cpp: remove the addCSSProperty calls and put
them in the default stylesheet. the original reasons for them in that
place is no longer valid since we implemented the CSS 2.1 selector rules.
2003-11-02 Dirk Mueller <mueller@kde.org>
* rendering/render_form.cpp (setStyle): check for direction (#57626)
on RenderLineEdit and RenderTextArea.
* khtmlview.cpp (viewportWheelEvent): toggle Font zooming orientation (#61862).
* rendering/render_box.cpp (paintBackgroundExtended): implement. needed
for inline elements background drawing somewhen.
* rendering/render_object.cpp (nodeAtPoint): merge from Safari. Still
does not work, but at least its the same now.
(lineHeight): handle tqreplaced elements here. They don't necessarily
inherit RenderReplaced anymore.
(baselinePosition): handle tqreplaced elements.
* rendering/render_tqreplaced.cpp: remove baselinePosition/lineHeight. its in
RenderObject now.
* rendering/render_block.cpp (isSelfCollapsingBlock): collapse away trailing whitespace
at the end of the block.
(setStyle): set "isReplaced" for display: inline-block.
(addChildToFlow): Make sure we don't append things after :after generated content.
(calcInlineMinMaxWidth): respect text-indent (taken from WebCore 106).
2003-11-02 Stephan Kulow <coolo@kde.org>
* rendering/render_form.cpp (updateFromElement): tqinvalidate the size hint
of comboboxes as they are cached in QComboBox (#64229)
2003-11-01 Dirk Mueller <mueller@kde.org>
* css/cssstyleselector.cpp (applyRule): handle clear: none (#57676)
2003-10-31 David Faure <faure@kde.org>
* html/html_inlineimpl.cpp (defaultEventHandler): Another wrong use of detail()
instead of the new isDoubleClick(), which made it impossible to click on the
same link twice without moving the mouse (#58241).
2003-10-30 Dirk Mueller <mueller@kde.org>
* xml/dom_docimpl.cpp (open): do a full detach()/attach(),
otherwise we're corrupting the rendertree (#66590).
2003-10-29 Stephan Kulow <coolo@kde.org>
* html/htmltokenizer.cpp (processListing): fixing textarea regression
2003-10-29 David Faure <faure@kde.org>
* ecma/kjs_dom.cpp: Patch from Darin Adler to implement Node.item.
2003-10-29 Leo Savernik <l.savernik@aon.at>
* khtml_part.cpp (khtmlMousePressEvent): Fixed occasional selection
of image on which a drag had been initiated.
2003-10-29 David Faure <faure@kde.org>
* ecma/kjs_window.cpp (Window::openWindow): patch from Maciej to allow
floats in window.open properties (e.g. small window at saabusa.com)
2003-10-28 David Faure <faure@kde.org>
* khtmlview.cpp (viewportMouseDoubleClickEvent): Set bool in MouseEventImpl
when handling a double click. The DOM API only has "number of clicks at the
same place" notion, but not whether they happened quick or over a long time.
Added support for small mouse movement when double-clicking, like in mousePressEvent.
* xml/dom2_eventsimpl.*: Added m_isDoubleClick bool for the reason above.
* xml/dom_nodeimpl.cpp (handleLocalEvents): Use new MouseEventImpl::isDoubleClick()
to differenciate between click and dblclick. Lars used the QMouseEvent type,
but when the event comes from JS - initMouseEvent+dispatchEvent, there's
no QMouseEvent - which broke test_regression.
2003-10-28 Stephan Kulow <coolo@kde.org>
* khtml_part.cpp (reparseConfiguration): clear the style selector
2003-10-28 Leo Savernik <l.savernik@aon.at>
* rendering/render_tqreplaced.cpp (checkSelectionPoint):
Readded RenderReplaced::checkSelectionPoint to fix disrupted selection
of sole inline images within block elements (<p><img ...></p>).
Also fixes caret placement issues.
2003-10-28 David Faure <faure@kde.org>
* ecma/kjs_window.cpp (goURL): Compare the URLs without the ref, fixes
wrong reload when opening a tree-like structure (#54358).
* ecma/kjs_html.cpp (getValueProperty): (#54929)
Fixes for HTMLAnchorElement properties, return empty strings instead
of null, and let "text" return plain text instead of HTML.
* html/html_elementimpl.cpp (innerText): Fix for empty elements.
2003-10-27 David Faure <faure@kde.org>
* khtmlview.cpp (dispatchKeyEvent): Generate keypress, keydown and keyup
events for the document if no node has the focus. Factorized code in
a new method, dispatchKeyEvent. Cleaned up old unused variables d->lastKeyNode
and d->lastKeyPress. #42918 and #43072, google keys.
* xml/dom_elementimpl.h (checkQualifiedName): Added bool nameCanBeEmpty,
and fixed again: DOM3 now says a null qualifiedName is allowed in createDocument.
* xml/dom_docimpl.cpp (createDocument): Pass nameCanBeEmpty=true, to
allow the commonly found implementation.createDocument("","",null); (#61650)
* html/html_elementimpl.cpp (HTMLElementImpl): Fixed wrong m_htmlCompat
value when parsing HTML in HTML-compat mode, get it from the doc's setting.
* xml/dom_docimpl.cpp (createElementNS): Always set m_htmlCompat, now that
the HTMLElementImpl constructor sets it too.
* xml/dom_nodeimpl.cpp (handleLocalEvents): fixed crash when a mouse event
is dispatched via the DOM API, with initMouseEvent, dispatchEvent.
2003-10-26 David Faure <faure@kde.org>
* xml/dom_docimpl.cpp (getId): added bool lookupHTML, set to true in most
places, to fix e.g. css selector broken by my previous change, and set
to false from createElementNS to still skip the lookup for HTML tags.
2003-10-25 Dirk Mueller <mueller@kde.org>
* rendering/render_form.h (class RenderFileButton): use KURLRequester
instead of just doing the stuff on our own in a worse way (#62328).
Also provides completion, yay! :)
right now <input type=file> has severe rendering errors which I blame
on the widget painting code from Lars.
2003-10-25 David Faure <faure@kde.org>
Make use of the ID scheme much more for elements, getting rid of
m_localName and m_tagName strings in XMLElementImpl.
* misc/maketags: switched to lowercase; uppercase is the html-compat case only.
* html/html_elementimpl.cpp(tagName,localName): lookup name from id, with proper
handling of m_htmlCompat vs xhtml difference.
* html/html_elementimpl.h: removed m_xhtml bool, becomes bitfield in NodeImpl instead,
since XML elements can be in "HTML compat" mode too (uppercased).
* xml/dom_docimpl.cpp (DocumentImpl): XML namespace is id 0 again
* xml/dom_docimpl.cpp (createElementNS): check for exceptions when
setting the prefix; set HTML compat mode in the element if necessary.
Only look for the ID if it's an XML element - if not, createHTMLElement did it.
* xml/dom_docimpl.cpp (getId): Do not apply the html-compat case hacks
when looking up elements. This is done by createElement[NS] now. Left
the code for the attribute lookup only.
* xml/dom_elementimpl.cpp (XMLElementImpl::XMLElementImpl): ctor only needs id and prefix.
Removed m_tagName and m_localName member vars in all methods, used id lookups instead.
* xml/dom_elementimpl.cpp (cloneNode): fixed namespace being lost. Factorized
common code with HTMLElementImpl in finishCloneNode.
* xml/dom_nodeimpl.*: added m_htmlCompat bool in bitfield. Only makes
sense for elements currently, but would take more memory in ElementImpl.
* xml/dom_docimpl.cpp (DOMImplementationImpl::createDocument):
DOM3 now says a null qualifiedName is allowed in createDocument.
2003-10-24 Dirk Mueller <mueller@kde.org>
* css/html4.css (marquee): don't set display: none, it might
contain useful text (its used on ebay.com for every second article).
* html/html_formimpl.cpp/h: revert this commit:
* remove lot's of addCSSProperty calls and moved the
definitions to the default style sheet. This made
it possible to remove quite some code in html_formimpl.cpp
* rendering/render_form.cpp (updateFromElement): Fix coolo's commit (#61347)
2003-10-24 Germain Garand <germain@ebooksfrance.org>
* General scope of the change:
- bring back the NodeImpl_NSMask bits in id() for Attributes and XMLElements
=> the cssselector need that to support CSS namespaces in an efficient way.
=> fixes CSS selection for XML documents
- change Nodeimpl::Id registration mechanism:
We tried to solve the DOM1/DOM2 NS methods compatibility problems
by registering the qualifiedName. However, this is doomed to fail in other
places that relies on Ids because prefixes aren't encoded in the Ids and
are irrelevant for NS nodes identification.
Instead, use registered aliases (see DocumentImpl::getId) to solve
compatibility issues while maintaining a sound Id system.
* css/cssstyleselector.cpp: change getId calls
* css/parser.y: ditto
* dom/dom_doc.cpp: change getId/implementation method calls
(DOM::Document::createElement): check DOM exceptions
(DOM::Document::createElementNS): ditto
(DOM::Document::createAttribute): ditto
(DOM::Document::createAttributeNS): ditto
(DOM::Document::createDocumentFragment): ditto
* dom/dom_element.cpp: change getId/implementation method calls
* dom/dom_node.cpp: ditto
* html/html_documentimpl.cpp:
(HTMLDocumentImpl::createElement): check DOM exceptions
* html/html_documentimpl.h: ditto
* html/html_elementimpl.cpp: use m_xhtml bool flag to distinguish HTML/XHTML elements
* html/html_elementimpl.h:
(DOM::HTMLElementImpl::HTMLElementImpl): init m_xhtml
(DOM::HTMLElementImpl::setXHtmlElement): set/retrieve m_xhtml (non-virtual)
(DOM::HTMLElementImpl::isXHtmlElement): ditto
* html/htmlparser.cpp: change getValue/setValue syntax
* html/htmltokenizer.h: change getId calls
* rendering/render_frames.cpp: ditto
* xml/dom_docimpl.cpp: IdNameMapping is now a struct holding QDicts. getId dynamically choses
the struct to be used based on it's first argument (ElementId, AttributeId, NamespaceId)
(DOMImplementationImpl::createDocument): factor qualifiedName checking code
(DocumentImpl::createAttribute): New. Mirrors DOM.
(DocumentImpl::createAttributeNS): ditto
(DocumentImpl::createElementNS): check exceptions in qualifiedName
* xml/dom_docimpl.h: IdNameMapping change
* xml/dom_elementimpl.h:
* xml/dom_elementimpl.cpp:
(AttrImpl::AttrImpl): no more m_namespaceURI, now dynamically retrieved with getName(NamespaceId...)
(AttrImpl::nodeName): now built from prefix + localName
(ElementImpl::setAttributeNS): check exceptions on qualifiedName
(XMLElementImpl::XMLElementImpl): no more m_namespaceURI, now dynamically retrieved with getName(NamespaceId...)
restore m_id (as in 3_1_BRANCH) for correct CSS selection on XML Elements
* xml/dom_elementimpl.h:
(DOM::checkQualifiedName): inline DOM helper, factoring qualifiedName exception checkings
(DOM::splitPrefixLocalName): inline DOM helper, avoids scanning qualifiedName multiple times
* xml/dom_nodeimpl.h:
(DOM::NodeImpl::): enum IdType for (ElementId, AttributeId, NamespaceId)
* xml/xml_tokenizer.cpp:
(XMLHandler::startElement): use the qualifiedName instead of the localName
in order to know the prefix if any.
2003-10-24 Stephan Kulow <coolo@kde.org>
* rendering/render_form.cpp (updateFromElement): support disabled attribute
select option (#61347)
2003-10-24 Lars Knoll <knoll@kde.org>
* Make the <button> element work correctly
* remove lot's of addCSSProperty calls and moved the
definitions to the default style sheet. This made
it possible to remove quite some code in html_formimpl.cpp
2003-10-24 Lars Knoll <knoll@kde.org>
* A few more small fixes to Html event handlers. We can unfortunately not
easily get the events for <select> and <textarea> correct, as they use
either modality or QScrollView (but doesn't work in 3.1.x neither).
2003-10-24 Lars Knoll <knoll@kde.org>
* Hopefully fixed most tqrepainting problems.
2003-10-24 Lars Knoll <knoll@kde.org>
* Fix most of the form related regressions introduced by my
changes earlier on. onfoo event handlers are now fired in a
way that is mostly compatible to IE for <input type=xxx>.
Other form elements might still need some work.
2003-10-23 Lars Knoll <knoll@kde.org>
* Fix nodeAtPoint for elements that have no child (makes links on images
work again)
* Fix null pointer dereferencing in RenderLayer::updateHoverActiveState
2003-10-23 Stephan Kulow <coolo@kde.org>
* html/htmltokenizer.cpp (processListing): do not discard all white space
in textareas (#62076)
* css/cssstyleselector.cpp (applyRule): if the first font isn't found,
continue looking (#60556)
2003-10-22 Dirk Mueller <mueller@kde.org>
* rendering/render_box.cpp (calcAbsoluteHorizontal): fixed containing block
height calculation for position:fixed.
(paintBackground): fix negative backgroundx/y positioning. fix
background-attachment: fixed (http://placenamehere.com/safari/fixedbgtest.html)
avoid division by zero. fix table background positioning (#49336).
http://c133.org/testcase1.html, http://c133.org/testcase2.html,
http://c133.org/testcase3.html
* misc/loader.cpp (pixmap_size/valid_rect): return useful values for the error image
to avoid that its shown as null pixmap (#42233).
2003-10-21 Dirk Mueller <mueller@kde.org>
* rendering/render_list.cpp (calcListValue): skip anonymous block while searching
for the <ol> block. Thanks to the Maksim regression testengine.
* rendering/render_object.cpp (setOverhangingContents): refine assert to avoid
crash on bananalotto.com. Adjust to changed containingBlock() behavior.
* html/html_listimpl.cpp (attach): fix thinko. Revert Safari merge which
broke <ul><p><li>. Thanks to Maksim for noticing.
* rendering/render_list.cpp (calcListValue): handle <ul><p><li> again.
* rendering/render_box.cpp (tqrepaint): revert commit which introduced another
4 bytes overhead. No need to waste memory here.
* rendering/render_object.cpp (setStyle): schedule tqrepaint on old object
when the new outline is going to be thinner.
* rendering/render_form.cpp (RenderCustomButton): Remove.
* rendering/render_tqreplaced.cpp (RenderReplaced::checkSelectionPoint): Remove.
RenderObject/RenderBox'es implementation *must* work. No need to add useless code.
* rendering/render_tqreplaced.cpp (RenderReplacedBlock): Remove.
* html/html_formimpl.cpp (HTMLButtonElement::attach): Remove.
* rendering/render_box.cpp (calcWidth): implement CSS min-width/max-width
support (#12994).
* rendering/render_block.cpp (renderName): don't crash when style() is 0L.
* rendering/render_object.h (class RenderObject): remove isRunIn() / isCompact().
We can use style()->display() here, and it is inconsistent with the other is*
members which usually do not access style() (that can be 0L).
* rendering/render_object.cpp (createObject): create RenderBlock for INLINE_BLOCK.
* css/html4.css (BUTTON/LEGEND): set display: inline-block.
* css/cssstyleselector.cpp (styleForElement): handle COMPACT/RUN_IN/INLINE_BLOCK
(applyRule): handle INLINE_BLOCK.
* css/makeprop: don't export getPropertyName. declare it.
* xml/dom_nodeimpl.cpp (tqreplaceChild/appendChild/removeChild):
Reverting patch which tqinvalidated tqlayout on child when it was attached.
2003-10-20 Lars Knoll <knoll@kde.org>
* fix most issues with the layering code by
merging and adapting safaris implementation
* fix a bug in RenderBox::calcAbsoluteVertical(), that probably
has destroyed a lot of tqlayouts.
* don't add the scroll offset in RenderBox::paintBoxDecorations()
2003-10-20 Dirk Mueller <mueller@kde.org>
* css/html4.css (UL,MENU,DIR,OL): don't set flow-around-floats (#53429).
2003-10-20 David Faure <faure@kde.org>
* xml/dom_docimpl.cpp (defaultEventHandler): set current target to 0 for window events.
* ecma/kjs_events.cpp (handleEvent): Window events like window.onload window.onresize etc.
must have 'this' set to the window (not to the document).
2003-10-20 Dirk Mueller <mueller@kde.org>
* rendering/render_form.cpp (tqlayout): set IE-CSS-extension style palette
on <textarea> scrollbars (#56532).
* rendering/render_layer.cpp (showScrollbar): set IE-CSS-extension styled
palette on the overflow=scroll/auto scrollbars.
* rendering/render_frames.cpp (close): reorder. updateWidget() might
delete this.
* html/html_formimpl.cpp (value): return the DOM "defaultValue" when we have
no renderer.
(encoding): submit textarea even if display=none (#49829)
* ecma/kjs_dom.cpp (getValueProperty): add bindings to clientWidth/Height,
scrollWidth/height,offsetTop/left,offsetWidth/Height,offsetParent.
(getValueProperty): don't map body to canvas (#59676).
* split up borderSpacing into a horizontal and vertical border spacing so that
tables can have assymmetric spacing.
* html/htmlparser.cpp (insertNode): don't set css list position on stray <li>
elements. its an inherited attribute, and might mess up rendering of nested
<ul>/<ol> constructs.
* rendering/render_list.cpp: ListItems are no longer floats.
2003-10-19 Dirk Mueller <mueller@kde.org>
* html/html_headimpl.cpp (childrenChanged): make sure that we respect the media
attribute of <style> (#47786).
2003-10-19 Harri Porten <porten@kde.org>
* html/html_documentimpl.cpp (setCookie): use latin1 encoding to
have a 1:1 translation of the lowest Unicode row.
2003-10-19 Dirk Mueller <mueller@kde.org>
* html/htmltokenizer.cpp (parseEntity): when entity is terminated and result
is not-ascii, require ending ';'. khtmltests/html/parser/obscure_entity_tokenizing.html
2003-10-18 Dirk Mueller <mueller@kde.org>
* css/cssstyleselector.cpp (checkOneSelector): fix selector list matching
when substrings match in a word. we have to test if we matched a complete word,
otherwise its not a match.
* html/htmltokenizer.cpp (parseEntity): don't do the magic-unterminated-entities-IE-hack
when inside a tag. fixes <a href="/foo.html§ion=2">
* html/htmlparser.cpp (insertNode): fix typo (#66200).
* rendering/render_table.cpp (seekCell): make static. check for out of bounds.
* rendering/render_table.cpp (RenderTableSection::checkSelectionPoint): fix
brain damage (#66198).
2003-10-14 David Faure <faure@kde.org>
* misc/htmltags.in, html/htmlparser.cpp, html/dtd.cpp: added very basic
support for <ilayer>, much like <layer>, as a generic block element.
Fixes sites looking for such elements by ID, like www.sp ort1.de's diashow.
2003-10-14 Wilco Greven <greven@kde.org>
* ecma/kjs_window.cpp (tryCall): Scroll should do the same as
ScrollTo, not ScrollBy. #63301
2003-10-14 David Faure <faure@kde.org>
* xml/dom_nodeimpl.cpp (handleLocalEvents): Fixed infinite loop in
NodeImpl::handleLocalEvents due to braindead QPtrList behavior. #61623.
2003-10-10 Harri Porten <porten@kde.org>
* ecma/kjs_html.cpp: title and alt attributes should never be null
* ecma/kjs_html.cpp (toString): make use of alt attribute if set
2003-10-09 Dirk Mueller <mueller@kde.org>
* ecma/kjs_dom.cpp (putValueProperty): don't scroll layer when there is is nothing
to scroll. (David Hyatt)
* rendering/render_object.cpp (scrollHeight): return overflowHeight() not contentHeight()
by default. (David Hyatt)
* rendering/render_object.cpp (scrollWidth): return overflowWidth() not contentWidth()
by default. (David Hyatt)
* html/htmltokenizer.cpp (parseEntity): Improve tokenizing of unterminated
entities.
2003-10-09 Leo Savernik <l.savernik@aon.at>
* rendering/render_object.{cpp,h} (getTextDecorationColors),
rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration, RenderText::paintObject),
rendering/render_style.{cpp,h},
css/cssstyleselector.cpp (styleForElement):
fixed text-decoration issues by merging RenderObject::getTextDecorationColor
from Safari, changed CSSStyleSelector appropriately
* rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration),
rendering/font.{cpp,h} (drawText, drawDecoration):
fixed drawing of text decoration within selected text
* rendering/render_text.cpp (paintObject),
rendering/font.{cpp,h} (drawText):
fixed overspilling of selection with unusual line-height configurations
2003-10-07 Germain Garand <germain@ebooksfrance.org>
* khtmlview.cpp (viewportMouseReleaseEvent/viewportMouseMoveEvent): forward
meaningful peripheral mouse events to focused widget to restore correct
mouse handling in proxied widgets. #65216 (selection part)
* rendering/render_tqreplaced.cpp (handleEvent):
map MOUSEOUT/MOUSEOVER DOM events to Enter/Leave events. Honours stacking
while mouse buttons are pressed.
* html/html_formimpl.cpp (defaultEventHandler): forward MOUSEOUT/MOUSEOVER
to handleEvent
2003-10-06 Daniel Molkentin <molkentin@kde.org>
* ecma/kjs_window.cpp: added window.open targets _self and tqreplace
2003-10-06 David Faure <faure@kde.org>
* ecma/kjs_html.cpp: Fixed crash due to onload=null in the onload event
handler (#57195).
2003-10-06 Dirk Mueller <mueller@kde.org>
* khtml_part.cpp (jScript): remove broken #ifdef'ery.
(popupMenu): add a QGuardedPtr to detect the case when we're destructed
before the popup menu is closed. avoid accessing any "this" then.
#43389
* khtmlview.cpp (viewportMousePressEvent): reorder afaik unrelated code
to make the one call entering a local event loop the last, so that we can
cleanly exit when it the view is already deleted.
* khtml_ext.cpp (KHTMLPopupGUIClient): pass TQObject parent
2003-10-05 Dirk Mueller <mueller@kde.org>
* ecma/kjs_css.cpp (tryPut): Fix CSSValue refcounting error causing major
memory leak.
* dom/css_value.cpp/h (class CSSStyleDeclaration): make accessors const. Add
binary compatibility wrappers.
2003-10-04 Germain Garand <germain@ebooksfrance.org>
* rendering/render_tqreplaced.cpp (baselinePosition): use setPos to adjust
layer position if needed. Fix relatively positioned widgets not being painted.
2003-10-04 Dirk Mueller <mueller@kde.org>
* html/htmlparser.h (class KHTMLParser): keep "current" NodeImpl referenced
to avoid ugly crashes when DHTML deletes the node while we're still parsing.
#57020, testcase alja.html
2003-10-04 Dirk Mueller <mueller@kde.org>
* khtml_settings.cc (init): change default for JS debugger to off.
* html/html_elementimpl.cpp (createContextualFragment): Fix memory
leaks. Adjust code style. Adjust return to avoid dangling return leaks.
* xml/dom2_rangeimpl.cpp (createContextualFragment): adjust return type.
* html/html_elementimpl.h (class HTMLElementImpl): adjust return type.
* dom/dom2_range.cpp (createContextualFragment): Adjust to DocumentFragment
return type.
|