File: ChangeLog

package info (click to toggle)
virt-viewer 8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 6,152 kB
  • sloc: ansic: 25,032; sh: 4,337; makefile: 419; xml: 21
file content (9737 lines) | stat: -rw-r--r-- 394,549 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
2019-03-01  Daniel P. Berrangé  <berrange@redhat.com>

	Update NEWS for 8.0 release

	rpm: use the mingw hicolor icon theme not native

	Add glib2-devel for mingw build
	The native glib2-devel package is needed for mingw builds in order to
	get the glib-compile-schemas binary.

2019-02-22  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	iso-dialog: Move type definitions from header to source file
	There is no reason for this object to define a private structure, so it
	is fine to make everything private to the dialog itself.

	Update usage of GObject private structures
	New functions and macros have been added in glib 2.38 to better handle
	this case.

	https://gitlab.gnome.org/GNOME/glib/blob/c8de2b11bbbf5705ee20bf68d0c11e455b441312/NEWS

	The old method is being deprecated as of version 2.58.

	https://gitlab.gnome.org/GNOME/glib/merge_requests/7/commits

2019-02-19  Daniel P. Berrangé  <berrange@redhat.com>

	msi: record full build environment in MSI installer
	For proper compliance with the GPL and other licenses we need to be
	clear about exactly what toolchain and dependent packages we used in
	order to build the MSI installer we distribute.

	Historically we've done this by including a "deps.txt" file which
	provides a list of all the mingw{32,64}-* RPMs on the host system.

	This is not sufficient information, however, because the build system
	will in fact use various native packages too from the toolchain too,
	notably including any program run by "configure" which covers various
	shell utilities, and pkg-config, and then of course make & msitools
	itself.

	Rather than try to figure out which subset of host RPMs are used,
	just list every single host RPM that is installed.

	A key implication of this is that formal release builds should always
	be done in a pristine build root populated with the minimal content
	required for the build.

	Declare VirtViewerFile variable at start of method
	virt_viewer_session_vnc_auth_credential uses gotos which jump over the
	declaration of 'file', meaning its contents are uninitialized in the
	jump target.

	Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

	Fix prototype of function with no arguments
	Modern C standard requires the function to be "void"

	Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

	Fix signed/unsigned mixup in format args
	Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

2019-02-13  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	window: Use proper define from glib for ignoring deprecated warning
	Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

2019-02-12  Daniel P. Berrangé  <berrange@redhat.com>

	Disable deprecation warnings for gtk_window_fullscreen_on_monitor
	We use GLIB_VERSION_MAX_ALLOWED to prevent use of functions from
	GTK >= 3.12. When we do conditional compilation based on a GTK
	version check, we must thus suppress the warning:

	  CC       libvirt_viewer_la-virt-viewer-window.lo
	../../src/virt-viewer-window.c: In function 'virt_viewer_window_enter_fullscreen':
	../../src/virt-viewer-window.c:608:9: error: 'gtk_window_fullscreen_on_monitor' is deprecated: Not available before 3.18 [-Werror=deprecated-declarations]
	         gtk_window_fullscreen_on_monitor(GTK_WINDOW(priv->window),
	         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	In file included from /usr/include/gtk-3.0/gtk/gtkdialog.h:32,
	                 from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
	                 from /usr/include/gtk-3.0/gtk/gtk.h:31,
	                 from ../../src/virt-viewer-window.c:28:
	/usr/include/gtk-3.0/gtk/gtkwindow.h:391:10: note: declared here
	 void     gtk_window_fullscreen_on_monitor(GtkWindow *window,
	          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	cc1: all warnings being treated as errors

2019-02-04  Marc-André Lureau  <marcandre.lureau@redhat.com>

	build-sys: lower spice-gtk requirement to 0.35 again
	Compile out QMP channel support if spice-gtk version < 0.36.

	(note: I didn't bother adding configure switch to enable it
	explicitly, this could be added later if necessary)

	Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

2019-02-01  Paul Donohue  <virt-tools@PaulSD.com>

	Report gtk_accel_map_change_entry() failures
	Message-Id: <1533340753-24176-2-git-send-email-virt-tools@PaulSD.com>
	Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

2019-02-01  Marc-André Lureau  <marcandre.lureau@redhat.com>

	spice: hook into QMP port
	If the "org.qemu.monitor.qmp.0" port is available:
	- enable the VM UI
	- get and follow the VM state
	- send the requested VM actions

	This requires spice-gtk version 0.36 with SpiceQmpPort helper.

	Acked-by: Victor Toso <victortoso@redhat.com>

	spice: hook into port channel to create VTE terminals
	QEMU defines a few Spice port channel names in
	docs/spice-port-fqdn.txt that can be interacted with a terminal.

	Create VirtViewerDisplayVte display for all known terminal channel,
	and redirect read/write signals.

	Note that if VTE support is disabled, or if the VTE console isn't
	shown, spice-gtk will still process those port channels (discarding
	the read if VTE is disabled).

	Acked-by: Victor Toso <victortoso@redhat.com>

	session: do not take VTE display into account for geometry changes
	Acked-by: Victor Toso <victortoso@redhat.com>

2019-01-28  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix regression when showing disconnect error
	Commit 65ef66e42 introduced a regression due to lack of type-safety on
	signals. We mistakenly passed a GError rather than a string error
	message to the signal.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2019-01-18  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Add missing G_MODULE_EXPORT to signal handler
	Fixes the Windows case where the dialog fails to show with the following
	message:

	warning: "Could not find signal handler 'virt_viewer_window_menu_change_cd_activate'"

2018-12-21  Daniel P. Berrangé  <berrange@redhat.com>

	Add src/virt-viewer-display-vte.c to POTFILES

2018-12-21  Marc-André Lureau  <marcandre.lureau@redhat.com>

	app: add "vm-running" property
	Add "vm-running" property and modify "menu-vm-pause" check button
	state when the running state changes.

	Acked-by: Victor Toso <victortoso@redhat.com>

	app: add "machine" UI
	Add a new "Machine" menu, which allows to Pause/Reset/Power Down a VM.

	The menu is only visible if "vm-ui" app property is set.

	When the application quits, it will also send a quit action to the VM.

	This is a similar behaviour/UI as qemu -display gtk.

	Acked-by: Victor Toso <victortoso@redhat.com>

	app: create a window for VTE displays
	virt_viewer_app_display_added() now handles VTE displays. They should
	be skipped for monitor configuration, and they don't emit "show-hint".

	(a VTE display has a monitor nth == -1, which is now a valid value)

	The associated window will be hidden when virt-viewer is started.

	Acked-by: Victor Toso <victortoso@redhat.com>

	spice: add unix-path in .vv file support
	This will allow to connect to a Spice server using a unix socket path,
	for example:

	[virt-viewer]
	type=spice
	unix-path=/var/run/user/1000/qemu/test/spice.sock

	Reviewed-by: Christophe Fergeau <cfergeau@redhat.com>

	display: allow display without associated monitor number
	The VTE display will have monitor id -1.

	Eventually, having a base "console" class without monitor id could
	avoid this allowance.

	Acked-by: Victor Toso <victortoso@redhat.com>

	app: append VTE consoles to display submenu
	Acked-by: Victor Toso <victortoso@redhat.com>

	app: set subtitle using VTE name
	Currently, subtitle indicate the monitor number, ex: "Fedora (1)".

	Custom subtitle use %d to place the monitor number.

	Let's make this placeholder more generic to place the name of the
	console, ex: "Fedora (Serial)".

	Acked-by: Victor Toso <victortoso@redhat.com>

	session: skip monitor changes if there is no sized monitors
	spice-gtk discards configurations without any sized monitors.

	Also shuts extra warnings when shifting the monitors.

	Acked-by: Victor Toso <victortoso@redhat.com>

	display: ignore display that do not have toplevel window
	virt_viewer_display_get_preferred_monitor_geometry() may be called
	during application initialization (when the VTE console is being
	shown, virt_viewer_session_update_displays_geometry() is called when
	the visibility menu item is toggled). But the other displays may not
	yet be associated with a window, ignore them.

	Acked-by: Victor Toso <victortoso@redhat.com>

	window/zoom: deal with VTE display differently
	VTE display doesn't use the desktop / window aspect ratio, let's just
	call directly the functions handling zoom.

	Acked-by: Victor Toso <victortoso@redhat.com>

	Add a VirtViewerDisplayVte display kind
	This is not a graphical display, so the application will have to deal
	with it with care.

	You may argue that we need a large refactoring to introduce a more
	generic "console" object, that could be either graphical or textual.
	For now, this does work well enough for me.

	Acked-by: Victor Toso <victortoso@redhat.com>

	build-sys: check for VTE library
	Acked-by: Victor Toso <victortoso@redhat.com>

	window: set sensitivity based on display capability
	A following patch is adding a new display (VTE) that won't have the
	send_key() or screenshot() callbacks. Activating those menu/actions
	would lead to nothing or a crash. I chose to keep the UI consistent
	for all display, but disable the menu sensitivity.

	Acked-by: Victor Toso <victortoso@redhat.com>

	window: do not reset sensitivity of menu-send in rebuild
	The sensitivy of "menu-send" is getting more complex in the following
	patch. Let's have the logic in a single place,
	virt_viewer_window_set_menus_sensitive().

	rebuild_combo_menu() is called in 2 cases:

	1. notify::enable-accel: there is no need to update the sensitivy of
	   "menu-send"

	2. on construction: default to false since display == NULL. It will be
	   later updated when virt_viewer_window_set_menus_sensitive(). The
	   default sensitivity is covered by previous .ui patch change.

	Acked-by: Victor Toso <victortoso@redhat.com>

2018-12-06  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Fix initial connection
	After commit df42f78d46 "remote-viewer: factor our
	remote_viewer_initial_connect()", the initial connection code only gets
	run in the !ovirt case. When ovirt is in use, the initial connection
	never happens, meaning all we get when using ovirt:// is a blank
	virt-viewer window.

	This commit fixes that by moving creation of the ovirt session to
	remote_viewer_initial_connect, and unconditionnally calling the
	remote_viewer_initial_connect rather than only doing it in the !ovirt
	case.

	https://bugzilla.redhat.com/show_bug.cgi?id=1655537

2018-12-05  Ben Mathews  <beniam@yahoo.com>

	Set window title to VM name
	The attached patch address an issue with virt-view not setting the
	titlebar text to be the title of the VM (previously discussed on:
	https://www.redhat.com/archives/virt-tools-list/2018-September/msg00064.html).

2018-12-04  Jonathon Jongsma  <jjongsma@redhat.com>

	Silence coverity warning about dead code
	For some reason, coverity was complaining that the definition of
	cred_type_to_str was dead code, even though it wasn't. Changing the
	storage to static silences the warning. Since that's a benficial change
	anyway, let's change it. At the same time, make the pointer constant as
	well and move it outside of the loop since it doesn't need to be inside
	the loop.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	Avoid potential memory leak in spice session
	If j == -1, the memory allocated for rect will leak. So move the
	allocation after the test.

	Acked-by: Victor Toso <victortoso@redhat.com>

2018-11-13  Andrea Bolognani  <abologna@redhat.com>

	spec: Drop %{extra_release}
	It was mainly meant to be used for automatic builds through
	Test::AutoBuild, so it can be removed now.

	prepare-release: Drop references to Test::AutoBuild
	They are misleading, and no longer relevant anyway.

	maint: Rename autobuild.sh to prepare-release.sh
	The script was originally used by the Test::AutoBuild
	project to perform periodic automatic builds; however, that
	effort has been abandoned a long time ago, and these days
	virt-viewer CI builds are happening on the Jenkins-based
	CentOS CI environment under the libvirt umbrella[1], where
	build recipes are maintained separately from the projects
	themselves.

	The script is still used to prepare releases, so it can't
	be dropped from the repository: rename it so that its
	purpose is more clearly communicated instead.

	[1] https://ci.centos.org/view/libvirt/

2018-11-09  Jonathon Jongsma  <jjongsma@redhat.com>

	Relax Gtk+ requirement slightly
	We previously bumped the gtk+ requirement to 3.18 for the function
	gtk_window_fullscreen_on_monitor(). But this function is only necessary
	in Wayland. So add some preprocessor version checks to allow it to
	compile on older distributions if they don't care about wayland support.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2018-10-16  Qiu Wenbo  <qiuwenbo@kylinos.com.cn>

	win32: fix command line encoding on windows platform
	On Windows, the arguments we get in GApplication::ocal_command_line
	come from g_win32_get_command_line(), and g_option_context_parse_strv()
	documentation says:
	« On Windows, the strings are expected to be in UTF-8. This is in
	contrast to g_option_context_parse() which expects them to be in the
	system codepage, which is how they are passed as argv to main(). See
	g_win32_get_command_line() for a solution. »

	This was causing issues on Windows when running:
	remote-viewer -t "你好" spice://<target-host>:5900

2018-10-15  Jonathon Jongsma  <jjongsma@redhat.com>

	Fullscreen displays on wrong monitors in Wayland
	In fullscreen mode, we attempt to enable a guest display for each client
	monitor and then place a fullscreen window for each display on the
	appropriate monitor. Previously, we were using gtk_window_move() to move
	the window to the proper monitor, and then calling
	gtk_window_fullscreen() to enter fullscreen mode on that monitor.
	However, under wayland, gtk_window_move() no longer has any effect for
	toplevel windows, so all displays were showing up on top of eachother on
	the same client monitor.

	Fortunately, Gtk+ 3.18 added a new gtk_window_fullscreen_on_monitor()
	API that works on Wayland. In theory this allows us to remove the call
	to gtk_window_move() from the code. But to avoid potentially changing
	behavior on xorg or older systems, I left the existing logic.

	This requires a dependency bump for gtk+ from 3.12 to 3.18. Gtk 3.18 is
	provided by the following distributions (or newer):
	 - RHEL 7.4
	 - Fedora 23
	 - Ubuntu 16.04LTS

	Resolves: rhbz#1584561

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2018-09-25  Marc-André Lureau  <marcandre.lureau@redhat.com>

	display: make klass->close() optional
	Spice and VTE display do not need to implement it.

	Acked-by: Victor Toso <victortoso@redhat.com>

	window: move default sensitivity in .ui
	Instead of modifying it in object initialization.

	Acked-by: Victor Toso <victortoso@redhat.com>

	window: use virt_viewer_window_set_menus_sensitive()
	virt_viewer_window_set_menus_sensitive() is the common function to set
	sensitivity on menu items.

	It was lacking "toolbar_send_key", so add it there too.

	Acked-by: Victor Toso <victortoso@redhat.com>

	app: simplify toggling visibility
	There is a hack to maintain the toggle state to a desired state within
	the "toggled" handler.

	However it is only necessary for the ask-quit case. In this case, we
	want to maintain the item active, which is simpler to handle than the
	general case. Simplify the code by folding
	virt_viewer_app_window_set_visible() and removing the static
	"reentering" hack, only maintaining "active" on the last item.

	Note that the hack was needed since there is no way to hook a signal
	handler on "clicked" before "toggled" is emitted and handled by Gtk,
	to avoid the recursion.

	Acked-by: Victor Toso <victortoso@redhat.com>

	Remove class signal handlers
	We don't use class signal handlers, remove the extra pointers.

	g_signal_override_class_handler() could be used instead when needed.

	Acked-by: Victor Toso <victortoso@redhat.com>

	remote-viewer: add handling of spice+unix and spice+tls schemes
	- spice+unix:// was added in spice-gtk v0.28
	- spice+tls:// was added in spice-gtk v0.35

	This allows launchers to start remote-viewer when they encounter a
	Spice URI with +unix or +tls.

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
	Acked-by: Victor Toso <victortoso@redhat.com>

2018-09-18  Jonathon Jongsma  <jjongsma@redhat.com>

	Spice: listen for new 'SpiceSession::disconnected' signal
	Previously we were emitting the VirtViewerSession::session-disconnected
	when we got the Spice::session::channel-destroy signal for the last
	channel. However, since the channels are still valid at this point, and
	because VirtViewerApp quits the application in response to the
	session-disconnected signal, that means that the channels were never
	being properly freed. This was particularly problematic for the usbredir
	channel, which must disconnect any connected USB devices as part of its
	destruction. By using the new SpiceSession::disconnected signal instead,
	we can ensure that all channels have been disconnected and properly
	destroyed before quitting the application.

2018-09-12  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	ovirt-foreign-menu: New function storage_domain_validate()
	It may be useful to know why the storage domain has not been listed,
	given that there are different reasons for that. To make it easier to
	provide more detailed debug messages, we move code from the callback
	function to this new one.

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

	build: Update govirt and rest requirements
	With these new values, 0.3.3 for libgovirt and 0.8 for librest, we can
	remove checks for OVIRT_REST_CALL_ERROR_CANCELLED and correspondent
	rest_proxy_auth_cancel().

	Distros that already ship these versions, such as Fedora, RHEL 7.4
	onwards, and Ubuntu since 17.10.

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2018-09-03  Victor Toso  <me@victortoso.com>

	app: Always add guest name comment
	Even when the user adds comments, we should place the guest's name
	unless it is present already.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1623756

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2018-08-31  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Filter everything which does not end in .iso
	oVirt REST API does not provide a way to know what is a valid ISO image
	which can be assigned to a running VM. I've seen floppy disk images
	(.vfd) in a domain, which is already filtered. Now I've seen an ISO
	domain with .qcow2 files in it, which can't be assigned to a VM either.
	This commit filters every file which does not have a .iso extension as
	it's unlikely to be possible to use it.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2018-08-07  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Improve handling of g_strv_contains()
	The ovirt code uses g_strv_contains() with fallback code in
	glib-compat.h when we are using a glib version where it's not available.
	However, when we use a glib version where g_strv_contains is available,
	we get a compilation warning since we are compiling GLIB_VERSION_MAX_ALLOWED
	set to 2.38.

	This commit wraps both the compat code and the g_strv_contains() call in
	a strv_contains() helper where we can hide the magic needed to avoid
	deprecation warnings.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	window: Adjust get_image_format() prototype
	This adds an unused parameter, but lets us get rid of this new warning
	with gcc 8:

	virt-viewer-window.c: In function 'get_image_format':
	virt-viewer-window.c:930:33: warning: cast between incompatible function types from 'GHashTable * (*)(void)' {aka 'struct _GHashTable * (*)(void)'} to 'void * (*)(void *)' [-Wcast-function-type]
	     g_once(&image_formats_once, (GThreadFunc)init_image_formats, NULL);

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2018-08-06  Christophe Fergeau  <cfergeau@redhat.com>

	app: Remove VirtViewerApp::has-focus
	This is no longer needed since 140cb84
	'remote-viewer: remove --spice-controller'

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2018-07-27  Daniel P. Berrangé  <berrange@redhat.com>

	rpm: import spec changes from fedora

	Post release version bump to 8.0

	Add NEWS for 7.0 release

	Bump min spice to 0.35 and address deprecation warnings

	Disable -Wcast-function-type warning
	Most glib function casts trigger this

2018-06-04  Victor Toso  <me@victortoso.com>

	remote-viewer-connect: centralize window
	Instead of top-left corner.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1508274

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2018-05-02  Christophe Fergeau  <cfergeau@redhat.com>

	win32: Look up translations relative to installation directory
	On Windows, we can't use bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); as
	LOCALE_DIR is a compile-time constant, while the location of the
	translations will be dependant on where the user installs virt-viewer.
	This results in an untranslated virt-viewer UI on Windows. This commit
	calls bindtextdomain() with a directory which is relative to the
	installation path so that translation are properly found.
	This is similar to what spice-gtk is doing:
	https://cgit.freedesktop.org/spice/spice-gtk/tree/src/spice-glib-main.c

2017-12-04  Daniel P. Berrange  <berrange@redhat.com>

	Refresh po files from zanata

2017-11-23  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Fixes to spec file
	- Use macros for paths instead of absolute paths.
	- Remove dangling %{gtk_arg} macro in configure.
	- Fix scope of enable_autotools macro to avoid warning during build.
	  warning: Macro %enable_autotools defined but not used within scope

2017-11-22  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	doc: Adjust reference to spice-gtk man page for remote-viewer
	Similar to last commit, as noticed by reporter in bugzilla:

	https://bugzilla.redhat.com/show_bug.cgi?id=1477966

	Man page should reference spice-client, not spice-gtk.

	Acked-by: Victor Toso <victortoso@redhat.com>

2017-11-17  Christophe Fergeau  <cfergeau@redhat.com>

	doc: Adjust reference to spice-gtk man page
	The man page spice-gtk ships is named "spice-client", not "spice-gtk"

	Reviewed-by: Daniel P. Berrange <berrange@redhat.com>

	https://bugzilla.redhat.com/show_bug.cgi?id=1477966

2017-11-17  Marc-André Lureau  <marcandre.lureau@redhat.com>

	virt-viewer.spec.in: fix build after spice-xpi-client removal
	This fixes commit 140cb84c2538bf0eab7dea2035dfecc4db74c784, where we
	removed the spice-xpi-client-remote-viewer.

	Reviewed-by: Daniel P. Berrange <berrange@redhat.com>

2017-11-16  Marc-André Lureau  <marcandre.lureau@redhat.com>

	win32: remove debug-helper.exe
	This helper was useful to debug spice controller & activex plugin. Now
	that the controller is gone, it is no longer needed.

	Reviewed-by: Victor Toso <victortoso@redhat.com>

	remote-viewer: remove --spice-controller
	spice controller interface is being removed from spice-gtk.

	Reviewed-by: Victor Toso <victortoso@redhat.com>

	remote-viewer: learn '-' as URI for standard input connection file
	Some users want the ability to set connection details without writing
	to a file or passing command line arguments.

	Learn to read the connection file from standard input for such use
	case.

	This allows a parent process to set the connection details without
	intermediary file.

	Reviewed-by: Victor Toso <victortoso@redhat.com>

2017-11-14  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	remote-viewer: Pass guri to remote_viewer_session_connected
	When connecting to a VM via oVirt instance, the original uri can not be
	retrieved using virt_viewer_session_get_uri(). Consequently, it was
	never saved, even though the connection succeeds and the actual callback
	for "session-connected" signal, which saves the URI, is invoked.

	To solve this problem, we always pass a copy of the guri as user-data
	parameter for the callback, and if the call to
	virt_viewer_session_get_uri() returns NULL, the parameter is used
	instead.

	Resolves: https://bugzilla.redhat.com/1459792

	Acked-by: Victor Toso <victortoso@redhat.com>

2017-10-06  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	foreign-menu: Check if storage domain is active for data center
	This last patch of the series is where we actually check if the storage
	domain is active in the data center the VM is associated with. It makes
	use of g_strv_contains(), which is available only in glib version 2.44.
	Compatibility code has been added if building against older versions
	than required.

	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1427467
	         https://bugzilla.redhat.com/show_bug.cgi?id=1428401

	ovirt-foreign-menu: Fetch host, cluster and data center information
	It is possible that the data center the VM is associated with has more
	than one storage domain associated with it as well, when only one is
	active while the others are not.

	The current ovir-foreign-menu code does not take it into consideration,
	thus the ISO dialog may show invalid results with that scenario. We fix
	this problem by making use of new functions in libgovirt, adding support
	or hosts, clusters and data centers.

	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1427467
	         https://bugzilla.redhat.com/show_bug.cgi?id=1428401

	foreign-menu: Use query for fetching virtual machines
	This can save us some bandwidth, as we are searching for the specific
	virtual machine instead of retrieving the collection with all VMs, and
	then iterating over the results after the transfer finishes.

	configure: check for new functions in libgovirt
	These functions will be used in ovirt-foreign-menu code and guarded
	by #ifdef blocks so that we can keep compatibility with older libgovirt
	versions.

	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1427467
	         https://bugzilla.redhat.com/show_bug.cgi?id=1428401

2017-10-06  Marc-André Lureau  <marcandre.lureau@redhat.com>

	remote-viewer: factor our remote_viewer_initial_connect()

	session: remove virt_viewer_session_new() declaration
	The function was removed in commit
	05333f0e93fb988c2fd9302e67671490941aedb0.

2017-09-14  Guido Günther  <agx@sigxcpu.org>

	Make it clear that only running VMs are listed
	this might otherwise be confusing.

	Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=873597#25

2017-08-15  Daniel P. Berrange  <berrange@redhat.com>

	Post release version bump to 7.0

	Add NEWS for 6.0 release

2017-08-14  Daniel P. Berrange  <berrange@redhat.com>

	Set LC_CTYPE=en_US.UTF-8 when running glib-mkenums

	Revert "Don't set LC_ALL=C during build as that breaks python apps"
	This reverts commit 921e988db0f09e4a1bac04f56b59a981cb944a78.

2017-07-25  Daniel P. Berrange  <berrange@redhat.com>

	Don't set LC_ALL=C during build as that breaks python apps
	Setting LC_ALL=C breaks python apps doing I/O on UTF-8 source
	files. In particular this broke glib-mkenums

	    Traceback (most recent call last):
	      File "/usr/bin/glib-mkenums", line 669, in <module>
	        process_file(fname)
	      File "/usr/bin/glib-mkenums", line 406, in process_file
	        line = curfile.readline()
	      File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
	        return codecs.ascii_decode(input, self.errors)[0]
	    UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 849: ordinal not in range(128)

2017-07-20  Jonathon Jongsma  <jjongsma@redhat.com>

	Screenshot: reject unknown image type filenames
	If the image format cannot be determined for a screenshot filename,
	simply return an error informing the user that this is not a valid image
	format.

	In the past, if we couldn't determine the file type, we simply saved it
	as a PNG, and appended a ".png" file extension to the filename. This has
	several problems. First, it can result in some oddly-named files (e.g. a
	screenshot named 'Screenshot.pdf.png').

	Second, modifying the filename that is returned from the GtkFileChooser
	undermines the overwrite-confirmation functionality that is built into
	the gtk file chooser. When the user specifies a filename in the file
	chooser dialog, the chooser will automatically check whether a file of
	that name exists, and if it does, it will display a dialog asking
	whether the user wants to overwrite it. But if we then append a ".png"
	extension to the filename and save it, we may be overwriting an existing
	file without warning. By returning an error for unrecognized file types,
	we avoid this problem.

	Resolves: rhbz#1455832

2017-07-19  Jonathon Jongsma  <jjongsma@redhat.com>

	Report errors when saving screenshot
	Currently, the user gets no feedback if the screenshot fails (e.g. if
	they don't have permission to write in the chosen directory, etc). This
	patch adds a simple dialog showing the error message when a screenshot
	fails.

	Change default screenshot name to "Screenshot.png"
	Since the code attempts to append ".png" to filenames without an
	extension, it doesn't make much sense to have the default filename be
	extensionless.  Including the extension on the default filename makes
	things more straightforward.

	Related: rhbz#1455832

2017-06-12  Victor Toso  <me@victortoso.com>

	remote-viewer-connect: Keep the 'dialog' window on top
	Otherwise, in kiosk mode, it'll be hidden from user.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1459800

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2017-06-08  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	remote-viewer: Show authentication dialog again if in kiosk mode and connecting to ovirt
	Similar to previous commit 5d9e6d2338cbb680fe761b86e6ca433b1234e6e0, now
	dealing with the case of connecting directly to ovirt:// URIs, which was
	left behind.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1459808

2017-06-07  Victor Toso  <me@victortoso.com>

	vnc: do not show error on cancel/close of auth dialog
	Mainly a kiosk mode issue, similar to the spice fix in 6480e52f62b.

	This patch saves the cancel/close state of auth dialog from
	virt_viewer_auth_collect_credentials() in order to avoid an error
	dialog to pop up to user in kiosk mode.

	This happens due the fact that we call virt_viewer_app_disconnected()
	twice:
	- One with "session-cancelled" which is correct and well handled;
	- The other with "session-disconnected" which is misleading as there
	  was no connection at this time. This will trigger the error dialog
	  with "Unable to connect to the graphic server %s".

	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2017-06-05  Victor Toso  <me@victortoso.com>

	spice: do not show error on cancel/close of auth dialog
	Mainly an issue for kiosk mode due the fact that it'll not quit the
	application on cancel. That means that authentication dialog can't
	really be canceled and showing an input error such as "wrong password"
	is misleading (no password should be taken in consideration on Cancel).

	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161

	Acked-by: Pavel Grunt <pgrunt@redhat.com>
	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2017-05-31  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	kiosk: Show authentication dialog again if cancelled
	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161

	window: Do not show fullscreen toolbar if in kiosk mode
	Regression since commit cc455b7f916110d7cfae6b7af753349e070c9494.

	Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161

2017-05-18  Victor Toso  <me@victortoso.com>

	Make the progress bar smooth during file-transfer
	When the transfer of a file finishes we stop considering that file's
	size in the progress bar which makes it move back due the new
	'transfer size' and 'transferred bytes' - for all the other files.

	This patch aims to keep the progress smooth when a file is finished
	using the notify::total-bytes from SpiceFileTransferTask to be aware
	of all file's sizes.

	Note that as we have only one progress bar for all files being
	transferred, it is expected that it will go back when a new
	file-transfer operation starts (e.g we drag-and-drop new files while
	we are already transferring other files).

	As requested, this patch also updates the string message to include the
	amount of files that will be transferred in case we have more than one
	file.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1449572
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2017-05-18  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer: Ensure to not close during migration
	Take a look at the shutdown event detail before killing
	the connection. Otherwise it breaks the SPICE seamless migration
	feature.

	Regression since commit a62827d28c6b69e90102e4c1c8043cbddad8929a

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1442929
	Acked-by: Daniel P. Berrange <berrange@redhat.com>

2017-05-10  Pavel Grunt  <pgrunt@redhat.com>

	window: Allow to control zoom using keypad
	Support for more than one key combo for accelerator is available
	since GTK 3.12 through GAction. It is currently not possible to
	use mnemonics also for numpad keys, for more info see:
	 https://bugzilla.gnome.org/show_bug.cgi?id=699823

	Resolves: rhbz#1337575

	Reviewed-by: Victor Toso <victortoso@redhat.com>

2017-04-25  Pavel Grunt  <pgrunt@redhat.com>

	util: Fix -Wsign-compare
	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

2017-04-19  Victor Toso  <me@victortoso.com>

	Fix implicit fallthrough warning on new gcc
	The option -Wimplicit-fallthrough was added to -Wall recently which
	generates a few warnings. Based on the comment above the switch, the
	fallthrough is on purpose so let's add a comment to avoid the following
	warnings.

	ovirt-foreign-menu.c: In function 'ovirt_foreign_menu_next_async_step':
	ovirt-foreign-menu.c:293:12: warning: this statement may fall through
	         if (menu->priv->api == NULL) {
	            ^
	 ovirt-foreign-menu.c:297:5: note: here
	      case STATE_VM:
	           ^~~~
	ovirt-foreign-menu.c:298:12: warning: this statement may fall through
	         if (menu->priv->vm == NULL) {
	            ^
	ovirt-foreign-menu.c:302:5: note: here
	     case STATE_STORAGE_DOMAIN:
	          ^~~~
	ovirt-foreign-menu.c:303:12: warning: this statement may fall through
	         if (menu->priv->files == NULL) {
	            ^
	ovirt-foreign-menu.c:307:5: note: here
	     case STATE_VM_CDROM:
	          ^~~~

	ovirt-foreign-menu.c:308:12: warning: this statement may fall through
	         if (menu->priv->cdrom == NULL) {
	            ^
	ovirt-foreign-menu.c:312:5: note: here
	   case STATE_CDROM_FILE:
	        ^~~~

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2017-04-19  Pavel Grunt  <pgrunt@redhat.com>

	app: Allow to connect to channel using unix socket
	Only method for connecting to channel opened later was ssh, however
	this method failes when unix socket is used:

	    <graphics type='spice'>
	      <listen type='socket' socket='/tmp/spice.sock'/>
	    </graphics>

	Related: rhbz#1335832, rhbz#1411765

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

	virt-viewer: Support newer libvirt xml format
	Since libvirt 0.9.4 there is a new listen element which can be used
	to specify address instead of using the attributes of graphics element.

	Also add support for listen type socket - available for Qemu since
	libvirt 2.0.0

	Resolves: rhbz#1411765

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

2017-04-11  Jonathon Jongsma  <jjongsma@redhat.com>

	tests: improvements to monitor-mapping test
	Add some tests that specify different numbers of client monitors to
	ensure that the parsing handles those situations correctly.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	Avoid warning when loading initial monitor mapping
	When started in fullscreen mode with a monitor-mapping configuration
	option, we are getting the following warnings on the terminal:

	    (process:27428): Gdk-CRITICAL **: gdk_screen_get_n_monitors: assertion 'GDK_IS_SCREEN (screen)' failed

	    ** (process:27428): WARNING **: Invalid monitor-mapping configuration: monitor #1 for display #1 does not exist

	This is apparently because we were processing the fallback monitor
	mapping before the graphic server display was opened, so
	gdk_screen_get_default() returned NULL. This resulted in
	gdk_screen_get_n_monitors() reporting that we had 0 monitors.

	This patch moves the fallback monitor mapping parsing from
	virt_viewer_app_init() to virt_viewer_app_on_application_startup(),
	after chaining up to the base class startup() vfunc. The graphic server
	display is opened in the base class vfunc, so by the time that returns,
	we should be able to query the number of monitors.

	The patch also adds a check in virt_viewer_parse_monitor_mappings() to
	ensure that we pass a sane value for nmonitors.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2017-04-04  Pavel Grunt  <pgrunt@redhat.com>

	vnc: Set display as enabled on init
	Since 9c77a78af2ef85f3fcdce21b42d89566a9f7ee17 the vnc display has
	stopped setting the show hint and started to ignore the initial zoom
	setting. Let's handle it in a similar way as the spice display and set
	the hint when the display is initialized and unset it on disconnect.

	Resolves: rhbz#1436991

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	Remove unused virt_viewer_app_set_zoom_level
	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	Remove G_VALUE_INIT definition
	Available in GLib since the version 2.30 and virt-viewer requires
	glib 2.38

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2017-03-16  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer: Fix comparison in domain selection
	Related: rhbz#1399077

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2017-03-09  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer: Adjust name-id-uuid comment
	virt-viewer by default chooses the VM by its id, then uuid
	and then by name. Adjust the comment to match the implementation.

	Related: rhbz#1399077

	virt-viewer: Allow more precise VM selection
	Theoretically a VM name can be a valid VM id or uuid. In that case
	connecting to the VMs may be problematic since virt-viewer selects
	the VM by its id then by uuid if not found then by its name.

	Introduce new command line options to cover this situation:
	 "--id" to connect to the VM by its id
	 "--uuid" to connect to the VM by its uuid
	 "--domain-name" to connect to the VM by its name
	The options are mutually exclusive

	Resolves: rhbz#1399077

2017-03-07  Victor Toso  <me@victortoso.com>

	Don't define function without oVirt integration
	Function is not used without oVirt.

	> virt-viewer-window.c:1063:1: warning: 'iso_dialog_response' defined
	> but not used [-Wunused-function]

	Avoid harmless warnings due lack of oVirt on build
	> remote-viewer.c: In function 'remote_viewer_get_property':
	> remote-viewer.c:227:26: warning: unused variable 'priv' [-Wunused-variable]
	>      RemoteViewerPrivate *priv = self->priv;
	>                           ^~~~
	> remote-viewer.c:224:36: warning: unused parameter 'value' [-Wunused-parameter]
	>      GValue *value, GParamSpec *pspec)
	>              ^~~~~
	> virt-viewer-window.c: In function 'virt_viewer_window_menu_change_cd_activate':
	> virt-viewer-window.c:1077:62: warning: unused parameter 'self' [-Wunused-parameter]
	>      VirtViewerWindow *self)
	>                        ^~~~

	Fix build when building without oVirt
	As remote_viewer_iso_list_dialog_new() is defined on
	remote-viewer-iso-list-dialog.h which is only build with oVirt
	integration.

	 > undefined reference to `remote_viewer_iso_list_dialog_new'

	Note that the callback virt_viewer_window_menu_change_cd_activate() is
	only visible if oVirt is built in.

2017-03-03  Pavel Grunt  <pgrunt@redhat.com>

	file-transfer: Fix label of the dialog
	Display correct text and make it translatable

	Resolves:
	https://bugs.freedesktop.org/show_bug.cgi?id=99980

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

2017-02-17  Christophe Fergeau  <cfergeau@redhat.com>

	spice: Remove unneeded braces
	Two statements in virt_viewer_session_spice_main_channel_event() are
	wrapped in a { } block, but this is unneeded.

	man: Fix qemu+ssh URL in example
	The 'system' path was missing: qemu+ssh://example.org/system

	Resolves: rhbz#1377283

2017-02-14  Christophe de Dinechin  <cdupontd@redhat.com>

	Show errors generated by connection dialog
	When running 'remote-viewer' without arguments,
	and selecting a non-supported protocol, e.g. ssh://foo,
	the generated error was silently swallowed by the retry loop.
	This was introduced in 06b2c382468876a19600374bd59475e66d488af8.

2017-02-09  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	session-spice: Pass hostname to authentication dialog
	With this patch the dialog now shows the host we are connecting to.

	iso-dialog: Avoid crash when closing dialog early
	We must take into account that users can close the dialog at anytime,
	even during an operation of fetch or set ISO has not been finished. This
	will cause the callbacks for those operations to be invoked with an
	invalid object, crashing the application.

	To fix this issue we need to pass a GCancellable to the asynchronous
	operations, so they can be cancelled if the dialog happens to get closed
	before they complete.

	NOTE: This patch triggers a deadlock in libgovirt when the dialog is
	closed before the operation completes. Bug reported in
	https://bugzilla.gnome.org/show_bug.cgi?id=777808. We will need to bump
	libgovirt dependency whenever it has a new release.

2017-02-07  Pavel Grunt  <pgrunt@redhat.com>

	Do not print password in the debug log
	Do not show a length since it is sensitive info as well.

	Resolves: rhbz#1410030

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

	iso-dialog: Do not use string directly
	Fixes -Werror=format-security used when creating the rpm

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	Update for README.md
	It is needed to use the 'foreign' init option otherwise autotools
	requires README

	Fix make distcheck and spec file generation

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2017-01-27  Pavel Grunt  <pgrunt@redhat.com>

	README: switch to Markdown syntax
	To render nicely on the project git page:
	 https://pagure.io/virt-viewer

	Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>

	README: Update links
	Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>

2017-01-24  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Run ISO dialog when 'Change CD' menu is activated
	Also moves 'Change CD' menu item from the toplevel menu to a subitem
	under 'File' toplevel menu.

	In order to avoid object interdependency, it is necessary to make the
	ovirt foreign-menu pointer from RemoteViewer, accessible via property,
	so it can be passed to the dialog as an opaque GObject.

	Finally, with this commit, we clean up ovirt foreign menu code, which
	only deals with data, leaving the UI bits to be handled properly in the
	new ISO list dialog.

	Introduce ISO List dialog
	The motivation for this dialog started with rhbz #1310624, where it was
	reported that foreign menu was causing too many debug messages to be
	printed to the console, because remote viewer had a timeout of 5 seconds
	to refresh the ISO list automatically.

	As a workaround, the timeout was adjusted for 5 minutes, but it could
	cause more problems, such as inconsistencies between what was shown by
	remote viewer and what the server had configured.

	Another issue caused by displaying the ISO files as a menu item was that
	if the list was too long, it would take all the available space on the
	screen. In the end, a menu item was not the correct choice of UI
	component for this use case.

	In order to solve both problems, we now present the ISO list as a
	dedicated dialog, where the refresh of ISO list is triggered manually by
	the user and the list is contained within the dialog, by displaying de
	files in a treeview.

2017-01-19  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	ovirt-foreign-menu: Add accessors for current iso and iso list
	Also, to keep consistency around the codebase, changed the return value
	of ovirt_foreign_menu_get_current_iso_name() from char * to gchar *.

2017-01-18  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	ovirt-foreign-menu: Fetch ISO names using GTask API
	Similar to the previous commit, the ISO dialog will fetch the result
	asynchronously, rather than relying on the "notify::files" signal from
	OvirtForeignMenu object. It also enables error to be shown if anything
	goes wrong.

	ovirt-foreign-menu: Set new ISO name using GTask API
	This is done with the new ovirt_foreign_menu_set_current_iso_name_async
	function.

2017-01-13  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	remote-viewer: Extend #ifdef HAVE_OVIRT block
	The #endif is closing a #ifdef HAVE_OVIRT block, while another one is
	opened right next, so there is no need to have those lines. Also, due to
	the large amount of source code in between, add a small comment on the
	last #endif to identify what it refers to.

2017-01-10  Snir Sheriber  <ssheribe@redhat.com>

	app: Update warning msg in virt-viewer's window
	Information about connection issues during display
	activation will appear in virt-viewer's window

	Related: rhbz#1386630

2017-01-05  Pavel Grunt  <pgrunt@redhat.com>

	Set guest name at the same time as uuid
	Avoid showing the "Unknown" name in the guest detail dialog when
	waiting for the domain to be started.

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

2017-01-02  Snir Sheriber  <ssheribe@redhat.com>

	spice: Replace g_warning with g_debug
	Instead of having a warning message telling the user that they can't
	have more displays enabled in fullscreen than the number of physical
	displays, let's just have it as a debug message.

	Related: rhbz#1368390

	Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>

2016-12-30  Snir Sheriber  <ssheribe@redhat.com>

	spice: Fix display id in the warning log
	The display id in the warning log is now consistent with the display
	id in the "view->displays->display x" menu item

	Related: rhbz#1368390

	Acked-by: Fabiano Fidêncio <fabiano@fidencio.org>

2016-12-05  Christophe Fergeau  <cfergeau@redhat.com>

	man: Mention that ssh-agent can be useful
	When using a tunneled SPICE connection, the user will get a dozen
	authentication prompts if they are not using ssh-agent.

	https://bugzilla.redhat.com/show_bug.cgi?id=1377283

2016-11-24  Daniel P. Berrange  <berrange@redhat.com>

	Post release version bump to 6.0

	Add NEWS for 5.0 release

	Refresh PO files from zanata

2016-11-02  Jonathon Jongsma  <jjongsma@redhat.com>

	Make new file-transfer ui file translatable

	Add necessary header include
	Fixes the build broken by the last patch series.

	Show failed file transfers
	After all ongoing file transfers are finished, save a list of the file
	transfer tasks that had errors and display the list of failed files to
	the user so that they know that a failure occurred and can potentially
	retry the transfer. Previously, we just failed silently so the user
	may not have even been aware that the transfer failed.

	Simplify file transfer dialog UI
	When transferring a large number of files, the file transfer dialog was
	unusable because the window size would be larger than the client
	desktop. To solve this, remove the list of individual files (and the
	ability to cancel each file transfer independantly) and only display
	a single overall progress bar that shows the status of all ongoing
	transfers.

	This also allows us to remove the delayed unref of the task since we
	don't need to show the task information about each individual transfer
	task until the window is closed. Removes TaskFinishedData type.

	This patch requires new API from spice-gtk to calculate the overall
	progress:
	 spice_file_transfer_task_get_total_bytes()
	 spice_file_transfer_task_get_transferred_bytes()

2016-10-05  Pavel Grunt  <pgrunt@redhat.com>

	app: Inform user about connection failure
	Use errno to get the reason of the failure

	Resolves:
	https://bugzilla.redhat.com/show_bug.cgi?id=1377100

	build-sys: Check spice-glib version
	virt-viewer uses spice-glib api, configure should check
	for the required version

	Related:
	https://bugzilla.redhat.com/show_bug.cgi?id=1375429

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2016-08-10  Daniel P. Berrange  <berrange@redhat.com>

	spec: don't distribute both .spec files in dist
	rpmbuild -ta only works if the tar.gz contains a single
	spec file, so remove the mingw-virt-viewer.spec from
	dist.

	We should however be including both the spec.in files.

2016-08-05  Victor Toso  <victortoso@redhat.com>

	Fix filename leak on transfer dialog
	spice_file_transfer_task_get_filename() was wrongly annotated as
	transfer none. We can safely free this string after usage.

2016-07-29  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	ovirt-foreign-menu: Use g_clear_pointer/g_clear_object
	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

	ovirt-foreign-menu: Rework states logic
	Use switch/case instead of lots of conditional blocks

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2016-07-28  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix resizing problem with recent gtk versions
	When using client-side decorations, as well as in certain other
	situations (wayland, and windows in some cases), the window gradually
	resizes larger and larger.

	This is caused by a change in how gtk interprets the sizes passed to
	gtk_window_resize(), particularly when client-side decorations (CSD) are
	involved. For example, In the past this size was assumed to include the
	size of the CSD, but now it it assumes that the sizes only represent the
	size of the window's content, without any decorations. However,
	gtk_widget_get_preferred_size() (when called on a GtkWindow*), returns a
	size that includes the size of the CSD. So
	virt_viewer_window_queue_resize() was essentially growing the window by
	the size of the CSD every time it was called.

	To work around this issue, we need to calculate the preferred size of
	the window's child, not the size of the entire window (including CSD).
	Then we add the width of the window's border (just to be safe) and pass
	those values to gtk_window_resize().

2016-07-12  Daniel P. Berrange  <berrange@redhat.com>

	virt-viewer: ensure we close when seeing domain stop event
	Normally virt-viewer relies on the VNC/SPICE widget seeing
	an EOF on its underlying connection to detect when the
	session is closed.

	When tunnelling to a remote guest over SSH though, this
	EOF can be delayed for a very long time, leaving a dead
	session open.

	This can be seen with

	   virt-viewer -c qemu+ssh://remotehost/system guestname

	when on the remote shell run

	   virsh destroy guestname

	and notice that virt-viewer does not see the shutdown
	immediately.

	When we get a domain stopped event we know the session
	should be dead, so forceably close it, if not already
	closed.

	virt-viewer: fix display of guest name in title for vnc
	The following commit broke the display of the guest name in
	the title for VNC displays:

	  commit 61a1bc4dcbb056755fe96c5945f84c1312041059
	  Author: Pavel Grunt <pgrunt@redhat.com>
	  Date:   Wed Apr 15 13:50:35 2015 +0200

	    session-vnc: Set window for display to avoid gtk-vnc v0.3.8 crash

	    The VNC display widget of gtk-vnc v0.3.8 needs a window at the moment

	The problem is that this causes the window to be associated
	with the display before the guest name is available. Thus
	when ensure_window_for_display() runs, the window is already
	configured and so it never invokes the logic to set the title.

	The fix is to unconditionally update the title in the
	ensure_window_for_display() method, even if the window already
	exists.

2016-07-07  Fabiano Fidêncio  <fidencio@redhat.com>

	app,vnc: Don't retry to authenticate when vvfile authentication fails
	When connecting to a RHEVM/oVirt machine through an expired vvfile the
	user ends up in an endless loop of getting an error message, pressing
	"Okay", re-scheduling a new connection retry. getting an error message
	due to the expired vvfile and so on.

	In order to avoid the issue, let's not re-schedule the connection retry
	when the user tries to connect through a vvfile and it fails.

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2016-06-30  Daniel P. Berrange  <berrange@redhat.com>

	Post-release version bump to 5.0

	Update NEWS for 4.0 release

	Refresh translations from zanata

2016-06-30  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Adjust timer to refresh ovirt foreign menu
	This is a temporary solution, as discussed in the bug. We will adjust
	the timer to refresh the ISO list from 15 seconds to 5 minutes (300
	seconds), while reworking in the UI to replace the menu with a dialog,
	which seems a saner way to display the list.

	Resolves: rhbz#1347726

2016-06-30  Fabiano Fidêncio  <fidencio@redhat.com>

	ui: Use mnemonics for remote-viewer connection UI
	Here we added mnemonics for the buttons "Cancel" and "Connect" and also
	for the "Connection Address" entry (as it was before moving this dialog
	to a .ui file).

	The "Recent connections" widget is left behind as GtkRecentChooserWidget
	isn't suitable for mnemonic activation.

	Resolves: rhbz#1351487

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	timed-revealer: listen to the "grab-notify" signal
	The "grab-notify" signal lets us know when our widget becomes
	shadowed by a Gtk+ grab on another widget, or when it becomes unshadowed
	due to a grab being removed.

	That's exactly the case we face when dealing with "usb-redirection" and
	"close" items of the fullscreen toolbar. And, currently, when these
	widgets get closed the timed-revealer stays there forever. From now on
	let's take advantage of the "grab-notify" signal and schedule a timeout
	for the revealer when these widgets' windows get closed.

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>
	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2016-06-29  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Get rid of deprecated functions to customize widget colors
	Since commit cc455b7f916110d7cfae6b7af753349e070c9494, the background
	color has not been set correctly for Gtk+ 3.18 (Fedora 23), while it was
	working fine for more recent version 3.20 (Fedora 24). Tracked down to
	some changes in GtkNotebook code which can not be easily backported.

	Instead of customizing background and foreground colors, let's just
	stick with the default colors provided by theme.

	Related https://bugs.freedesktop.org/show_bug.cgi?id=94276

2016-06-29  Lukáš Venhoda  <lvenhoda@redhat.com>

	package: Add appdata metadata for Gnome Software
	Adds metadata to be used with Gnome Software.
	Includes name, summary, description and a few screenshots of remote-viewer.

	Acked-by: Daniel P. Berrange <berrange@redhat.com>
	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-06-29  Christophe Fergeau  <cfergeau@redhat.com>

	window: Don't take a reference on 'toolbar'
	VirtViewerTimedRevealer now derives from GtkEventBox/GtkContainer, so
	it follows GTK+ conventions and takes ownership of the floating ref on
	'toolbar'. Since VirtViewerWindow and VirtViewerTimedRevealer will have
	the same lifespan, we don't need to own a reference on toolbar in
	VirtViewerWindow.

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-06-29  Fabiano Fidêncio  <fidencio@redhat.com>

	timed-revealer: Inherit from GtkEventBox
	As suggested by Christophe, inheriting from GtkEventBox instead of
	having one instance of it as a member can help us to get rid of
	virt_viewer_timed_revealer_get_overlay_widget().

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2016-06-29  Christophe Fergeau  <cfergeau@redhat.com>

	timed-revealer: Don't release reference we don't own
	VirtViewerTimedRevealer::evBox is created in
	virt_viewer_timed_revealer_new() and will be passed to
	gtk_container_add() through gtk_overlay_add_overlay(overlay,
	virt_viewer_timed_revealer_get_overlay_widget(priv->revealer))

	This means VirtViewerTimedRevealer does not own a reference on evBox,
	and that it should not try to release it in
	VirtViewerTimedRevealer::dispose()

	Backtrace for the crash:
	 #0  0x00007ffff3e92c9d in g_type_check_instance_is_fundamentally_a () at /lib64/libgobject-2.0.so.0
	 #1  0x00007ffff3e722a5 in g_object_unref () at /lib64/libgobject-2.0.so.0
	 #2  0x000000000041ebe3 in virt_viewer_timed_revealer_dispose (object=0x1127320) at virt-viewer-timed-revealer.c:128
	 #3  0x00007ffff3e723b6 in g_object_unref () at  /lib64/libgobject-2.0.so.0
	 #4  0x000000000041c040 in virt_viewer_window_dispose  (object=0x981f70) at virt-viewer-window.c:191
	 #5  0x00007ffff3e723b6 in g_object_unref () at  /lib64/libgobject-2.0.so.0
	 #6  0x0000000000413a58 in virt_viewer_app_display_removed (nth=<optimized out>, self=0x680330) at virt-viewer-app.c:989
	 #7  0x0000000000413a58 in virt_viewer_app_display_removed (session=<optimized out>, display=<optimized out>, self=0x680330) at virt-viewer-app.c:1000
	 #8  0x00007ffff3e705e0 in g_cclosure_marshal_VOID__OBJECTv () at /lib64/libgobject-2.0.so.0  #9  0x00007ffff3e6d784 in _g_closure_invoke_va () at  /lib64/libgobject-2.0.so.0
	 #10 0x00007ffff3e88cd9 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
	 #11 0x00007ffff3e897eb in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
	 #12 0x0000000000418973 in virt_viewer_session_remove_display (session=0x9c6de0, display=0x961a90) at virt-viewer-session.c:463
	 #13 0x0000000000420934 in destroy_display (data=<optimized out>) at virt-viewer-session-spice.c:851
	 #14 0x00007ffff3b6d0eb in g_ptr_array_foreach () at /lib64/libglib-2.0.so.0
	 #15 0x00007ffff3b6d180 in ptr_array_free () at /lib64/libglib-2.0.so.0
	 #16 0x000000000042072a in virt_viewer_session_spice_clear_displays (self=0x9c6de0) at virt-viewer-session-spice.c:94
	 #17 0x000000000042240d in virt_viewer_session_spice_close (session=<optimized out>) at virt-viewer-session-spice.c:459
	 #18 0x0000000000414be5 in virt_viewer_app_quit (self=self@entry=0x680330) at virt-viewer-app.c:285
	 #19 0x0000000000415500 in virt_viewer_app_maybe_quit (self=0x680330, window=window@entry=0x981a90) at virt-viewer-app.c:481
	 #20 0x000000000041c4ad in virt_viewer_window_delete (src=<optimized out>, dummy=<optimized out>, self=0x981a90) at virt-viewer-window.c:771
	 #21 0x00007ffff61807f1 in _gtk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-3.so.0
	 #22 0x00007ffff3e6d784 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
	 #23 0x00007ffff3e887b3 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
	 #24 0x00007ffff3e8933f in g_signal_emit () at /lib64/libgobject-2.0.so.0
	 #25 0x00007ffff62dde6c in gtk_widget_event_internal () at /lib64/libgtk-3.so.0
	 #26 0x00007ffff617f5ef in gtk_main_do_event () at /lib64/libgtk-3.so.0
	 #27 0x00007ffff5c7dd25 in _gdk_event_emit () at /lib64/libgdk-3.so.0
	 #28 0x00007ffff5cae672 in gdk_event_source_dispatch () at /lib64/libgdk-3.so.0
	 #29 0x00007ffff3b9895a in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
	 #30 0x00007ffff3b98d10 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
	 #31 0x00007ffff3b98dbc in g_main_context_iteration () at /lib64/libglib-2.0.so.0
	 #32 0x00007ffff41643cd in g_application_run () at /lib64/libgio-2.0.so.0
	 #33 0x000000000040fc1a in main (argc=3, argv=0x7fffffffdec8) at virt-viewer-main.c:41

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	timed-revealer: Fix "revealer" refcounting
	virt_viewer_timed_revealer_new calls gtk_container_add on the instance
	returned by gtk_revealer_new so VirtViewerTimedRevealer does not own any
	ref on this GtkRevealer instance. Unrefing it in _dispose() is thus wrong.

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-06-24  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Use more accurate debug messages for foreign menu
	Acked-by: Christophe Fergeau <cfergeau@redhat.com>
	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	Get ovirt foreign menu item from UI file
	Currently the menu item is created manually, while this patch changes it to be
	retrieved from the UI file, and decides if it needs to be shown or hidden if the
	ISO list is received from ovirt.

	This a preparation for a upcoming UI change that will present the ISO list in a
	separate dialog, instead of a submenu.

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>
	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-06-23  Fabiano Fidêncio  <fidencio@redhat.com>

	window: Replace autoDrawer with native Gtk widgets
	GtkRevealer was intrudced in Gtk+ 3.10 and, combined with Gtk Overlay
	(intoduced in Gtk+ 3.2), can provide a more sustainably implementation
	of the AutoDrawer functionality.

	This approach is completely based on the approach taken by virt-manager:
	https://github.com/virt-manager/virt-manager/commit/dc05600324f6b9a82b68581fc0a9c145f9889ce9

	Resolves: https://bugs.freedesktop.org/show_bug.cgi?id=94495

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	mingw,spec: Bump msitools version
	Fedora 24 has GLib 2.48.0, which brings a new dependency: PCRE.
	The new dependency is already added to the wxi file (in msitools) and a
	new msitools build including the fix is already done [0].

	Let's just bump the version in our spec file and make sure we will be
	using the msitools which includes the fix.

	[0]: https://bodhi.fedoraproject.org/updates/FEDORA-2016-a7a2db6109

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2016-06-22  Pavel Grunt  <pgrunt@redhat.com>

	Fix missing field initializers
	Spotted by clang

	window: Use loop instead of multiple ifs
	Binds modifier's mask and key, also fixes a compile time warning
	spotted by clang:
	 warning: cast from 'gchar *' (aka 'char *') to 'guint *' (aka 'unsigned
	  int *') increases required alignment from 1 to 4 [-Wcast-align]
	 return (guint*)g_array_free(a, FALSE);

	window: Move definition from header

	window: Use a predefined macro instead of constant

2016-06-21  Fabiano Fidêncio  <fidencio@redhat.com>

	util: Fix resource path
	Since commit 1f6f1a48 the resource path for icons has been broken.
	The reason is that when moving the .ui files to $(srcdir)/resources/ui
	the define used for the resources was changed to reflect the new
	directory. However, this change wasn't needed by the icons and ended
	up with virt-viewer not displaying a few icons.

	Let's fix the issue by setting back the define to the previous one and
	then tweaking the virt_viewer_util_load_ui() to add "ui" to the resource
	path, for loading the ui files.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2016-06-20  Fabiano Fidêncio  <fidencio@redhat.com>

	ui: Move ui files to $(srcdir)/resources/ui
	I'd like to keep our resources all in the same place. In the future we
	will be able to have:
	$(srcdir)
	 |_ resources
	    |_ ui: for our {remote,virt}-viewer ui specific files
	    |_ gtk: for files that can be automatically handled by Gtk (like
	    |       app-menu).
	    |_ css: for custom themes (like:
	            https://bugs.freedesktop.org/show_bug.cgi?id=94276)

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

	ui: Rename UI files to .ui (instead of .xml)
	When using GtkApplication, Gtk automatically searches for the menus of
	the application at "org/example/app/gtk/menus.ui".

	Currently we don't have a "menus.ui", but try to see this commit is a
	first step in order to use app-menu.

	For now, let's standardize that all our UI files will have the ".ui"
	extension instead of the ".xml" one.

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

	remote-viewer: Add missing chain-up to parent's window_added() method
	It hasn't bitten us (so hard) so far but would from the moment we add
	support to app-menu/headerbar.

	By not chaining-up to the parent's method, gtk_window_set_application()
	is never called. This causes GApplication object not being able to load
	the app-menu, but using the "fallback" which only contains the "Quit"
	item.

	By chaining-up to the parent's method, g_application_hold() call on
	virt-viewer-app.c can be removed, as it is already called by the
	parent's window_added() method.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

	window: remove unneeded GTK_WIDGET() casts
	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

	display: use MIN_DISPLAY_{WIDTH, HEIGHT} as the minimum possible value
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	display: Only queue a resize on zoom-level changes
	By the comment in the code:
	"For the gtk2 build, we need to queue a resize even if the zoom level
	 hasn't changed.  This is due to the fact that VirtViewerWindow will
	 queue a resize event for itself immediately after calling this
	 function (in  order to shrink the window to fit the new display size
	 if necessary). If we don't queue a resize here, the window will become
	 tiny because we will only request 50x50 during the window resize."

	And it doesn't happen on gtk3 at all. So, let's just remove the comment
	and just quere the resize when zoom-changes actually happen.

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

2016-06-20  Pavel Grunt  <pgrunt@redhat.com>

	monitor-alignment: Do not crash on NULL display
	Since commit 01b66ef88bc142d6716b40b1e384e94a2629a99f virt-viewer
	does not crash on connection to a guest using an invalid display
	configuration (eg. Cirrus & QXL vga). That commit allowed existence
	of NULL display, however the code handling monitors alignment does
	not expect this and crashes when virt-viewer is shifting/aligning
	its windows.

	Avoid crashing by returning early on NULL display.

	 #0  0x0000000000411d0a in displays_cmp (p1=p1@entry=0xbad940, p2=p2@entry=0xbad944, user_data=user_data@entry=0x8eb180) at virt-viewer-util.c:544
	 #1  0x00007ffff3f16ac5 in msort_with_tmp (p=0x7fffffffd670, b=0xbad940, n=2) at gqsort.c:93
	 #2  0x00007ffff3f16ded in msort_r (b=b@entry=0xbad940, n=n@entry=2, s=s@entry=4, cmp=cmp@entry=0x411ce0 <displays_cmp>, arg=arg@entry=0x8eb180) at gqsort.c:278
	 #3  0x00007ffff3f16e78 in g_qsort_with_data (pbase=pbase@entry=0xbad940, total_elems=total_elems@entry=2, size=size@entry=4, compare_func=compare_func@entry=0x411ce0 <displays_cmp>, user_data=user_data@entry=0x8eb180) at gqsort.c:303
	 #4  0x000000000041277c in virt_viewer_align_monitors_linear (displays=displays@entry=0x8eb180 = {...}) at virt-viewer-util.c:586
	 #5  0x000000000041a92d in virt_viewer_session_on_monitor_geometry_changed (self=0x8f38a0 [VirtViewerSessionSpice], display=<optimized out>) at virt-viewer-session.c:373
	 #6  0x00007ffff4415908 in g_closure_invoke (closure=0x9306c0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffd960, invocation_hint=invocation_hint@entry=0x7fffffffd900)  at gclosure.c:801
	 #7  0x00007ffff4427a1d in signal_emit_unlocked_R (node=node@entry=0x668f80, detail=detail@entry=1551, instance=instance@entry=0x930440, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd960) at gsignal.c:3627
	 #8  0x00007ffff442fab1 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffdaf0) at gsignal.c:3383
	 #9  0x00007ffff442fd9f in <emit signal notify:agent-connected on instance 0x930440 [SpiceMainChannel]> (instance=instance@entry=0x930440, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3439
	 #10 0x00007ffff4419fd4 in g_object_dispatch_properties_changed (object=0x930440 [SpiceMainChannel], n_pspecs=<optimized out>, pspecs=<optimized out> at gobject.c:1061
	 #11 0x00007ffff441c4f9 in g_object_notify (pspec=<optimized out>, object=0x930440 [SpiceMainChannel]) at gobject.c:1155
	 #12 0x00007ffff441c4f9 in g_object_notify (object=0x930440 [SpiceMainChannel], property_name=<optimized out>) at gobject.c:1202
	 #13 0x00007ffff5a63dd0 in notify_main_context (opaque=0x7fffd6fde990) at gio-coroutine.c:240
	 #14 0x00007ffff3f07d7a in g_main_context_dispatch (context=0x68da40) at gmain.c:3152
	 #15 0x00007ffff3f07d7a in g_main_context_dispatch (context=context@entry=0x68da40) at gmain.c:3767
	 #16 0x00007ffff3f080b8 in g_main_context_iterate (context=0x68da40, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3838
	 #17 0x00007ffff3f0838a in g_main_loop_run (loop=0x710de0) at gmain.c:4032
	 #18 0x00007ffff5f53045 in gtk_main () at gtkmain.c:1207
	 #19 0x0000000000411a22 in main (argc=1, argv=0x7fffffffdfa8)

	Resolves: rhbz#1250820

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	Add tests for monitor alignment
	Related: rhbz#1250820

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-06-20  Charles Arnold  <carnold@suse.com>

	window: Fix segault on zooming operations
	When virt-viewer is "Waiting for guest domain to start" and
	the Ctrl- or Ctrl+ keys are pressed to zoom the blank display
	virt-viewer will crash in virt_viewer_display_get_desktop_size
	because of a NULL display pointer. To reproduce start virt-viewer
	on a VM not running and zoom the display.

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2016-06-16  Frediano Ziglio  <fziglio@redhat.com>

	Revert "Disable IME to allow receiving all keys"
	This reverts commit 191f9a8ab49f56aa48781b5eeaa4a1a65d626627.

	This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1342984.

	Calling ImmDisableIME disable IME for the entire program.
	On Windows 7 this also hide the keyboard application from the task bar
	making impossible to switch keyboard while using remote viewer.
	A recent commit in spice-gtk (7d881d2193bf5598b888a48bb4d8d7ad2e62f443,
	"widget: Disable IME context on display widget") disable IME processing
	just for SpiceDisplay. This avoid the above regression on Windows 7.

	Not having this spice-gtk commit is not going to cause a huge
	regression, so it's fine not to add strong coupling between this
	commit and the spice-gtk commit which fixes this differently.

	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2016-06-04  Michal Privoznik  <mprivozn@redhat.com>

	tests: Fix VPATH build
	So test-hotkeys include virt-viewer-app.h which includes
	virt-viewer-window.h which includes virt-viewer-display.h which
	in turn wants to include virt-viewer-enums.h. But, the enums
	header file is generated at build time into builddir not srcdir.
	Therefore it may happen if the two are distinct that compiler
	fails to find the enums file:

	In file included from ../../src/virt-viewer-window.h:29:0,
	                 from ../../src/virt-viewer-app.h:28,
	                 from ../../tests/test-hotkeys.c:27:
	../../src/virt-viewer-display.h:28:31: fatal error: virt-viewer-enums.h: No such file or directory
	 #include "virt-viewer-enums.h"
	                               ^
	compilation terminated.

	The fix is to include builddir into paths where header files are
	looked for.

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	virt-viewer-display-vnc: Include virt-viewer-util.h
	In function virt_viewer_display_vnc_new() we are calling
	virt_viewer_signal_connect_object() which is defined in
	virt-viewer-util module. However, the header file for the module
	is never included.

	  CC       libvirt_viewer_la-virt-viewer-display-vnc.lo
	virt-viewer-display-vnc.c: In function 'virt_viewer_display_vnc_new':
	virt-viewer-display-vnc.c:251:5: warning: implicit declaration of function 'virt_viewer_signal_connect_object' [-Wimplicit-function-declaration]
	     virt_viewer_signal_connect_object(app, "notify::enable-accel",
	     ^
	virt-viewer-display-vnc.c:251:5: warning: nested extern declaration of 'virt_viewer_signal_connect_object' [-Wnested-externs]

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-06-02  Pavel Grunt  <pgrunt@redhat.com>

	app: Check validity of hotkey
	The hotkey is valid if it has a valid value. The value is valid if it is
	not empty and is successfully parsed by gtk_accelerator_parse().

	These hotkeys formats are considered invalid:
	 "key" - missing value
	 "key=" - missing value
	 "key=abcd" - value cannot be parsed by gtk_accelerator_parse()

	Resolves: rhbz#1339572

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	tests: Add hotkeys test
	Check if expected g_warning messages are logged.

	Related: rhbz#1339572

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	app: Use debug to inform about smartcard shortcuts state
	Related: rhbz#1339572

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	vnc-display: Disable default grab sequence
	It should be enabled only if the "release-cursor" sequence was not
	specified (by using "--hotkeys=release-cursor=sequence"), otherwise
	both sequences would release the cursor.

	The solution is taken from the spice-display code.

	Resolves: rhbz#1339575

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-05-31  Pavel Grunt  <pgrunt@redhat.com>

	Include virt-viewer-util.h only in source files
	It doesn't have any symbols to be used in headers

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	Add mnemonics for each display item
	Related: rhbz#1332545

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-05-10  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Use sso-token when set in .vv file
	Starting with oVirt 4.0, this replaces the jsessionid field for
	automatic authentication with oVirt instances for REST communication.

	vv-file: Add support for 'sso-token' field in [ovirt]
	This is the new way of authenticating with remote oVirt instance
	starting with oVirt 4.0.

	ovirt: Fix OvirtApi memory handling
	The oVirt integration code in remote-viewer assumes that
	the caller owns a reference on the OvirtApi instance returned
	by ovirt_proxy_fetch_api{,finish}.
	This is incorrect as these 2 API calls have always been documented as
	being (transfer none). This was working so far because libgovirt was
	leaking an OvirtApi reference. This bug is fixed upstream, so we now get
	a warning on remote-viewer exit about trying to unref an invalid object.

	This commit fixes that by taking the ref we expect in OvirtForeignMenu,
	and by not releasing a ref we do not own in remote-viewer.c

	ovirt: Error reporting improvements on invalid VM name

	ovirt: Don't try to use [ovirt] if jsessionid is not set
	If jsessionid is not set in the .vv file and we try to use anyway the
	REST API, an authentication dialog will be shown by remote-viewer, which
	is very unwelcome. If we don't have a jsessionid set, we know we won't
	be able to silently login to the REST API, so don't try to set a foreign
	menu when it's not set.

2016-05-04  Frediano Ziglio  <fziglio@redhat.com>

	Add a program to test redirection on Windows
	This program attempt multiple redirection combination:
	- passing handles using either CreateProcess or SetStdHandle;
	- having a console or not;
	- redirection stdout/stderr yes or not.

	Worth to mention that for running this test program the user will need
	either a native MingW or Wine (with .exe executables enabled in Linux
	binfmt).

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

	Manage redirection in a way similar to Unix
	This patch allows remote-viewer to redirect output/error streams to
	files.
	Also if launched from a console program (for instance from the command
	prompt) you are able to see output from the console where you launch
	the program.
	This allow to launch the program with a syntax like:
	  > remote-viewer.exe --debug > log.txt 2>&1
	or simply:
	  > remote-viewer.exe --debug

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-05-03  Jonathon Jongsma  <jjongsma@redhat.com>

	Add some missing mnemonics to menu items
	Fixes: rhbz#1332545

2016-05-03  Fabiano Fidêncio  <fidencio@redhat.com>

	msi: Depend on mingw-adwaita-icon-theme
	Instead of maintain a file which includes every single icon that we use
	from adwaita-icon-theme (adwaita-icons-needed.wxi.in), let's depend on
	mingw-adwaita-icon-theme directly.
	It reduces considerably the maintainability and the risk to have missing
	icons. Although, the size of the final binary gets increased from ~35MB
	to ~50MB.

	Resolves: rhbz#1301064
	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

	Remove nsis installer
	The only reason for us to keep maintaining the nsis installer was the
	activex plugin (spicex), which requires those nsis based installers.
	As the next release of RHEV/oVirt won't use the activex plugin (spicex)
	let's completely remove the nsis installer from our tree and focus on
	only maintain the msi installer.
	oVirt/RHEV is shipping virt-viewer based on 2.0 release and, if needed,
	they can stick to 3.0 branch in a future update (in case their plan goes
	wrong and they end up needing the nsis support).

	Related: rhbz#1324885 and rhbz#1316560
	Acked-by: Christophe Fergeau <cfergeau@redhat.com>

2016-05-03  Jonathon Jongsma  <jjongsma@redhat.com>

	Add some timeouts to file transfer dialog
	In order to avoid the situation where a dialog flashes onto the screen
	and then is immediately hidden, I've added a couple timeouts to the
	dialog.

	The first is a 250ms timeout before showing the dialog. This avoids
	showing the dialog at all for very small, quick transfers.

	There is also a 500ms timeout before hiding a finished task. This
	ensures that even transfers that only take e.g. 251ms to transfer will
	get shown to the user for at least 500ms rather than being hidden 1ms
	after showing the dialog.

	Related: rhbz#1332180, rhbz#1324521
	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
	Acked-by: Victor Toso <victortoso@redhat.com>

	Add file transfer dialog
	This dialog will show the progress of files being transferred from the
	client to the guest and allows the user to cancel ongoing file transfer
	tasks.  The user can cancel each transfer individually, or cancel all
	ongoing transfers at once.

	Resolves: rhbz#1332180, rhbz#1324521
	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-04-26  Fabiano Fidêncio  <fidencio@redhat.com>

	spice: avoid crashing when using invalid video config
	virt-viewer _only_ supports guests that have either:

	A) a signle graphics device with multiple displays (monitorid=0,
	displayid=(0,1,2,3)).

	B) multiple graphics device with a single display each
	(monitorid=(0,1,2,3), displayid=0).

	From now on, avoid crashing connecting to a guest which has a graphics
	configuration that violates A or B. However, even avoiding the crash, we
	cannot ensure the guest will work as expected.

	Resolves: rhbz#1250820

2016-04-22  Pavel Grunt  <pgrunt@redhat.com>

	manpage: Mention spice-gtk in See also section

2016-04-19  Christophe Fergeau  <cfergeau@redhat.com>

	Disable IME to allow receiving all keys
	This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1297640

	Acked-by: Frediano Ziglio <fziglio@redhat.com>
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2016-04-15  Christophe Fergeau  <cfergeau@redhat.com>

	spec: Use pkgconfig() in BuildRequires
	This is better than hardcoding the name of the development package as
	this will not be impacted by package renames.

2016-03-24  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	configure: cleanup {GLIB2, GTK}_CFLAGS
	Also, remove unecessary AC_SUBST calls, as {GLIB2,GTK}_LIBS are never
	touched.

	Fix spice includes
	Spice release version 0.31 requires that only spice-client.h or
	spice-client-gtk.h should be included directly. As a result,
	compilation is now throwing warnings like:

	warning: #warning "Only <spice-client.h> can be included directly" [-Wcpp]
	warning: #warning "Only <spice-client-gtk.h> can be included directly" [-Wcpp]

	This patch also bumps spice version requirement to 0.31, to ensure
	those files are available.

2016-03-15  Pavel Grunt  <pgrunt@redhat.com>

	util: Remove unused GHashTable key/value

2016-03-14  Pavel Grunt  <pgrunt@redhat.com>

	Move tests under /tests directory
	Keep tests separated from the code

	Add libvirt-viewer-util library an use it in tests

2016-03-09  Christophe Fergeau  <cfergeau@redhat.com>

	Don't include libvirt.h in virt-viewer-auth.h
	virt-viewer-auth.h does not use any libvirt types, so the #include is
	not needed, and virt-viewer-auth.h is used while building remote-viewer,
	which do not use libvirt compilation flags. This caused failures on
	a freshly installed box without libvirt headers.

	ovirt: Only use active ISO domains for foreign menu
	oVirt storage domains can be in various states (inactive, in
	maintainance, ...). We only want to show the ISOs it contains in the
	foreign menu when the storage domain is actually active, not in the
	other states.

	https://bugzilla.redhat.com/show_bug.cgi?id=1310450

2016-03-08  Pavel Grunt  <pgrunt@redhat.com>

	test: Add tests for monitor mapping

	virt_viewer_parse_monitor_mappings: Add parameter for client monitors
	Drop dependency on gdk. it allows to write tests not depending
	on the client's configuration.

	Move monitor mapping parsing from app to util
	It is not specific to VirtViewerApp.
	Following commits will add support for tests thanks to this move.

2016-03-07  Fabiano Fidêncio  <fidencio@redhat.com>

	app, cosmetic: remove one unneeded level of identation
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	app: monitor-config - do it all or nothing
	Don't keep trying to use a monitor config when it already failed for one
	monitor, otherwise virt-viewer can end up in a situation where none of
	the displays are enabled but the program is still running.
	So, in case of any failure, let's skip the whole monitor config, forcing
	virt-viewer to use the "fallback" one instead.

	Resolves: rhbz#1315206

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2016-03-04  Fabiano Fidêncio  <fidencio@redhat.com>

	Refresh translations from Zanata

2016-03-03  Fabiano Fidêncio  <fidencio@redhat.com>

	Use GResource for loading ui files
	Let's take advantage of GResource for loading ui files in a better and
	cleaner way than virt_viewer_util_load_ui() was doing.
	It also brings the benefit, at least for developers, of being able to
	test ui changes without having to "make install" virt-viewer.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	app: Remove useless libxml includes
	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	about: Fix the program's name in the title
	Title currently says "About Glade". It's not a big deal because it's not
	actually shown anywhere, but just for correctness let's change it to
	"About Virt-Viewer".

	Thanks Jonathon Jongsma for pointing this out.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2016-02-26  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Don't open the default display while parsing command line
	Since commit a9ce19f it has not been possible to check app version from
	a tty without X session running. The issue is that gtk_get_option_group
	function opens the default display if passed TRUE as argument.

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-02-26  Fabiano Fidêncio  <fidencio@redhat.com>

	session-vnc: Avoid depracated warnings on this file
	This is a temporary solution for using autobuild.sh, as commit df403f5
	introduced the -Wdeprecated-declarations and gtk-vnc provides a callback
	for getting authentication credentials which uses GValueArray, forcing
	virt-viewer to keep using g_value_array_get_nth(), which is deprecated.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

2016-02-25  Fabiano Fidêncio  <fidencio@redhat.com>

	configure: Simplify libvirt/libvirt-glib handling
	Merge libvirt and libvirt-glib checking in PKG_CHECK_MODULES, then we
	don't nee the LIBVIRT_GLIB_{CFLAGS,LIBS} in Makefile.am

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	wxi: virt-viewer depends on libvirt-glib
	Since 51ce01d virt-viewer depends again on libvirt-glib.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
	Acked-by: Victor Toso <victortoso@redhat.com>

	nsis: Add libvirt-glib-1.0-0.dll
	Since 51ce01d virt-viewer depends again on libvirt-glib.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
	Acked-by: Victor Toso <victortoso@redhat.com>

	Bring back libvirt-glib dependency
	libvirt-glib dependency was dropped in commit 296f91c in favor to
	maintain the full glib event loop integration into virt-viewer tree.
	This decision was taken because libvirt-glib was not mature enough at
	that time, which is not the case nowadays.

	The libvirt-glib version chosen as dependency (0.1.8) is the first
	release that includes the fixes for the glib event loop integration that
	were backported to virt-viewer last year.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
	Acked-by: Victor Toso <victortoso@redhat.com>

2016-02-25  Pavel Grunt  <pgrunt@redhat.com>

	README: update information
	Remove info about gtk versions
	Fix a typo
	Change link for spice-gtk widget

2016-02-24  Fabiano Fidêncio  <fidencio@redhat.com>

	cleanup: Don't use gtk_widget_modify_{fg,bg}()
	These function have been deprecated since Gtk 3.0 and is recommended to
	use _override_color() and _override_background_color() instead.
	As these new functions take a GdkRGBA as parameter, let's use
	gdk_rgba_parse() instead of gdk_color_parse().

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	cleanup: Don't use GtkStock
	It has been deprecated since Gtk 3.10.

	New strings have been added as the GTK_STOCK_* defines had their
	translations done inside Gtk itself, but now the translations of the new
	added labels must be done by virt-viewer translators.

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	cleanup: Drop old compatibilty code
	A few more pieces of old compatibility code can be dropped, as we
	already depend on GLib 2.38.

	Acked-by: Jonathon Jongsma <jjongsma@redhat.com>

	Use GDK_VERSION_MAX_ALLOWED
	In order to avoid using a too new Gtk API.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	Use GLIB_VERSION_MAX_ALLOWED
	In order to avoid using a too new GLib API.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	m4: Use -Wdeprecated-declarations
	Let's enable deprecated-declarations warnings as we want to:
	1) Avoid insert/maintain deprecated widgets/methods
	2) Avoid adding widgets/methods that are too new, what could cause
	problems like virt-viewer not being able to build in a specific distro.

	Patches for making these two items possible are coming, introducing
	_VERSION_MAX_ALLOWED for both GLIB and GDK and removing (as much as
	possible) deprecated widgets/methods/structures.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	mingw: Bump msitools version
	Since commit 5d98df3 we depend on msitools 0.95-2.

	Acked-by: Pavel Grunt <pgrunt@redhat.com>

	app: Don't leave a window opened in case of connection error
	Since commit ed9b3f3 the main window is not hidden when disconnecting.
	But it also is not hidden when a connection error occurs, leaving a
	black display with a not so accurate message to the users in case they
	try to connect to a non-valid address from the remote-viewer connection
	window and in this case the main window (display #1) shuldn't be shown.

	The impetus for this chance is the following:
	- user runs remote-viewer without any argument
	- the remote-viewer connection window shows up
	- user attempts to connect to a non-valid address
	- a dialog pops up indicating a failure connecting to the graphic server
	- the main window shows up saying "Connecting to the graphic server"
	- user clicks 'Ok'
	- the main window stays there with the same message

	As a user, I expect the program to not show the main window in
	connecting failure cases. This patch accomplishes that.

	nsis: update nettle to 3.2.1
	Use version 3.2.1, matching what currently is in f23.

2016-02-18  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Drop old compatibility code
	With glib requirements now being 2.38, these functions do not make sense anymore.

	remote-viewer: Remove unused properties
	The reason for using properties to access those members was to ensure
	that they would only be set during the creation of the object. Now that
	we removed that restriction, we set private members directly.

	Port to GtkApplication API's
	Most of this patch consists in code being shuffled around to fit the
	expected flow while using the new APIs. I tried my best to make this
	patch the less intrusive as possible. Main changes are:

	- Updated build requirements
	   * glib version 2.38
	   * gtk+ version 3.10
	   * gio

	- VirtViewerApp is now a subclass of GtkApplication.
	  Some mainloop calls were replaced:
	   * gtk_main() -> g_application_run()
	   * gtk_quit() -> g_application_quit()

	- Unified command line option handling.
	  The logic has moved from the main functions and split in common
	  options, and specific ones for each application. With this, the main
	  functions were highly simplified, and now basically responsible for
	  instantiating the App object and running the main loop.

	- All Window objects must be associated with the Application.
	  With this, there is no need to emit our own 'window-added'/'window-
	  removed' signals, as those will be emited by GtkApplication whenever
	  gtk_application_add_window() and gtk_application_remove_window() are
	  called. Also, 'window-removed' was not being used anywhere.

2016-02-18  Uri Lublin  <uril@redhat.com>

	spice: vv-file: do not ignore usb-filter
	Fixes rhbz#1309634

	Acked-by: Fabiano Fidêncio <fidencio@redhat.com>

2016-02-15  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Minor code cleanups
	- Reuse #ifdef HAVE_SPICE_GTK block for include.
	- Move declaration of vfunc together with others of the same class.
	- Move variable declaration to the top of the function.

2016-02-15  Fabiano Fidêncio  <fidencio@redhat.com>

	Drop support to gtk2
	The 3.0 release was the last one that still supports GTK2. For the
	Windows builds the support to GTK2 was dropped in the previous release.
	Let's do the same for the entire project now.

2016-02-15  Pavel Grunt  <pgrunt@redhat.com>

	display: Use correct variable name
	Fix gtk2 build

	display: Remove zoom property
	It is possible to get the same info from the "zoom-level" property.
	virt_viewer_display_get_zoom() now returns TRUE if zoom level != 100

	display: Use common code to get preferred size

	app: Compute monitor mapping only in fullscreen

	app: Do not show usbredir button without session
	The button is visible in the fullscreen toolbar when waiting for a guest.
	Clicking on it causes the runtime warning:
	virt-viewer-CRITICAL **: virt_viewer_session_usb_device_selection: assertion 'VIRT_VIEWER_IS_SESSION(self)' failed

	app: Add comment only when config file has VM group
	Avoid the debug message on close:
	virt-viewer-DEBUG: Unable to get comment from key file: Key file does not have group '39cd210d-5d45-478a-91fe-b3680307f2df'

	app: Return early on empty monitor mapping
	Resolves:
	https://bugzilla.redhat.com/show_bug.cgi?id=1304648

2016-02-03  Pavel Grunt  <pgrunt@redhat.com>

	display: Set value of desktop width and height property directly
	Avoid calling gtk_widget_queue_resize() and emiting
	the "display-desktop-resize" signal.
	The only user of the properties is virt_viewer_display_spice_set_desktop()
	which will call the function and emit the signal after setting both
	"desktop-width" and "desktop-height" properties.

	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	display: Return early and remove a block
	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

	display: Remove unnecessary VIRT_VIEWER_DISPLAY cast
	Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>

2016-01-18  Fabiano Fidêncio  <fidencio@redhat.com>

	Remove GSLice usage
	It's being slowly deprecated in glib
	https://bugzilla.gnome.org/show_bug.cgi?id=754687

2016-01-13  Jonathon Jongsma  <jjongsma@redhat.com>

	display: Set useful values for MIN_DISPLAY_{WIDTH, HEIGHT}
	Nowadays the value for MIN_DISPLAY_{WIDTH,HEIGHT} is 50. This arbitrary
	value doesn't bring any benefit, doesn't provide a useful size for a
	desktop to be usable and can actually trigger some undefined behavior
	when reaching resolutions that are lower than the ones provided by the
	video drivers (as in rhbz#1296878).

	In order to avoid these issues and provide a minimum resolution that can
	still be useful for our users, let's use the same values for minimum
	width and height used by the linux QXL drivers (320x200).

	This also requires us to adjust the minimum requested widget size when
	zoom is enabled so that we don't accidentally request a size smaller
	than the driver can support.

	Related: rhbz#1296878

2016-01-08  Fabiano Fidêncio  <fidencio@redhat.com>

	display: set min value for desktop-{width,height} props as MIN_DISPLAY_{WIDTH,HEIGHT}
	Otherwise we can have warnings when resizing the virt-viewer window to
	the smallest possible size, like:

	(virt-viewer:11187): GLib-GObject-WARNING **: value "50" of type `gint'
	is invalid or out of range for property `desktop-height' of type `gint'

	Related: rhbz#1296878

2015-12-07  Daniel P. Berrange  <berrange@redhat.com>

	Refresh translations from zanata

2015-12-03  Daniel P. Berrange  <berrange@redhat.com>

	Update NEWS for release 3.0

	Bump spice-gtk dep to 0.30.0 to avoid dep on git snapshot release

	s/mingw62/mingw64/ in RPM spec file

	Avoid macro in RPM comment

2015-12-01  Fabiano Fidêncio  <fidencio@redhat.com>

	autobuild: gtk2 has been dropped for windows
	0a7fa73f is the commit that dropped support for gtk2 for the nsis
	installer.
	03c014cb is the commit that dropped support for gtk2 for the msi
	installer.

	specs: add remote-viewer-connect.xml
	The file was introduced in commit 0571843d but never added to the spec
	files.

	nsis: add libbz2-1.dll
	mingw-bzip2 seems to be a mingw-freetype dependency.

	nsis: update nettle to 3.1.1
	Use version 3.1.1, matching what currently is in f23.

	nsis: update libgnutls to 3.4.7
	Use version 3.4.7, matching what currently is in f23.

	nsis: update pango to 1.38.1
	Use version 1.38.1, matching what is in f23.
	An important note is that the removed files were removed in
	mingw-pango-1.37.1.

	docs: fix "make syntaxcheck"

2015-12-01  Jonathon Jongsma  <jjongsma@redhat.com>

	Add some multimonitor documentation
	These two files describe some of the behavior and requirements for
	virt-viewer in fullscreen multimonitor mode

2015-11-05  Daniel P. Berrange  <berrange@redhat.com>

	autogen: Ensure m4 directory exists
	We're telling autoconf to look in the m4/ directory for
	files, but this directory doesn't exist in a clean checkout
	until libtoolize has run. Older versions of autoconf consider
	this to be a fatal error.

	git.mk: fix copyright line and remove use of -o / -a
	Any copyright line must use 'Copyright (C) <year> Red Hat'
	per the syntax-check rule.

	Use of -a / -o args to "test" is non-portable and should
	instead be done with 'test ... || test ...'

2015-11-04  Eduardo Lima (Etrunko)  <etrunko@redhat.com>

	Remove useless {get,set}_property functions

	Move declaration to the beginning of the file

	Update MAINTAINERCLEANFILES variables
	Makefile.am: Use helper variables from git.mk
	man/Makefile.am: This should be $(dist_man_MANS) instead of $(man_MANS)

	Update git.mk from latest upstream version

	Call intltoolize after autoreconf
	After removing m4/.gitignore file in previous patch, I started getting
	the following error when running autogen.sh.

	ln: failed to create symbolic link ‘m4/intltool.m4’: No such file or directory
	cp: cannot create regular file ‘m4/intltool.m4’: No such file or directory
	intltoolize: cannot copy '/usr/share/aclocal/intltool.m4' to 'm4/intltool.m4'

	The problem is that intltoolize requires te m4/ directory to be present,
	and this directory is actually created by running autoreconf, so it
	should be called before intltoolize.

	Remove m4/.gitignore file
	All .gitignore files are handled by git.mk and should not be part of the
	repository.

2015-11-04  Pavel Grunt  <pgrunt@redhat.com>

	session-spice: Disable extra displays in fullscreen mode
	When running in fullscreen it is possible to end up in a situation
	where we have more displays enabled than monitors. This can happen
	if displays that were enabled in the previous connection to the guest
	doesn't match displays requested when entering the fullscreen mode.

	This commit solves the problem by disabling displays that should not be
	enabled in the fullscreen mode.

	Resolves: rhbz#1212802

	app: Do not map display to non-existent monitor

	app: Add helper for number of client monitors

2015-10-21  Fabiano Fidêncio  <fidencio@redhat.com>

	util: Fix the size of sorted_displays allocation
	As sorted_displays is a vector containing all displays' order, its
	allocation size must be the maximum display id + 1 instead of the
	maximum display id. Also, fix the size used for sorting and iterating
	the sorted_displays vector.

	Valgrind log:
	==15946== Invalid write of size 4
	==15946==    at 0x4169C0: virt_viewer_align_monitors_linear (virt-viewer-util.c:581)
	==15946==    by 0x42248B: virt_viewer_session_on_monitor_geometry_changed (virt-viewer-session.c:438)
	==15946==    by 0xBB41F03: _g_closure_invoke_va (gclosure.c:831)
	==15946==    by 0xBB5BC7C: g_signal_emit_valist (gsignal.c:3214)
	==15946==    by 0xBB5C764: g_signal_emit_by_name (gsignal.c:3401)
	==15946==    by 0x4328F3: virt_viewer_display_spice_monitor_geometry_changed (virt-viewer-display-spice.c:93)
	==15946==    by 0x432D60: virt_viewer_display_spice_size_allocate (virt-viewer-display-spice.c:224)
	==15946==    by 0xBB41CD4: g_closure_invoke (gclosure.c:768)
	==15946==    by 0xBB53538: signal_emit_unlocked_R (gsignal.c:3549)
	==15946==    by 0xBB5BEEF: g_signal_emit_valist (gsignal.c:3305)
	==15946==    by 0xBB5C29E: g_signal_emit (gsignal.c:3361)
	==15946==    by 0x637D6F6: gtk_widget_size_allocate_with_baseline (gtkwidget.c:6093)
	==15946==  Address 0x18c79d4c is 0 bytes after a block of size 12 alloc'd
	==15946==    at 0x4C2A9C7: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
	==15946==    by 0xBDD36D1: g_malloc0 (gmem.c:127)
	==15946==    by 0x41698D: virt_viewer_align_monitors_linear (virt-viewer-util.c:577)
	==15946==    by 0x42248B: virt_viewer_session_on_monitor_geometry_changed (virt-viewer-session.c:438)
	==15946==    by 0xBB41F03: _g_closure_invoke_va (gclosure.c:831)
	==15946==    by 0xBB5BC7C: g_signal_emit_valist (gsignal.c:3214)
	==15946==    by 0xBB5C764: g_signal_emit_by_name (gsignal.c:3401)
	==15946==    by 0x4328F3: virt_viewer_display_spice_monitor_geometry_changed (virt-viewer-display-spice.c:93)
	==15946==    by 0x432D60: virt_viewer_display_spice_size_allocate (virt-viewer-display-spice.c:224)
	==15946==    by 0xBB41CD4: g_closure_invoke (gclosure.c:768)
	==15946==    by 0xBB53538: signal_emit_unlocked_R (gsignal.c:3549)
	==15946==    by 0xBB5BEEF: g_signal_emit_valist (gsignal.c:3305)

	Resolves: rhbz#1272650
	Related: rhbz#1267184

	session: Only create a hashtable if apply_monitor_geometry vfunc exists
	Creating the monitors hashtable only after checking for the existence of
	apply_monitor_geometry vfunc avoids leaking the hashtable in the case
	where the vfunc doesn't exist.

	Related: rhbz#1267184

2015-10-21  Pavel Grunt  <pgrunt@redhat.com>

	app: Use display id instead of 'this' in debug

2015-10-20  Christophe Fergeau  <cfergeau@redhat.com>

	Stop polling after reconnecting to libvirtd
	When the connection to libvirtd is lost, virt-viewer starts polling for
	libvirtd to come back. The polling mechanism is also used when
	connecting to very old libvirtd which don't support
	virConnectDomainEventDeregisterAny().

	Currently, once we could reconnect to libvirtd, virt-viewer will keep
	polling, thus behaving as if the libvirtd connection does not support
	virConnectDomainEventDeregisterAny(). This commit makes sure we stop
	polling once the new libvirtd connection is established.

	This has the side-effect of preventing
	https://bugzilla.redhat.com/show_bug.cgi?id=1271519 from occurring with
	recent libvirt as it's caused by some race occurring when using the
	polling code.

2015-10-09  Jonathon Jongsma  <jjongsma@redhat.com>

	Use the display ID to configure fullscreen monitors
	When starting virt-viewer in fullscreen mode, we generally try to
	arrange guest displays exactly the same as client monitors. So if a
	client machine has two monitors, we'll try to enable display 0 and 1 on
	the guest (in that order). However, when using the configuration file to
	map fullscreen displays to different monitors, the guest displays may
	not be sequential, or there may be displays missing. For example,
	consider the following configuration:

	monitor-mapping=1:2;2:1

	In virt_viewer_session_spice_fullscreen_auto_conf(), we were building an
	array of GdkRectangles for the initial monitors that we want to enable
	on the guest. We then configured the guest displays using the index of
	the array for the as the id of the guest display. But when displays
	are sparse or are out-of-sequence, the array index will not match the
	>ntended display ID. This created problems where displays were arranged
	incorrectly. By changing the simple array into a GHashTable, we can keep
	the display ID together with the GdkRectangle until we need to use it,
	and things will be configured correctly.

	This regression was introduced by c586dc8c.

	Fixes: rhbz#1267184

	SessionSpice: make main-window a property
	Make "main-window" a construct-only property of VirtViewerSessionSpice.
	This allows us to set it in the constructor and encapsulate all of the
	setup within the gobject constructor rather than doing extra work in the
	_new() function.

2015-10-08  Fabiano Fidêncio  <fidencio@redhat.com>

	msi: use the correct id for remote-viewer.exe
	As, in theory, file ids are stables, seems that we have been using the
	wrong id for remote-viewer.exe (not sure if since forever or if the path
	changed).
	That's what msidump shows:

	ffidenci@cat ~/src/upstream/virt-viewer/dump $ grep "fil808B4A5BAB4ACD727D3823632E798743" File.idt
	ffidenci@cat ~/src/upstream/virt-viewer/dump $ grep "fil808B4A5BAB4ACD727D3823632E798743" Registry.idt
	reg29E29C5608128A0192FB9DC3C18562A6 0
	VirtViewer.vvfile\shell\open\command
	"[#fil808B4A5BAB4ACD727D3823632E798743]" "%1"   CProgIds
	ffidenci@cat ~/src/upstream/virt-viewer/dump $ grep "remote-viewer.exe" File.idt
	fil610DF9E49759B1DEC646290195F96F8A cmp7677A8696936707272DCA43B1BF26760
	remote-viewer.exe   855735          512 837

	So, let's use the correct id (fil610DF9E49759B1DEC646290195F96F8A) from
	now on.

	Related: rhbz#1146016

2015-10-06  Fabiano Fidêncio  <fidencio@redhat.com>

	msi: {virt,remote}-viewer depends on libxml2
	Currently libxml2 is pulled as an indirect dependency when virt-viewer
	is built with support to ovirt or libvirt (pulled by rest or libvirt,
	respectively). However, {virt,remote}-viewer itself depends on libxml2
	and not having it as an explicit dependency will cause errors on opening
	remote-viewer when it is built without support to ovirt/libvirt.

2015-09-10  Jonathon Jongsma  <jjongsma@redhat.com>

	Add new functions to enable/disable a display
	Previously, there was a single function for controlling the enabled
	state of a display: virt_viewer_display_set_enabled(). Unfortunately,
	this function is used for two slightly different things:

	 A. It informs the local display widget that the display has become
	    disabled or enabled on the server. In other words, it tries to
	    synchronize the 'enabled' state of the local widget with the actual
	    state of the remote display.

	OR

	 B. It tries to actively enable a currently-disabled display (or vice
	    versa) due to some action by the user in the client application.
	    This causes the client to send a new configuration down to the
	    server. In other words, it tries to change the state of the remote
	    display.

	There is some conflict between these two scenarios. If the change is due
	to a notification from the server, there is no need to send a new
	configuration back down to the server, so this results in unnecessary
	monitor configuration messages and can in fact cause issues that are a
	little bit hard to track down. Because of this, I decided that it was
	really necessary to have two separate functions for these two different
	scenarios. so the existing _set_enabled() function will be used for
	scenario A mentioned above. I added two new
	functions (_enable() and _disable()) that are used to send new
	configurations down to the server.

2015-09-08  Jonathon Jongsma  <jjongsma@redhat.com>

	Set enabled status of all displays when we get a monitor update
	Previously, when we received a new monitors update from the server, we
	only called virt_viewer_display_set_enabled() for the displays that were
	enabled. We simply assumed that those that were not enabled were already
	set to disabled. This assumption is currently valid, but I have some
	changes in the pipeline where this is not true. This change ensures that
	we update the enabled state of all monitors when we get an updated
	monitors conifguration.

	Don't emit 'monitor-geometry-changed' for disabled displays
	When a display widget receives a new size allocation, we generally emit
	a monitor-geometry-changed signal so that we can reconfigure the
	displays. But if the widget for a *disabled* display is allocated,
	there's no reason to send down a new configuration. We don't need to
	emit this signal. This doesn't currently cause any problems, but I ran
	into issues while testing some other uncommitted changes.

2015-08-17  Fabiano Fidêncio  <fidencio@redhat.com>

	coverity: result is not floating-point
	Coverity says:
	Result is not floating-point (UNINTENDED_INTEGER_DIVISION)
	interger_division: Dividing integer expressions "preferred->width * 100"
	and "zoom", and then converting the integer quotient to type double. Any
	remainder, or fractional part of the quotient, is ignored.

2015-08-13  Fabiano Fidêncio  <fidencio@redhat.com>

	coverity: Copy into fixed sized buffer
	Coverity says:
	You might overrun the 108 byte fixed-size string "addr.sun_path" by
	copying "unixsock" without checking the lenght.
	Note: This detect has an elevated risk because the source argument is a
	paramenter of the current function.

2015-07-29  Pavel Grunt  <pgrunt@redhat.com>

	session-spice: Use display id instead of monitor id in debug log
	Windows guests have monitor id = 0, so the debug log is always the same:
	"creating spice display (#:0)" for all the displays.

	configure: Use default error message when package is missing
	To make clear why configure failed - e.g.:
	 Package requirements (spice-client-gtk-2.0 >= 0.28) were not met
	 Requested 'spice-client-gtk-2.0 >= 0.28' but version of spice-client-gtk-2.0 is 0.25
	instead of
	 spice-gtk requested but not found

	Related:
	https://bugzilla.redhat.com/show_bug.cgi?id=1214577

	configure: Enable spice-gtk when have all necessary spice packages
	When neither --with-spice-gtk=yes nor --with-spice-gtk=no is used,
	spice-gtk is supposed to be automatically enabled/disabled depending
	on its availability. However, this is not perfectly working as once
	spice-gtk has been detected as available, configure will fail if
	spice-protocol or spice-controller are too old. In this case, spice-gtk
	support should just be disabled rather than configure failing

	virt-viewer-window: Change zoom with respect to real zoom
	The zoom can be changed by resizing the window (VNC / Spice without
	the agent). It is necessary to recalculate the zoom level before
	changing it, otherwise zoom operations will not work correctly.

	Resolves:
	https://bugs.freedesktop.org/show_bug.cgi?id=90582

	Show window after its default and preferred sizes are set
	Under some circumstances (Xfce desktop environment, gtk3 client,  RHEL6
	guest having two monitors running locally) it is possible to create
	a loop of resizing windows. It is caused by size request like 1x1 sent
	to the guest. These request are created because _window_queue_resize()
	is called when the window is being shown.
	To avoid the problem, call gtk_widget_show() after its preferred and
	default sizes are set.

	Resolves:
	https://bugs.freedesktop.org/show_bug.cgi?id=91405

2015-07-22  Fabiano Fidêncio  <fidencio@redhat.com>

	events: don't leak GIOChannel when destroying IO handle
	virt_viewer_events_add_handle() creates a GIOChannel in order to watch the
	fd it was given for changes.
	virt_viewer_events_remove_handle() is freeing all the resources allocated by
	virt_viewer_events_add_handle() except for this GIOChannel. This commit adds
	the needed g_io_channel_unref() call to virt_viewer_events_remove_handle()

	Based on commit 8e95b8d25a3eee6316aff2f83b0c449aaf10984a from
	libvirt-glib.
	Original author: Christophe Fergeau <cfergeau@redhat.com>

	Related to: rhbz#1243228

	events: allow to remove disabled timers and handles
	Trying to remove a disabled timer or handle will cause
	virt_viewer_events_remove_{handle,timeout}() to return an error
	rather than removing it.

	Based on commit 79699d73e6e1b7218e3bd8349d176752f86128b9 from
	libvirt-glib.
	Original author: Christophe Fergeau <cfergeau@redhat.com>

	Related to: rhbz#1243228

	events: don't create glib IO watch for disabled handles
	It's possible to create a handle to watch for file events which do not
	watch for any file event. Such a handle can be enabled later with
	virt_viewer_events_update_handle() by setting some conditions to watch for.

	When a handle is disabled after it has been created,
	virt_viewer_events_update_handle() makes sure it removes the corresponding
	virt_viewer_events_handle::source IO watch if any was set.
	virt_viewer_events_add_handle() will always create a
	virt_viewer_events_handle::source IO watch even if the handle is not
	watching for any events.

	This commit makes consistent by only creating a watch with g_io_add_watch()
	when the caller asked to watch for some events.

	Based on commit d71c143936a35cd6c3f23ae0cbf7f3215d944051 from
	libvirt-glib.
	Original author: Christophe Fergeau <cfergeau@redhat.com>

	Related to: rhbz#1243228

	events: don't hold events lock when dispatching free callbacks
	The _event_timeout_remove and _event_handle_remove methods
	were holding onto the global lock when invoking the free
	callback. This is a violation of the libvirt events API
	contract which requires free callbacks to be invoked in
	a re-entrant safe context.

	Based on commit dd17c3cc587c73a8c915238f9d9a3e200e89c93f from
	libvirt-glib.
	Original author: Daniel P. Berrange <berrange@redhat.com>

	Related to: rhbz#1243228

	events: don't reschedule deleted timeouts/watches
	The deletion of libvirt timeouts/watches is done in 2 steps:
	- the first step is synchronous and unregisters the timeout/watch
	  from glib mainloop
	- the second step is asynchronous and triggered from the first step.
	  It releases the memory used for bookkeeping for the timeout/watch
	  being deleted

	This is done this way to avoid some possible deadlocks when
	reentering the sync callback while freeing the memory associated
	with the timeout/watch.

	However, it's possible to call gvir_event_update_handle after
	gvir_event_remove_handle but before _event_handle_remove does
	the final cleanup. When this happen, _update_handle will reregister
	the handle with glib mainloop, and bad things will happen when
	a glib callback is triggered for this event after _event_handle_remove
	has freed the memory associated with this handle watch.

	This commit marks the timeouts and watches as removed in the
	synchronous _remove callback and makes sure removed timeouts/watches
	are ignored in _update callbacks.

	Based on commit 3e73e0cee977fb20dd29db3ccfe85b00cc386c43 from
	libvirt-glib.
	Original author: Christophe Fergeau <cfergeau@redhat.com>

	Related to: rhbz#1243228

	events: protect 'handles' and 'timeouts' against concurrent accesses
	Timeout and watch deletion is done from an idle callback. However,
	we cannot assume that all libvirt event calls (the callbacks passed
	to virEventRegisterImpl) will be done from the mainloop thread. It's
	thus possible that a libvirt event call will run a thread while
	one of the idle deletion callbacks runs.
	Given that the 'handles' and 'timeouts' arrays are shared among all
	threads, we need to make sure we hold the 'eventlock' mutex before
	modifying them.

	Based on commit 924178f6b35735458b37d30303fe7bc753dde0b1 from
	libvirt-glib.
	Original author: Christophe Fergeau <cfergeau@redhat.com>

	Related to: rhbz#1243228

	events: remove unused virt_viewer_events_find_{handle,timeout} arg
	Based on commit 1fb34633ef3b318ea678b775d5e47debc98d2184 from
	libvirt-glib.
	Original author: Christophe Fergeau <cfergeau@redhat.com>

	Related to: rhbz#1243228

	events: allow zero timeouts for timer
	In libvirt, it's perfectly possible and widely used to have disabled
	timers (timeout=-1) and fire them up 'randomly' with timeout=0.
	However, with current mapping into glib mainloop it's not possible
	and causing troubles.

	Based on commit a40a1732e0d53fcc44b8d348cec97152dafd2b88 from
	libvirt-glib.
	Original author: Michal Privoznik <mprivozn@redhat.com>

	Related to: rhbz#1243228

	glib-compat: Use g_new0(GMutex, 1) if GLib >= 2.31
	Since 2.31, g_mutex_new() is deprecated.

	Based on commit 2dc7476d32a9e158e688486e8f184c719c53bb4c from
	libvirt-glib.
	Original author: Daniel P. Berrange <berrange@redhat.com>

	Related to: rhbz#1243228

	glib-compat: group definitions and functions
	There is no need to have more than one glib version checking for the
	same version, in the same file. Let's just group them all.

	events: remove timeout and handle from arrays
	Otherwise, it will crash next time it goes find()

	Backtrace:
	(gdb) where
	 #0  0x00007efcae715095 in g_io_create_watch () from
	 /lib64/libglib-2.0.so.0
	 #1  0x00007efcae7150ef in g_io_add_watch_full () from
	 /lib64/libglib-2.0.so.0
	 #2  0x00000000004275ba in virt_viewer_events_update_handle
	 (watch=<optimized out>, events=1) at
	 virt-viewer-events.c:158
	 #3  0x00007efcb1a62dce in virNetSocketUpdateIOCallback (sock=0x1e75c00,
	 events=1) at rpc/virnetsocket.c:1981
	 #4  0x00007efcb1a50113 in virNetClientIOUpdateCallback
	 (client=<optimized out>, enableCallback=<optimized out>) at
	 rpc/virnetclient.c:1639
	 #5  0x00007efcb1a50f82 in virNetClientIO (thiscall=0x20e0170,
	 client=0x1f2e060) at rpc/virnetclient.c:1793
	 #6  virNetClientSendInternal (client=client@entry=0x1f2e060,
	 msg=msg@entry=0x20e0100,
	 expectReply=expectReply@entry=false, nonBlock=nonBlock@entry=true) at
	 rpc/virnetclient.c:1962
	 #7  0x00007efcb1a52413 in virNetClientSendNonBlock (client=0x1f2e060,
	 msg=msg@entry=0x20e0100) at
	 rpc/virnetclient.c:2036
	 #8  0x00007efcb1a5243d in virNetClientKeepAliveSendCB (opaque=<optimized
	 out>, msg=0x20e0100) at
	 rpc/virnetclient.c:293
	 #9  0x00007efcb1a5ba02 in virKeepAliveTimer (timer=<optimized out>,
	 opaque=0x20d3d00) at rpc/virkeepalive.c:176
	 #10 0x00000000004272e9 in virt_viewer_events_dispatch_timeout
	 (opaque=0x1e6cd30) at virt-viewer-events.c:233
	 #11 0x00007efcae7231b3 in g_timeout_dispatch () from
	 /lib64/libglib-2.0.so.0
	 #12 0x00007efcae72279a in g_main_context_dispatch () from
	 /lib64/libglib-2.0.so.0
	 #13 0x00007efcae722ae8 in g_main_context_iterate.isra.24 () from
	 /lib64/libglib-2.0.so.0
	 #14 0x00007efcae722dba in g_main_loop_run () from
	 /lib64/libglib-2.0.so.0
	 #15 0x00007efcb054a045 in gtk_main () from /lib64/libgtk-3.so.0
	 #16 0x0000000000410a9c in main (argc=1, argv=0x7ffde58a7978) at
	 virt-viewer-main.c:124

	Based on commit cff5f1c46f4b9661e112b85159fb58ae473a9a89 from
	libvirt-glib.
	Original author: Marc-André Lureau <marcandre.lureau@redhat.com>

	Related to: rhbz#1243228

	events: register event using GOnce to avoid multiple initializations
	Based on commit 8f8d9ce5238dbcbce40aa04ba55b8c55f97c79c0 from
	libvirt-glib.
	Original author: Marc-André Lureau <marcandre.lureau@redhat.com>

	Related to: rhbz#1243228

	events: ensure event callbacks are threadsafe
	Take a global lock whenever changing any event callbacks to ensure
	thread safety.

	Based on commit f1fe67da2dac6a249f796535b8dbd155d5741ad7 from
	libvirt-glib.
	Original author: Daniel P. Berrange <berrange@redhat.com>

	Related to: rhbz#1243228

2015-07-22  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer-window: Allow to resize window to any size
	The function virt_viewer_window_resize restricts window to be bigger
	than a client's screen. It avoids extending the window to more client's
	screens, it causes changes of the zoom level if the guest does not fit
	into a screen.

	Lets remove virt_viewer_window_resize (its behaviour was introduced
	by the commit 6acb3856b6d8007752388f22f97aa8aaffdb7a5e). It will let
	the window managers to handle resizing of the window.

	Resolves:
	https://bugzilla.redhat.com/show_bug.cgi?id=1221501
	https://bugzilla.redhat.com/show_bug.cgi?id=1205804

	Remove unnecessary parameter from virt_viewer_window_resize()
	Since c3cbdef888cc823e92140027d38378f40ccd4174 virt_viewer_window_resize
	is always called with keep_win_size = FALSE.

2015-07-09  Pavel Hrdina  <phrdina@redhat.com>

	virt-viewer: set keepAlive on libvirt connection
	Setting the keepAlive on libvirt connection is needed in order to
	receive the CloseCallback event.

	Resolves: rhbz#1164052

2015-06-30  Jonathon Jongsma  <jjongsma@redhat.com>

	Build an intermediate convenience library
	Instead of building every single source file twice (once for
	virt-viewer, and once for remote-viewer), just build them into a
	temporary library and link the final executables against that.

	The one possible drawback to this approach is that we now use the same
	log domain for both executables: 'virt-viewer'. Previously, the
	remote-viewer executable used 'remote-viewer' for its log domain.

	Build: put one file on a line
	For easier maintenance, put a single source file per-line in the
	makefile

	Remove spice-controller flags from virt-viewer build
	Virt-viewer does not use spice-controller, only remote-viewer does. So
	there's no need to ad SPICE_CONTROLLER_CFLAGS to the virt-viewer build.

2015-06-24  Fabiano Fidêncio  <fidencio@redhat.com>

	mingw,spec: Fix mingw-gstreamer1-plugins-bad-free name
	The package was created with a wrong name (mingw-gstreamer1-plugins-bad)
	and then fixed (mingw-gstreamer1-plugins-bad-free) for f22 and newer.

2015-06-23  Fabiano Fidêncio  <fidencio@redhat.com>

	msi: drop gtk2 support
	As virt-viewer builds for Windows are using GTK3 nowadays, we can easily
	drop GTK2 support and avoid maintenance effort in something that is not
	used/tested anymore.

	nsis: drop gtk2 support
	As virt-viewer builds for Windows are using GTK3 nowadays, we can easily
	drop GTK2 support and avoid maintenance effort in something that is not
	used/tested anymore.

	mingw-spec: Update msitools dependency
	The new msitools release includes the necessaries changes for fixing
	mingw-virt-viewer build (on fedora22).

	These fixes are:
	- an updated libvirt.wxi, removing storageencryption.rng file
	- a new included libeproxy.wxi, a new dep for gtk3 since its 3.15.3
	  version.

	nsis: add libepoxy-0.dll (a new gtk3 dependency)
	The new dependecy was introduced in gtk+ 3.15.3.

2015-06-19  Jonathon Jongsma  <jjongsma@redhat.com>

	Don't wait for reconnect when user cancels auth
	When starting virt-viewer with the --reconnect switch to a guest that
	has a password, if the user cancels the authentication dialog (e.g.
	pressing 'Esc'), the window will display "Waiting for guest domain to
	restart".  Obviously, the domain will never restart because it's already
	running.

	After this fix, the application will simply exit when the user cancels
	authentication, even if the --reconnect switch is used.

	Automatically retry auth failures for VNC
	There's no reason that we need to ask if the user wants to retry auth
	failures for VNC sessions but not ask for spice sessions. If the user
	doesn't want to retry, she can simply click 'cancel' when the auth
	dialog pops up, just as they do with spice.

	VNC session: emit session-cancelled signal
	When the user cancells an authentication dialog (e.g. by pressing 'Esc',
	emit the session-cancelled signal to be consistent with the spice
	session implementation.

	Rename session-auth-failed to session-auth-unsupported
	Now that VNC and Spice both return the same signal on normal
	authentication failures ('session-auth-refused'), the
	'session-auth-failed' signal is too confusingly similar. Rename it to
	-unsupported to make it obvious that it's a different type of
	(unrecoverable) error.

	Fix inconsistencies in session auth failures
	The spice session implementation can retry authentication on its own,
	whereas the vnc session needs to tear down the session and re-connect in
	order to retry a failed authentication. This results in the following
	inconsistent behavior:

	VNC session:
	 - emits a 'session-auth-failed' signal when the client does not support
	   a particular authentication type (i.e.: a non-recoverable error)
	Spice session:
	- emits a 'session-auth-failed' signal when user enters an incorrect
	  password, and immediately retries auth internally

	VNC session:
	 - emits a 'session-auth-refused' error when user enters an invalid
	   password (i.e.: a recoverable error)
	Spice Session:
	- never emits a 'session-auth-refused' signal

	Because of these differences, the VirtViewerApp code to handle authentication
	failures is a bit confusing and difficult to maintain. To fix this issue, make
	both the spice and VNC sessions emit the same signal when similar errors occur.
	We use the new session API added in the last commit to determine whether the
	session supports automatic retries so we know how to handle the signal.

	Session: add vfunc to check auth retry capability
	The spice session implementation can retry authentication on its own,
	whereas the vnc session needs to tear down the session and re-connect in
	order to retry a failed authentication. Add API to determine this so
	that we can clean up some code related to authentication failures.

	Move SpiceSession setup to create_spice_session()
	Most of the setup (connecting to signals, etc) for the SpiceSession was
	done in create_spice_session(), but some was done afterwards in
	virt_viewer_session_spice_new(). Consolidate all session configuration
	in one place.

	In addition to making it easier to maintain, create_spice_session() is
	also called in virt_viewer_session_spice_close(). which results in a
	spice session that is configured slightly differently than the first
	session created in _new(). Consolidating everything in
	create_spice_session() avoids that inconsistency.

2015-06-19  Daniel P. Berrange  <berrange@redhat.com>

	Add config.h include to remote-viewer-connect.c file

2015-06-16  Lukas Venhoda  <lvenhoda@redhat.com>

	remote-viewer-connect: Address entry is now required
	Connect button is now non-sensitive when address entry is empty.
	Pressing enter will now also NOT connect, when address entry is empty.

	remote-viewer-connect: Fixed reselecting in recent chooser
	Recent chooser didn't unselect on loosing focus.
	Selecting recent connection, then modifying address in entry and
	doubleclicking on the same recent connection caused remote-viewer to
	connect to address in the entry,

	Recent chooser now unselects on loosing focus, forcing to re-select when
	doubleclicking the recent connection, which will now properly set the
	address to connect to.

	remote-viewer-connect: Changed hardcoded UI into XML
	Hardcoded UI removed in favor of XML.
	Added the new XML file for translation.

	remote-viewer-connect: Changed dialog into a window
	Changed connect dialog from GtkDialog to a GtkWindow.
	Added the necessary signals and buttons, to keep the
	behaviour of a dialog. (ESC to close, ENTER to submit)

	remote-viewer-connect: Check if uri is NULL
	URI should be NULL before passing it to remote_viewer_connect_dialog.

	remote-viewer-connect: Changed response to gboolean
	remote_viewer_connect_dialog now returns TRUE and FALSE, instead of 0 and -1.

	Added a doxygen style comment to document this in code also.

	remote-viewer: Connect dialog moved to its own file
	Connect dialog from remote-viewer is now in its own file.
	Most other dialog also have their own files.
	This will make changing the dialog into a window easier.

	Renamed connect_dialog to remote_viewer_connect_dialog.

2015-06-16  Pavel Grunt  <pgrunt@redhat.com>

	configure: Require spice-protocol 0.12.7
	We are already using SPICE_CHANNEL_WEBDAV from spice/enums.h

2015-06-15  Christophe Fergeau  <cfergeau@redhat.com>

	Enable hotkeys after setting them in virt_viewer_app_set_hotkeys
	Enabling hotkeys will trigger a rebuild of the 'send keys' menu
	containing the new hotkeys. virt_viewer_app_set_hotkeys() was clearing
	and then enabling the hotkeys before parsing the string containing the
	new hotkeys. This was causing these hotkeys to be missing from the 'Send
	keys' menu when they are set through the spice controller because the
	'send keys' menu was rebuilt before the new hotkeys are set.

	Resolves: rhbz#1055600

2015-06-11  Fabiano Fidêncio  <fidencio@redhat.com>

	nsis: Ship libwinpthread even without libvirt support
	Without libwinpthread, remote-viewer complains about missing this dll,
	when built using --without-libvirt

2015-06-10  Sandy Stutsman  <sstutsma@redhat.com>

	Add InstallScope="perMachine" to virt-viewer.wxs.in
	Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1146016
	Without this parameter the installer will place the start menu icon in the
	Admin users path rather than the 'AllUsers'.  Unprivileged users are unable
	to use the menu to start the remote-viewer.

	N.B. Because previous installations mixed Users and PerMachine (AllUsers)
	paths, this installation will *NOT* properly upgrade them.  They must be
	manually uninstalled first.

2015-06-10  Daniel P. Berrange  <berrange@redhat.com>

	Add missing config.h header file

2015-06-09  Christophe Fergeau  <cfergeau@redhat.com>

	vv-file: Show 'newer-version-url' when version check fails
	We currently display a generic error message when the current binary is
	older than the minimum version specified in the vv file. The previous
	commit added a 'newer-version-url' field to these .vv file. This commit
	adds that URL to the error message if it's set.

	vv-file: Add 'newer-version-url' key to .vv files
	If set, this URL will be displayed when one of the version checks
	('version' of 'versions' key fail). This URL should contain explanations
	about how to get an updated remote-viewer version.

	test: Add test case for virt_viewer_compare_buildid

	util: Replace virt_viewer_compare_version with _compare_buildid
	This allows us to do a more accurate version check if the .vv file
	producer wants to allow builds newer than x.y-z because they contain an
	important bug fix.

	vv-file: Use "versions" in min version check
	This tries to use the list of versions added to .vv files by the
	previous commit. If remote-viewer was built with an os-id specified, and
	if it's found in the 'versions' .vv file key, then the version
	associated with it is used for version checks, otherwise the 'version'
	field is used if present.

	Show osid in remote-viewer --version

	build-sys: Add --with-osid
	This new configure flag allows to specify a string ID (eg fedora22,
	ubuntu10.04, ..) identifying the OS this remote-viewer build will be
	for. This will be used in combination with the new 'versions' field in
	.vv files in order to make it possible for the creator of the .vv file
	to specify which version it expects for the various OSes which may
	connect.

	vv-file: Add VirtViewerFile::versions
	Specifying a single minimal version in the .vv file is not enough as
	the client version will be highly dependent on the OS it's running in.
	Windows versioning is not the same as linux versioning, Fedora 21 and
	Fedora 22 may have different release numbers for the same version,
	and we may want to force a specific minimal release in case of a
	critical bug fix.

	This commit adds supports for a 'versions' field in .vv files where a
	list of os-id:version couples can be stored.

	vv-file: Refactor virt_viewer_file_check_min_version
	Reorganize the code a bit so that it's easier to extend it.

	vv-file: Move version checking code in its own function
	This moves the version checking code in a
	virt_viewer_file_check_min_version helper so that it can be
	reused/extended more easily.

	build-sys: Always prepend '-' to BUILDID
	This was removed by commit 28a6bd6 as WINDOWS_PRODUCTVERSION
	needs a buildid without a dash. Apart from this variable,
	all other uses of buildid/BUILDID in virt-viewer source tree
	need a dash between the version number and the buildid to avoid getting
	output like "3.01" instead of "3.0-1"

	Rather than patching every location where BUILDID is used, this commit
	appends the "-" before substituting/defining BUILDID in configure.ac.
	This does not modifies the buildid configure.ac variable, this way
	WINDOWS_PRODUCTVERSION won't get an unwanted '-'.

	build-sys: Don't substitute buildid when it was not set
	Since it defaults to being 0, we'll get a spurious 0 on remote-viewer
	--version if we AC_DEFINE/AC_SUBST it when the user did not specify it.

2015-06-04  Pavel Grunt  <pgrunt@redhat.com>

	monitor-mapping: Do not allow to skip a display
	Skipping a display does not have an effect because displays will be
	reconfigured and shifted on the guest side anyway.

	these monitor mappings are not valid:
	 'monitor-mapping=1:2;3:1' - display #2 is not specified
	 'monitor-mapping=4:2;2:1' - displays #1, #3 are not specified
	 'monitor-mapping=3:3'     - displays #1, #2 are not specified

2015-06-02  Fabiano Fidêncio  <fidencio@redhat.com>

	session-spice: Only update displays geometry if the agent is connected

2015-05-21  Lukas Venhoda  <lvenhoda@redhat.com>

	virt-viewer: Fix choose VM dialog alt-tab in gnome2
	Choose VM dialog was not visible in taskbar and alt-tab when running on
	system with gnome2.

	rhbz#1223285

2015-05-21  Fabiano Fidêncio  <fidencio@redhat.com>

	Revert "display-vnc: fix zoom-level set by command line"
	This reverts commit 68148e1bd1a47ff370c78e2569a57ae0f3d8a400.

	The commit in question was causing a regression about a tiny window
	being displayed when opening a vnc guest.
	The issue only happens with the gtk2 version of virt-viewer.

	rhbz#1170071 that was solved by the reverted commit is avoided by
	the commit c45a30e909656434aa842d48d828ef038ec7364a.

	Resolves: rhbz#1201679

2015-05-21  Pavel Grunt  <pgrunt@redhat.com>

	session-vnc: Set window for display to avoid gtk-vnc v0.3.8 crash
	The VNC display widget of gtk-vnc v0.3.8 needs a window at the moment
	it is initialized otherwise it would crash.

	Resolves: rhbz#1196517

2015-05-21  Lukas Venhoda  <lvenhoda@redhat.com>

	virt-viewer-display-vnc: Set uuid when using VNC
	Notify user, that VNC does not provide uuid.

	Set uuid to string "VNC does not provide guid".
	This is more informative then just plain "Unknown".
	User will now know WHY the GUID is unknown, when using remote-viewer.

	virt-viewer-display-vnc: Set guest name when using VNC
	If it's not already set, set guest name field in virt-viewer-app when using VNC.

	Wait for VNC to be initialized (virt_viewer_display_vnc_initialized()).
	In this callback get field guest name from app and check whether it
	was already set before (FE from libvirt).
	If not, set the guest name to name provided by VNC from
	vnc_display_get_name().

	This fill fix issue in remote-viewer: Guest name is Unknown when using VNC.

2015-04-29  Michal Privoznik  <mprivozn@redhat.com>

	Fix syntax-check
	Commit c45a30e9 broke syntax-check:

	trailing_blank
	src/virt-viewer-window.c:1478:
	maint.mk: found trailing blank(s)
	maint.mk:700: recipe for target 'sc_trailing_blank' failed
	make: *** [sc_trailing_blank] Error 1

2015-04-22  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer-window: Set initial zoom only once
	It is not needed to do it more times as it may cause unnecessary resize
	events especially when leaving the fullscreen mode

	related: rhbz#1206460

	virt-viewer-window: Make sure that minimum zoom level is lower than NORMAL_ZOOM_LEVEL
	The minimum size of the desktop is 100x100 if the minimum window size
	is greater than this, the zoom level is greater than NORMAL_ZOOM_LEVEL

	related: rhbz#1206460

2015-04-22  Lukas Venhoda  <lvenhoda@redhat.com>

	virt-viewer: Set toolbar buttons not sensitive when needed
	File->Screenshot, File->Preferences, View->Zoom and Send keys are now
	sensitive only while quest is connected.

	Changed behaviour of zoom:

	Previously, zoom could be set while quest wasn't connected. The zoom
	would then be set on connection. There was no indication of current zoom
	level while not connected to guest.

	Now, the menu is not sensitive while not connected to guest. Zoom can
	now be only modified while connected to guest, or from the command line.

	app/window: Set display menu not sensitive when needed
	Displays menu must be sensitive only when at least one display is
	enabled.

2015-04-22  Fabiano Fidêncio  <fidencio@redhat.com>

	cosmetic: move the "break" to inside the {} block

	spice-session: use the error message, when available, on _channel_destroy()

	session-spice: Destroy the channel instead of emit a "session-disconnect" signal
	Whenever we reach these branches, we will abort or have to create a new
	spice session (from the dialog showed to the user). So, destroying the
	channel on these situations seems sane enough.
	It also avoids an error dialog to be popped out twice with (basically)
	the same information.

	session-spice: Do not use _UNUSED for used attributes
	channel attribute is actually used for error treatment

	display: remove useless identation level

2015-04-15  Jonathon Jongsma  <jjongsma@redhat.com>

	SessionSpice: Protect against unreffing window twice
	In theory, the dispose method can be called multiple times, so any
	member variables that are unreffed should be set to NULL so that we
	don't accidentally unref them multiple times.

2015-04-15  Christophe Fergeau  <cfergeau@redhat.com>

	build-sys: Ship mingw-virt-viewer.spec in tarballs
	virt-viewer.spec is already shipped in tarballs, it's convenient to have
	a pregenerated mingw-virt-viewer.spec in there as well.

2015-04-14  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer-main: '--wait' should not be used without domain name
	Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
	name to be placed just after the '--wait' option. It broke the
	command line api, because running 'virt-viewer $vm --wait' was considered
	as the error.

	This patch rather checks whether the domain name was specified.

	Related: rhbz#1209398, rhbz#1211573

	Revert "virt-viewer-main: Require domain name as argument for '--wait'"
	This reverts commit a830275344c88aef12166661b68ea2b4429c7212.

	Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
	name to be placed just after the '--wait' option. It broke the
	command line api, because running 'virt-viewer $vm --wait' was considered
	as the error.

	Related: rhbz#1209398, rhbz#1211573

	Revert "man: document that '--wait' requires domain as parameter"
	This reverts commit 9ba2d28a0f35b69befd26d7c122bbe4cd626422f.

	Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
	name to be placed just after the '--wait' option. It broke the
	command line api, because running 'virt-viewer $vm --wait' was considered
	as the error.

	Related: rhbz#1209398, rhbz#1211573

	Revert "virt-viewer-main: exit when domain names doesn't match"
	This reverts commit 10264d0d1ecbd67d3e59e3a1a3032936b0635eda.

	Commit a830275344c88aef12166661b68ea2b4429c7212 required the domain
	name to be placed just after the '--wait' option. It broke the
	command line api, because running 'virt-viewer $vm --wait' was considered
	as the error.

	Related: rhbz#1209398, rhbz#1211573

	virt-viewer-main: exit when domain names doesn't match
	Since the domain name is required as a parameter for the '--wait'
	option (commit a830275344c88aef12166661b68ea2b4429c7212 ), it is
	neccessary to check whether all domains names are the same. Otherwise
	it wouldn't be clear which name should be used.

	related: rhbz#1211573

	man: document that '--wait' requires domain as parameter
	related: rhbz#1211573

	man: document usage of domain name as optional
	related: rhbz#1211573

	ovirt: Allow to cancel authentication without showing error dialog
	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1201604

2015-04-09  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Add support for an 'admin' key in vv file
	When using a user with administrator rights, the VMs this user can
	access from the user portal and the admin portal are different, and
	REST API users must indicate which set of VMs they want through a
	specific header. libgovirt already has support for that in its API, but
	virt-viewer was not making use of that API.
	This commit adds support for an 'admin' field in the [ovirt] section of
	.vv files so oVirt can indicate remote-viewer whether this header should
	be set or not.

2015-04-09  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer-app: Do not show error dialog twice for unknown graphic
	Related: rhbz#1085216

2015-04-09  Jonathon Jongsma  <jjongsma@redhat.com>

	Cleanup: only add display when it's created
	This wasn't causing any problems because the _add_display() function has
	an early return for the case that the display has already been added to
	the session, but it's quite confusing when reading the code to see this
	_add_display() function being called for every display every time we get
	a monitor configuration update.

	Emit one show-hint notification when enabling a display
	Freeze notifications before setting the show hints to prevent multiple
	notification signals from being emitted.

2015-04-09  Pavel Grunt  <pgrunt@redhat.com>

	display-spice: Do not ignore change of position
	Positions of displays can be changed by guest, it is important to
	react to this change by rearranging client's windows otherwise
	mouse actions can be assigned to a wrong window.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206216

	virt-viewer-window: Return early when zoom of window and zoom of display are same
	The zoom level should be changed when zoom levels of the window and
	the display are different. It is wrong to check the previous value of
	the window because it could be set just for the window and not for
	the display (e.g. when setting zoom level using the command line).

	Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1206460

	virt-viewer-window: Set zoom when display is enabled and ready.
	The display has default dimensions (100x100) when it is disabled.
	Calculating the minimal zoom for the display will give wrong value
	for the newly opened display.

	It is better to wait for setting the zoom level to the moment when
	the display is enabled and ready.

	Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1206460

2015-04-07  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer-main: Require domain name as argument for '--wait'
	As since 88f634179e56742a21fb4c7efc270e4203322d74 virt-viewer can be
	used without a domain-name, let's require it when using --wait.

	Resolves: rhbz#1209398

2015-04-07  Christophe Fergeau  <cfergeau@redhat.com>

	Fix leak in virt_viewer_session_spice_clear_displays()
	The GList returned by spice_session_get_channels() must be freed after
	use.

2015-04-03  Fabiano Fidêncio  <fidencio@redhat.com>

	Fix crash when disabling last enabled display
	Using virt_viewer_signal_connect_object() instead of g_signal_connect()
	ensures that menu_display_visible_toggled_cb() won't be executed after
	the display object be disposed.

	Backtrace for the crash:

	 #0  0x00007ffff070592b in g_type_check_instance_is_a (type_instance=0x8851f0, iface_type=<optimized out>) at gtype.c:4016
	 #1  0x000000000041ee06 in virt_viewer_display_get_session (self=0x8851f0) at ../../src/virt-viewer-display.c:702
	 #2  0x0000000000417be7 in menu_display_visible_toggled_cb (checkmenuitem=0x93f790 [GtkCheckMenuItem], display=0x8851f0) at ../../src/virt-viewer-app.c:2187
	 #6  0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=instance@entry=0x93f790, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
	 #3  0x00007ffff06e3b9f in g_closure_invoke (closure=0x93faa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffc230, invocation_hint=invocation_hint@entry=0x7fffffffc1b0) at gclosure.c:768
	 #4  0x00007ffff06f54c9 in signal_emit_unlocked_R (node=node@entry=0x6d73e0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc230) at gsignal.c:3549
	 #5  0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc3f0) at gsignal.c:3305
	 #7  0x00007ffff5eb6158 in gtk_check_menu_item_activate (check_menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:299
	 #8  0x00007ffff5eb6158 in gtk_check_menu_item_activate (menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:419
	 #12 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
	 #9  0x00007ffff06e3b9f in g_closure_invoke (closure=closure@entry=0x6d5aa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffc6b0, invocation_hint=invocation_hint@entry=0x7fffffffc630) at gclosure.c:768
	 #10 0x00007ffff06f51bd in signal_emit_unlocked_R (node=node@entry=0x6d5ba0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc6b0) at gsignal.c:3479
	 #11 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc870) at gsignal.c:3305
	 #13 0x0000000000417c5e in menu_display_visible_toggled_cb (checkmenuitem=0x93f790 [GtkCheckMenuItem], display=0x8851f0) at ../../src/virt-viewer-app.c:2200
	 #17 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=instance@entry=0x93f790, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
	 #14 0x00007ffff06e3c45 in g_closure_invoke (closure=0x93faa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffcb50, invocation_hint=invocation_hint@entry=0x7fffffffcad0) at gclosure.c:768
	 #15 0x00007ffff06f54c9 in signal_emit_unlocked_R (node=node@entry=0x6d73e0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcb50) at gsignal.c:3549
	 #16 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffcd10) at gsignal.c:3305
	 #18 0x00007ffff5eb6158 in gtk_check_menu_item_activate (check_menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:299
	 #19 0x00007ffff5eb6158 in gtk_check_menu_item_activate (menu_item=0x93f790 [GtkCheckMenuItem]) at gtkcheckmenuitem.c:419
	 #23 0x00007ffff06fe29f in <emit signal ??? on instance 0x93f790 [GtkCheckMenuItem]> (instance=instance@entry=0x93f790, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
	 #20 0x00007ffff06e3c45 in g_closure_invoke (closure=closure@entry=0x6d5aa0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffcfd0, invocation_hint=invocation_hint@entry=0x7fffffffcf50) at gclosure.c:768
	 #21 0x00007ffff06f51bd in signal_emit_unlocked_R (node=node@entry=0x6d5ba0, detail=detail@entry=0, instance=instance@entry=0x93f790, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcfd0) at gsignal.c:3479
	 #22 0x00007ffff06fded0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd190) at gsignal.c:3305
	 #24 0x00007ffff608648e in IA__gtk_widget_activate (widget=widget@entry=0x93f790 [GtkCheckMenuItem]) at gtkwidget.c:5048
	 #25 0x00007ffff5f6cacd in IA__gtk_menu_shell_activate_item (menu_shell=0x70ece0 [GtkMenu], menu_item=0x93f790 [GtkCheckMenuItem], force_deactivate=<optimized out>) at gtkmenushell.c:1303
	 #26 0x00007ffff5f6ce96 in gtk_menu_shell_button_release (widget=0x70ece0 [GtkMenu], event=<optimized out>) at gtkmenushell.c:730
	 #31 0x00007ffff06fe29f in <emit signal ??? on instance 0x70ece0 [GtkMenu]> (instance=instance@entry=0x70ece0, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3361
	 #27 0x00007ffff5f578ad in _gtk_marshal_BOOLEAN__BOXED (closure=0x6c7180, return_value=0x7fffffffd4e0, n_param_values=<optimized out>, param_values=0x7fffffffd540, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:86
	 #28 0x00007ffff06e3c45 in g_closure_invoke (closure=closure@entry=0x6c7180, return_value=return_value@entry=0x7fffffffd4e0, n_param_values=2, param_values=param_values@entry=0x7fffffffd540, invocation_hint=invocation_hint@entry=0x7fffffffd4c0) at gclosure.c:768
	 #29 0x00007ffff06f5cef in signal_emit_unlocked_R (node=node@entry=0x6c73f0, detail=detail@entry=0, instance=instance@entry=0x70ece0, emission_return=emission_return@entry=0x7fffffffd660, instance_and_params=instance_and_params@entry=0x7fffffffd540) at gsignal.c:3587
	 #30 0x00007ffff06fdac2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd710) at gsignal.c:3315
	 #32 0x00007ffff608790c in gtk_widget_event_internal (widget=widget@entry=0x70ece0 [GtkMenu], event=event@entry=0x944f90) at gtkwidget.c:5017
	 #33 0x00007ffff6087be7 in IA__gtk_widget_event (widget=widget@entry=0x70ece0 [GtkMenu], event=event@entry=0x944f90) at gtkwidget.c:4814
	 #34 0x00007ffff5f55b94 in IA__gtk_propagate_event (widget=0x70ece0 [GtkMenu], event=0x944f90) at gtkmain.c:2501
	 #35 0x00007ffff5f55f5b in IA__gtk_main_do_event (event=0x944f90) at gtkmain.c:1696
	 #36 0x00007ffff5bae7dc in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at gdkevents-x11.c:2425
	 #37 0x00007ffff03e40ba in g_main_context_dispatch (context=0x693d50) at gmain.c:3122
	 #38 0x00007ffff03e40ba in g_main_context_dispatch (context=context@entry=0x693d50) at gmain.c:3737
	 #39 0x00007ffff03e4450 in g_main_context_iterate (context=0x693d50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808
	 #40 0x00007ffff03e4772 in g_main_loop_run (loop=0x748980) at gmain.c:4002

2015-04-02  Pavel Grunt  <pgrunt@redhat.com>

	session-spice: Remove spice-gtk version checks
	Since 77ac0d8892837a117f9ca10020c1ac7f1944fca7 virt-viewer requires
	spice-gtk v0.28

	virt-viewer-app: Set hotkeys when app is constructed
	virt_viewer_app_set_hotkeys() calls virt_viewer_app_set_enable_accel()
	which notify the display about "enable-accel". However the display
	begins to exist after the virt_viewer_app initialization.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206106

	virt-viewer-window: Change zoom of the display only when it is possible
	Do not allow to zoom out if it is not possible due to the width of
	the top menu. It avoids emitting size allocation events that will
	change the display resolution of the spice guest.

	Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206460

	virt-viewer-window: Return NULL instead of FALSE for display

	virt-viewer-display: Use MIN_DISPLAY_WIDTH/HEIGHT instead of numbers

	Use ZOOM constants instead of numbers

2015-04-01  Christophe Fergeau  <cfergeau@redhat.com>

	Fix virt-viewer --reconnect crash with SPICE VMs
	When using virt-viewer --reconnect, virt-viewer currently crashes when
	a SPICE VM is destroyed with "virsh destroy"

	What happens is that when the guest is destroyed, virt-viewer receives a
	SPICE_CHANNEL_ERROR_IO notification in
	virt_viewer_session_spice_main_channel_event().  This triggers the
	emission of the "session-disconnected" signal, which will end up calling
	spice_session_disconnect() (indirectly through
	virt_viewer_app_disconnected/virt_viewer_app_deactivate).

	Since spice-gtk commit ff25f3e, the actual session disconnection is
	done from an idle.  When the "session-disconnected" emission stops, the
	VirtViewerSession instance is destroyed. However, the associated
	VirtViewerDisplaySpice are still alive as the various SpiceChannels
	instances hold a reference through the "virt-viewer-displays" GObject
	data.
	These channels are destroyed when the idle queued by spice_session_disconnect()
	run. The associated VirtViewerDisplay are in turn destroyed too, but
	this causes attempts to use the VirtViewerSession associated with the
	displays, which has already been destroyed. This causes a crash.

	This commit adds a virt_viewer_session_spice_clear_displays() which is
	similar to virt_viewer_session_clear_displays(), but makes sure the
	"virt-viewer-displays" references are dropped too. This ensures the
	VirtViewerDisplay instances don't outlive the VirtViewerSession
	they are associated with.

	Backtrace for the crash:

	 #0  0x0000000000413f0f in display_show_hint (display=0x85ab50 [VirtViewerDisplaySpice], pspec=0x939bd0 [GParamFlags], user_data=0x0) at virt-viewer-app.c:949
	 #4  0x00000031ff22a29f in <emit signal notify:show-hint on instance 0x85ab50 [VirtViewerDisplaySpice]> (instance=instance@entry=0x85ab50, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
	     #1  0x00000031ff20fc45 in g_closure_invoke (closure=0xa98f50, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffc700, invocation_hint=invocation_hint@entry=0x7fffffffc680) at gclosure.c:768
	     #2  0x00000031ff2214c9 in signal_emit_unlocked_R (node=node@entry=0x674f80, detail=detail@entry=1678, instance=instance@entry=0x85ab50, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc700) at gsignal.c:3549
	     #3  0x00000031ff229ed0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc8d0) at gsignal.c:3305
	 #5  0x00000031ff214175 in g_object_dispatch_properties_changed (object=0x85ab50 [VirtViewerDisplaySpice], n_pspecs=<optimized out>, pspecs=<optimized out>) at gobject.c:1056
	 #6  0x00000031ff216661 in g_object_notify (pspec=0x939bd0 [GParamFlags], object=0x85ab50 [VirtViewerDisplaySpice]) at gobject.c:1149
	 #7  0x00000031ff216661 in g_object_notify (object=0x85ab50 [VirtViewerDisplaySpice], property_name=<optimized out>) at gobject.c:1197
	 #8  0x000000000041e5ab in virt_viewer_display_set_show_hint (self=0x85ab50 [VirtViewerDisplaySpice], mask=1, enable=0) at virt-viewer-display.c:691
	 #9  0x000000000042b62d in update_display_ready (self=0x85ab50 [VirtViewerDisplaySpice])
	     at virt-viewer-display-spice.c:145
	 #13 0x00000031ff22a29f in <emit signal notify:ready on instance 0x898590 [SpiceDisplay]> (instance=instance@entry=0x898590, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
	     #10 0x00000031ff20fc45 in g_closure_invoke (closure=0x99b280, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffcc50, invocation_hint=invocation_hint@entry=0x7fffffffcbd0) at gclosure.c:768
	     #11 0x00000031ff2214c9 in signal_emit_unlocked_R (node=node@entry=0x674f80, detail=detail@entry=1696, instance=instance@entry=0x898590, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcc50) at gsignal.c:3549
	     #12 0x00000031ff229ed0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffce20) at gsignal.c:3305
	 #14 0x00000031ff214175 in g_object_dispatch_properties_changed (object=0x898590 [SpiceDisplay], n_pspecs=<optimized out>, pspecs=<optimized out>) at gobject.c:1056
	 #15 0x00000031ff216661 in g_object_notify (pspec=0xa83370 [GParamBoolean], object=0x898590 [SpiceDisplay]) at gobject.c:1149
	 #16 0x00000031ff216661 in g_object_notify (object=0x898590 [SpiceDisplay], property_name=<optimized out>) at gobject.c:1197
	 #17 0x00007ffff7522525 in update_ready (display=0x898590 [SpiceDisplay]) at spice-widget.c:236
	 #18 0x00007ffff752257e in set_monitor_ready (self=0x898590 [SpiceDisplay], ready=0)
	     at spice-widget.c:244
	 #19 0x00007ffff75274e6 in primary_destroy (channel=0x89f5c0 [SpiceDisplayChannel], data=0x898590)
	     at spice-widget.c:2169
	 #20 0x00007ffff7528918 in channel_destroy (s=0x909fa0 [SpiceSession], channel=0x89f5c0 [SpiceDisplayChannel], data=0x898590) at spice-widget.c:2484
	 #24 0x00000031ff22a29f in <emit signal ??? on instance 0x909fa0 [SpiceSession]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361
	     #21 0x00000031ff20fc45 in g_closure_invoke (closure=0xa9bda0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffd280, invocation_hint=invocation_hint@entry=0x7fffffffd200) at gclosure.c:768
	     #22 0x00000031ff2214c9 in signal_emit_unlocked_R (node=node@entry=0x9c17d0, detail=detail@entry=0, instance=instance@entry=0x909fa0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd280) at gsignal.c:3549
	     #23 0x00000031ff229ed0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd450) at gsignal.c:3305
	 #25 0x00007ffff71c3248 in spice_session_channel_destroy (session=0x909fa0 [SpiceSession], channel=0x89f5c0 [SpiceDisplayChannel]) at spice-session.c:2217
	 #26 0x00007ffff71bd8b2 in session_disconnect (self=0x909fa0 [SpiceSession], keep_main=0)
	     at spice-session.c:281
	 #27 0x00007ffff71c1b27 in session_disconnect_idle (self=0x909fa0 [SpiceSession]) at spice-session.c:1853
	 #28 0x00000031fee4a0ba in g_main_context_dispatch (context=0x6a4400) at gmain.c:3122
	 #29 0x00000031fee4a0ba in g_main_context_dispatch (context=context@entry=0x6a4400) at gmain.c:3737
	 #30 0x00000031fee4a450 in g_main_context_iterate (context=0x6a4400, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808
	 #31 0x00000031fee4a772 in g_main_loop_run (loop=0x9890f0) at gmain.c:4002
	 #32 0x0000003babc05f75 in gtk_main () at gtkmain.c:1219
	 #33 0x000000000043143b in main (argc=1, argv=0x7fffffffda48) at virt-viewer-main.c:12

2015-03-27  Fabiano Fidêncio  <fidencio@redhat.com>

	virt-viewer: Make update_display() more readable

	virt-viewer: Do not wait for a guest that will never show up
	All the situations where virt_viewer_update_display() can fail are
	those when we won't be able to connect regardless of what changes on the
	remote host. So, propagate the error instead of waiting for the guest to
	start.

	Related: rhbz#1085216

	remote-viewer: Avoid simple_message_dialog() when errors can be propagated
	Remove the dialog used to report errors when create_session() fails,
	propagating the error is enough and it is already done.

	Related: rhbz#1085216

	virt-viewer: Avoid simple_message_dialog() when errors can be propagated
	Remove all the dialogs used to report errors on extract_connect_info()
	and just propagate the errors we got from it.
	The only exception is virt_viewer_domain_event(), that is a callback
	that doesn't have GError as argument. In this specific case, we show the
	error dialog instead of propagating it.

	Related: rhbz#1085216

	virt-viewer-app: create_session() should return a boolean
	By convention functions that take GError parameters should return FALSE
	(or NULL) or error.

	Related: rhbz#1085216

	virt-viewer-app: Add a GError arg to create_session()
	This is part of a small re-factoring that will have all connection
	errors, when we won't be able to connect regardless of what changes on
	the remote host, being treated by virt_viewer_app_initial_connect(),
	avoiding weird behaviors as we have nowadays (like more than one error
	dialog being shown or having the virt-viewer waiting forever for a guest
	that will never show up).

	Related: rhbz#1085216

	virt-viewer: Add a GError arg to update_display()
	This is part of a small re-factoring that will have all connection
	errors, when we won't be able to connect regardless of what changes on
	the remote host, being treated by virt_viewer_app_initial_connect(),
	avoiding weird behaviors as we have nowadays (like more than one error
	dialog being shown or having the virt-viewer waiting forever for a guest
	that will never show up).

	Related: rhbz#1085216

	virt-viewer: Add a GError arg to extract_connect_info()
	This is part of a small re-factoring that will have all connection
	errors, when we won't be able to connect regardless of what changes on
	the remote host, being treated by virt_viewer_app_initial_connect(),
	avoiding weird behaviors as we have nowadays (like more than one error
	dialog being shown or having the virt-viewer waiting forever for a guest
	that will never show up).

	Related: rhbz#1085216

2015-03-26  Fabiano Fidêncio  <fidencio@redhat.com>

	Do not use comments that are not in English

2015-03-24  Pavel Grunt  <pgrunt@redhat.com>

	virt-viewer: Clean up if no vm was chosen
	It is safe to clean up when running virt-viewer without specifying
	vm name if no vm was chosen. It brings back behavior before 88f6341.

	The 'if (dom == NULL && err != NULL)' part was affected by commits
	824c4b9, 1eaaf8c, 15c7d17 so the check for 'err' is not needed anymore.

2015-03-23  Pavel Grunt  <pgrunt@redhat.com>

	Report errors in one place
	Since the error is propagated to the main, report the error there.
	To make it work GError VIRT_VIEWER_ERROR_FAILED is set for all
	failing states and it is reported using virt_viewer_app_simple_message_dialog().

	Clear GError in cleanup section

	Exit normally when canceling dialog
	This applies for:
	 libvirt authentication dialog (e.g. virt-viewer --attach guest)
	 'recent connection' dialog (e.g. remote-viewer)
	 'vm choose' dialog when connecting without specifying the vm name

	This is done by using a new GError VIRT_VIEWER_ERROR_CANCELLED.

	virt-viewer: Bring back debug log about nonexistent guest
	Although commit 88f6341 allowed to use virt-viewer with a wrong guest name,
	the user is informed about the nonexistent guest only by a dialog showing
	the list of running machines or informing about the connection error.

	Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1201177

2015-03-23  Jonathon Jongsma  <jjongsma@redhat.com>

	Monitor config at sometimes leaves additional monitors enabled
	When using the configuration file to specify which remote monitors should be
	enabled when using the --full-screen option, it sometimes left additional
	displays enabled, or didn't place the displays on the right monitor, or didn't
	fullscreen them.

	This was especially true when not enabling the first display on the remote
	host. For example:

	  monitor-mapping=2:2;3:3

	(note that configuration file uses 1-based indexes, rather than 0-based
	indexes, so the numbers used below will be 1 less than those above)

	Previously, when performing fullscreen auto-conf, we were configuring displays
	starting at #0 and ending at ndisplays. So for the previous configuration, we
	looped from i = 0 to i < 2 (i.e. display #0 and #1) even though we should have
	configured display #1 and #2. After this fix, we configure the exact displays
	that were specified in the monitor-mapping configuration.

	Resolves: rhbz#1200750

	Use 'constructed' vfunc instead of 'constructor'
	We don't need the added complexity of 'constructor', since we only want
	to do some final initializing after all of the properties have been set,
	etc. So just use the simpler 'constructed'.

	VirtViewerApp: create main window after constructor
	When using the configuration file to specify which remote monitors
	should be enabled when using the --full-screen option, it sometimes left
	additional displays enabled, or didn't place the displays on the right
	monitor, or didn't fullscreen them.

	Part of the problem was that we were creating the first display window before
	loading the monitor mapping configuration from the settings file. So even if
	the first display was disabled in the configuration, the first window will
	still be created with an id of 0, and therefore didn't get set to fullscreen.
	Moving the main window creation to the 'constructor' vfunc instead of the
	object init func ensures that the configuration is all loaded before we attempt
	to do any fullscreen autoconf.

	Related: rhbz#1200750

2015-03-16  Fabiano Fidêncio  <fidencio@redhat.com>

	Update geometry when enabling/disabling displays
	_update_displays_geometry() must be called every time a display is
	enabled/disabled, avoiding gaps (when a display is disabled) or overlaps
	(when a display is enabled) between the monitors.

	This is what happens when we have 3 displays enabled (each one
	represented by: width x height + x position + y position) ...

	  Display #0       Display #1         Display #2
	 +---------+      +----------+       +---------+
	 |         |      |          |       |         |
	 |         |      |          |       |         |
	 |         |      |          |       |         |
	 |         |      |          |       |         |
	 |         |      |          |       |         |
	 |         |      |          |       |         |
	 +---------+      +----------+       +---------+
	(680x804+0+0)   (504x804+680+0)    (408x804+1184+0)

	Whether the Display #1 is disable, a message will be sent down to the
	vdagent, representing the new arrangement of the monitors:

	  Display #0     Display #2
	 +---------+     +---------+
	 |         |     |         |
	 |         |     |         |
	 |         |     |         |
	 |         |     |         |
	 |         |     |         |
	 |         |     |         |
	 +---------+     +---------+
	(680x804+0+0)  (408x804+1184+0)

	However, taking a look on the x position, a gap can be identified as
	Display #0 starts at position (0,0) and has 680 pixels of width. But
	Display #1 only starts at position (1184, 0), leaving 504 pixels as a
	gap. The proper message, however, should represent the following
	arrangement ...

	  Display #0       Display #2
	 +---------+      +---------+
	 |         |      |         |
	 |         |      |         |
	 |         |      |         |
	 |         |      |         |
	 |         |      |         |
	 |         |      |         |
	 +---------+      +---------+
	(680x804+0+0)   (408x804+680+0)

	... avoiding then gaps and overlaps.

	Resolves: rhbz#1111425
	https://bugzilla.redhat.com/show_bug.cgi?id=1111425

2015-03-13  Christophe Fergeau  <cfergeau@redhat.com>

	Deal with NULL gport in virt_viewer_app_set_connect_info()
	virt_viewer_app_set_connect_info() has a debug statement printing
	gport/gtlsport. It checks that gtlsport is not NULL before printing it,
	but makes no similar check for gport. Since it's possible to get a NULL
	gport when using ovirt:// after the previous commit, it's better to check
	it too.

	ovirt: Don't try to use invalid port numbers
	If a remote oVirt VM don't specify a port/secure port number, we'd still
	try to pass it down to spice-gtk, which would then complain that 0 (the
	default value) isn't a valid port number.
	This commit make sure we filter out the default port/secure-port value
	and pass NULL to spice-gtk instead when we get these values.

	foreign-menu: Don't show empty foreign menu on secondary displays
	When using ovirt://, the foreign menu will only be shown in the primary
	window after getting notified about OvirtForeignMenu::files (ie when
	it managed to fetch some ISO files to show in the foreign menu).

	However, for secondary windows, the foreign menu will be added to the
	window even if there are no files to show. This commit makes sure we
	destroy the window foreign menu whenever it would be empty.

2015-03-12  Fabiano Fidêncio  <fidencio@redhat.com>

	POTFILES: Add virt-viewer-preferences.xml
	The file was introduced in commit
	73b80ba99fb80140cadd07bbbf09a412bb9a0098

	spec: Add virt-viewer-preferences.xml
	The file was introduced in commit
	73b80ba99fb80140cadd07bbbf09a412bb9a0098

2015-03-12  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Fail gracefully when hostname is missing
	When parsing info returned by oVirt REST API, the hostname should be
	present. However, I recently run remote-viewer against a buggy oVirt
	instance where the hostname was missing. This commit handles better this
	situation by displaying an error message and exiting.

	ovirt: Take into account SPICE proxy
	VMs managed by oVirt can be hidden behind a proxy. This commit allows
	remote-viewer to make use of this information when it's available
	A recent oVirt instance is needed so that it's available through the
	REST API, as well as libgovirt 0.3.3 or newer.
	With older oVirt/libgovirt versions, the worst that can happen is a
	runtime warning in the console, and an impossibility to connect to VMs
	behind a proxy, so this commit is not raising the minimum libgovirt
	requirement.

2015-03-12  Fabiano Fidêncio  <fidencio@redhat.com>

	Take --direct into consideration when checking if a guest is reachable
	When connecting to a remote host (using qemu+ssh://...) that has a
	virtual machine listening to "127.0.0.1", virt_viewer_is_reachable() must
	take --direct into account, otherwise it can end up connecting to a local
	virtual machine listening to "0.0.0.0" instead of returning that the
	guest is not reachable.

	Resolves: rhbz#1085216

2015-03-11  Fabiano Fidêncio  <fidencio@redhat.com>

	Add G_SOURCE_REMOVE to vir-glib-compat
	G_SOURCE_REMOVE was introduced in GLib 2.32 and has its value defined as
	FALSE.

	Avoid 'Dereference of a null pointer'
	Caught by Covscan.

2015-03-05  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Enable share folder widgets if supported by session

	Add virt_viewer_session_can_share_folder()
	Functions name says it all, it is only implement for Spice, checking
	for webdav channel presence.

	Sync preferences widgets with session properties

	Show preferences dialog
	Add a menu item Preferences under File and show the preferences dialog

	Add preferences dialog UI file

	spice: enable/disable share folder
	Connect/disconnect webdav channel to enable or disable sharing folder

2015-03-04  Marc-André Lureau  <marcandre.lureau@gmail.com>

	spice: sync share folder preferences with session

	Bump spice-gtk to 0.28
	The following patches will only work with spice-gtk >= 0.28.

	Add a few session properties for share folder
	See properties comments for details.

	misc: add a missing "static" for function

2015-02-23  Daniel P. Berrange  <berrange@redhat.com>

	Switch over to use zanata for managing translations
	Push new pot with

	  cd po
	  make virt-viewer.pot
	  zanata push

	Pull new translations with

	  cd po
	  zanata pull

2015-02-18  Pavel Grunt  <pgrunt@redhat.com>

	Do not add "https://" and "/api" to oVirt URI
	It is deprecated since govirt 0.3.1 (and virt-viewer already depends on
	govirt 0.3.2).

	Silences:
	(remote-viewer:19420): libgovirt-WARNING **: Passing a full http:// or https:// URI to ovirt_proxy_new() is deprecated
	(remote-viewer:19420): libgovirt-WARNING **: Passing an URI ending in /api to ovirt_proxy_new() is deprecated

2015-01-12  Daniel P. Berrange  <berrange@redhat.com>

	Bump release to 3.0 for next dev cycle

	Update NEWS for 2.0 release

2015-01-12  Marc-André Lureau  <marcandre.lureau@gmail.com>

	wixl: use a versionized installation directory
	It turned out that not only the current MSI broke the "component rule",
	but also that our files are not versionized correctly. Windows Installer
	applies some file versioning rules before replacing a file
	http://msdn.microsoft.com/en-us/library/aa368599%28v=vs.85%29.aspx

	Since msitools doesn't extract version from files and populate the Version
	field of the File table, it "usually" keep the current file installed.

	It's practically impossible to rely on version information from
	files (from a quick look, only 5% of the files are versionized and even
	less correctly, libgcrypt seems to do non-monotonic buildid for example)

	So the rule that applies when files are not versionized is to check the
	file hash, and the modified date. File hash was added recently in
	msitools, but doesn't apply when the installed file itself has a
	version.

	In order to solve the above problems, it's simpler to just have a
	different installation prefix. Windows Installer will see files with
	different component guid, and won't be checking any file update rule.  I
	have verified the upgrade is working, not leaving any file behind and
	updating registry correctly with this solution. Until the files are
	correctly versionized, it looks like the only sensible thing to
	do. Furthermore, this make it simpler to have several versions installed
	in parallel later on (when we change productid)

2015-01-12  Daniel P. Berrange  <berrange@redhat.com>

	Update LINGUAS file from translation refresh

	Tweak autobuild.sh to facilitate release builds

	Refresh translations from transifex

2015-01-09  Daniel P. Berrange  <berrange@redhat.com>

	Add deps on mingw glib-networking RPMs needed by libsoup

	Update mingw RPM deps to refer to gstreamer1

2015-01-08  Daniel P. Berrange  <berrange@redhat.com>

	Fix typo s/SPICE_GTK3_REQUIRED/SPICE_GTK_REQUIRED/
	There is no separate version constant for SPICE GTK2 vs GTK3

2015-01-08  Fabiano Fidêncio  <fidencio@redhat.com>

	virt-viewer: set transient parent for connection's error dialog
	Commit c3d24f8b sets transient parent for the most part of the
	GtkDialogs, but seems like this one was forgotten.

2015-01-06  Christophe Fergeau  <cfergeau@redhat.com>

	virt-viewer: Don't connect to localhost displays with qemu+tcp://
	When connecting to a remote libvirt instance, a VM may only be listening
	on localhost for SPICE/VNC connections. In such a situation, virt-viewer
	then tries to connect to localhost, which is not correct as this
	'localhost' referred to the remote libvirt host it connected to.
	This commit adds a couple of tests on the libvirt URI used and the
	<graphics> listen address to error out in this situation.

	Resolves: rhbz#1108523

2015-01-06  Jonathon Jongsma  <jjongsma@redhat.com>

	Remove 'map' handler for VirtViewerDisplay
	In order to solve several problems with sizing and resizing displays, a
	'map' handler was added to VirtViewerDisplay. The first time the map
	handler runs, its queues a resize to attempt to ensure that the window
	gets created at its desired size. Subsequent map events generate a call
	to _make_resizable(), which was an attempt to ensure that the window was
	always 'shrinkable' on the Microsoft Windows platform. Recent testing
	suggests that this _make_resizable() is not actually necessary on
	Windows anymore, since it is possible to shrink the display even when
	this call is removed.

	In addition, the call to _queue_resize() is a bit of an indirect
	solution to the problem of ensuring the proper size at startup. What we
	really want is to guarantee that the very first size request negotiation
	returns the desired size rather than the minimum size. In order to do
	this, we've added a flag to determine whether we've ever received a size
	request, and if not, we return our desired size, even if 'dirty' is not
	set.

2015-01-05  Fabiano Fidêncio  <fidencio@redhat.com>

	spec: Update mingw in order to use gstreamer1

2015-01-05  Victor Toso  <victortoso@redhat.com>

	nsis: use gstreamer-1.0 instead of gstreamer-0.10
	Spice-gtk now is able to use gstreamer-1.0 for playback and record
	audio. This patch updates the installer to use the latest version.

2015-01-02  Christophe Fergeau  <cfergeau@redhat.com>

	win: Use correct format string for intptr_t
	Using %d as a format-specifier for intptr_t causes a warning with
	mingw64:
	virt-viewer-events.c: In function 'virt_viewer_events_add_handle':
	virt-viewer-events.c:103:5: warning: format '%d' expects argument of
	type 'int', but argument 5 has type 'intptr_t' [-Wformat=]
	     g_debug("Converted fd %d to handle %d", fd, _get_osfhandle(fd));

2014-12-22  Fabiano Fidêncio  <fidencio@redhat.com>

	spec: Update mingw in order to use ovirt

	spec: Update mingw in order to use gtk3

	nsis: use gtk-vnc conditionally
	Only include gtk-vnc as dep when it's explicitly done in the configure.

	nsis: use spice-gtk conditionally
	Only include spice-gtk as dep when it's explicitly done in the configure.

	nsis: use libgovirt conditionally
	Only include libgovirt as dep when it's explicitly done in the configure.

	nsis: add missing file needed to use virsh.exe

	nsis: use libvirt conditionally
	Only include libvirt as dep when it's explicitly done in the configure.

2014-12-21  Fabiano Fidêncio  <fidencio@redhat.com>

	msi: use gtk-vnc conditionally
	Only include gtk-vnc as dep when it's explicitly done in the configure.

	msi: use spice-gtk conditionally
	Only include spice-gtk as dep when it's explicitly done in the configure.

	msi: use libgovirt conditionally
	Only include libgovirt as dep when it's explicitly done in the configure.

	msi: use libvirt conditionally
	Only include libvirt as dep when it's explicitly done in the configure.

	cosmetic: use $(VAR) instead of ${VAR}

2014-12-19  Pavel Grunt  <pgrunt@redhat.com>

	Set a transient parent for GtkDialogs
	Silence the Gtk 3.14 message:
	"GtkDialog mapped without a transient parent. This is discouraged."

2014-12-15  Marc-André Lureau  <marcandre.lureau@gmail.com>

	msi/nsis: fix keyboard-shortcuts icon location
	The /usr/share/icons/gnome icon theme location has been replaced with
	Adwaita in f21, fix the path.

2014-12-15  Fabiano Fidêncio  <fidencio@redhat.com>

	msi: add gtk3 support
	Add support to build the virt-viewer's msi using GTK3.
	For the GTK3 build, in order to provide all used icons for Windows
	systems we have to include manually all the icons we want to or add
	adwaita-icon-theme as dependency. I've decided to go with the first
	approach, what can be improved when we have "foreach" support in
	msitools (https://bugzilla.gnome.org/show_bug.cgi?id=741296).

	msi: add libgovirt as dependency
	libgovirt is used to provide support to foreign menu using ovirt.

	nsis: add missing 24x24 icons

	nsis: add gtk3 support
	Add support to build the virt-viewer's nsis using GTK3.

	nsis: remove $INSTDIR\etc

	nsis: remove $INSTDIR\etc\libvirt

	nsis: remove dup entries

	nsis: add libgovirt (and its dependencies)
	libgovirt is used to provide support to foreign menu using ovirt.

	nsis: add libwinpthread-1.dll
	libwinpthread-1.dll is a dependency of libvirt

	nsis: add libopus-0.dll
	libopus-0.dll is a dependency of spice-glib

	nsis: add libnettle-4-7.dll (and its dependencies)
	libgcc_s_sjlj-1 is needed by libgmp (on x86)
	libgcc_s_seh-1 is needed by libgmp (on x86_64s)
	libgmp-10.dll is needed by libnettle
	libhogweed-2-5.dll is provided by libnettle
	libnettle-4-7.dll is needed by gnutls
	gnutls is needed by gvnc and libvirt

	An interesting point here that worth to mention is the usage of /nonfatal
	when including libgcc_s_{sjlj,seh}-1.dll. As we only have the _seh in x64
	the build breaks trying to add "not found" files. A check for arch was
	one option to solve the problem, but _sjlj may exist in x64 as well, when
	using an old gcc. An explicit check if the file exists (in compile time)
	was another idea, but for some reason the "-" part of the filename was
	interpreted as a math operand, breaking the build.
	With all that in mind, adding /nonfatal was the most convenient solution.

	nsis: update libgnutls version
	Use version -28 instead of -26, matching what currently is in f21.

	nsis: update libtasn1 version
	Use version -6 instead of -3, matching what currently is in f21.

	nsis: update libpng version
	Use libpng15-15 instead of libpng16-16, matching what currently is in
	f21.

	nsis: update libgcrypt version
	Use version -20 instead of -11, matching what currently is in f21.

2014-12-10  Pavel Grunt  <pgrunt@redhat.com>

	display-vnc: fix zoom-level set by command line
	Setting the zoom-level using the command line option '--zoom' is not
	working for vnc guests. This problem can be solved by emitting
	the "display-desktop-resize" signal when vnc is initialized.

	https://bugzilla.redhat.com/show_bug.cgi?id=1170071

2014-12-01  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Do not show twice error dialog when no VM are found
	When running virt-viewer without argument, and no VM are found, you get
	two error dialogs. Only one is enough.

	spice: calling VirtViewerSession:close() can destroy self
	SpiceSession in spice-gtk v0.27 will remove channels from session during
	disconnect (and not when they are actually disposed). When no channels
	are left, session-disconnected is emitted, and the VirtViewerSession
	will be unref from the application. Use a weak reference to self to
	avoid crashing after calling spice_session_disconnect()

	As a workaround for existing clients, spice-gtk v0.27 will defer the
	disconnection to idle time.  But the fix still makes sense and would
	prevent potentially future issues if spice-gtk changes back to sync
	disconnection.

	(the alternative of calling ref/unref would needlessly recreate a
	SpiceSession with a call to create_spice_session(), which is something
	we can avoid when leaving the application)

2014-11-25  Marc-André Lureau  <marcandre.lureau@gmail.com>

	virt-viewer: allow connection to unix socket only server
	Even when the server doesn't provide a display connection address,
	virt-viewer is able to connect to guest with libvirt attach.

	Report error on attach-only display
	Provide error details if the display can only be access through libvirt
	--attach method.

	Report error in dialog
	Use a UI dialog to inform of connection error.

	Simplify virt_viewer_initial_connect()
	- do not overwrite err if ->initial_connect() sets it
	- remove need for waitvm if the display server isn't yet started (note:
	  this function might be untested, I am not sure relying on libvirt events
	  is enough)

	Simplify virt_viewer_initial_connect()
	- remove need for waitvm if the display server isn't yet started (note:
	  this function might be untested, I am not sure relying on libvirt events
	  is enough)

	Simplify virt_viewer_initial_connect()
	Some refactoring to make the code easier to read, mostly code
	movement/reindenting and introduction of a "wait" label which has the
	same purpose as "done".
	This also adds a "goto wait" within an if block, but this does not
	change the initial code flow, just makes it more explicit.

	Remove VIRT_VIEWER_VM_CHOOSE_DIALOG_CANCELLED
	This error type isn't really an error, it is used to skip error report
	code. The functions can simply return FALSE on failure, without GError
	set, to indicate that program should quit normally.

	Limit HAVE_SOCKETPAIR to directly concerned code

	Move libvirt reconnect polling to VirtViewer
	This is libvirt specific, no need to share it in the VirtViewerApp base
	class.

	spice: use virt_viewer_signal_connect_object
	This isn't required, but makes it easier to track reference issues, as
	you have guarantee that callbacks won't be executed if the objects are
	disposed.

2014-11-24  Fabiano Fidêncio  <fidencio@redhat.com>

	Add virt-viewer-usb.png
	Windows XP (at least) doesn't recognize .svg files

2014-11-20  Fabiano Fidêncio  <fidencio@redhat.com>

	Replace priv->withEvents usage for priv->domain_event
	Once we have priv->domain_event, we don't need priv->withEvents anymore

	Prefer to use virConnectDomainEventRegisterAny()
	The usage of virConnectDomainEventRegister() is no longer recommended
	according to the libvirt's documentation.

	Set freed priv->dom to NULL in _dispose()
	Avoid a possible use/free after the object has been freed.

	Make sure conn exists before use it
	Although all the used functions have a explicit check for a valid
	virConnPtr, let's be safe and only use priv->conn when its value is
	non-NULL.

2014-11-18  Christophe Fergeau  <cfergeau@redhat.com>

	VirtViewerApp: Never remove main window
	It's currently possible to destroy any virt-viewer window, including the
	main window. However, some part of the code expects that the main window
	is always present, for example to present status messages.

	In particular, stopping the guest (or running virsh destroy) will close
	all windows: virt_viewer_session_clear_displays will get called, which
	will call into virt_viewer_app_remove_display_removed, and finally into
	virt_viewer_app_remove_nth_window, which will destroy the window being
	removed if it holds the last reference to it.

	So going through virt_viewer_session_clear_displays, all
	VirtViewerWindow instances and their corresponding GtkWindow have been
	destroyed. This is already an issue as VirtViewerApp::main_window will
	be pointing to freed memory.

	When using virt-viewer --reconnect, this will cause a crash when
	restarting the guest in virt_viewer_app_create_session as it tries to
	get a valid GtkWindow through:
	GtkWindow *window = virt_viewer_window_get_window(priv->main_window);

	This commit avoids this issue by special casing the main window in
	virt_viewer_app_remove_nth_window to ensure it never gets removed.
	This is similar to what is done in virt_viewer_app_hide_all_windows.

2014-11-14  Christophe Fergeau  <cfergeau@redhat.com>

	Fix check of virt_viewer_app_initial_connect return value
	Commit 13f493200 changed virt_viewer_app_initial_connect to return a
	gboolean rather than an int, but one call site was not updated to the
	new convention, and was still checking for a negative value rather than
	for FALSE in order to detect failures.

2014-11-03  Daniel P. Berrange  <berrange@redhat.com>

	Check for spice-gtk 0.26 instead of a git snapshot of 0.25
	As spice-gtk macro for checking the version numbers was broken, let's
	check for 0.26 and avoid to have virt-viewer broken on a few distros
	for a good long time.

2014-10-31  Christophe Fergeau  <cfergeau@redhat.com>

	Don't use virGetLastErrorMessage()
	This was introduced in libvirt 1.0.6 but we only require libvirt 0.10.0

	Don't call local variable 'select'
	This causes warnings with older compilers
	virt-viewer-vm-connection.c:52: warning: declaration of 'select' shadows
	a global declaration
	/usr/include/sys/select.h:109: warning: shadowed declaration is here

2014-10-27  Daniel P. Berrange  <berrange@redhat.com>

	Avoid log message warning messages due to incorrect int format
	The G_N_ELEMENTS() type is size_t but this was being passed to
	a format string with '%lu' which is of a different size on many
	platforms. Just delete this part of the warning message since
	it was not hugely useful.

	Add new ui files to the RPMs

	Avoid use of non-literal string with g_debug

	Fix typo s/to to/to/

	Remove useless  'if (...)' before free()
	The 'free()' function accepts NULL, so you should not
	check for NULL before calling it.

2014-10-27  Jonathon Jongsma  <jjongsma@redhat.com>

	Don't try to re-configure displays when there are none
	virt_viewer_session_on_monitor_geometry_changed() gets called
	immediately upon agent connection, but sometimes this is before any
	displays have been received. Simply return early when this is the case.

	Shift top-left display to origin
	When using a custom fullscreen display configuration, it's possible to
	specify that e.g. a single screen should be fullscreen on client
	monitor #4. Since we send down absolute positions and disable alignment
	when all windows are in fullscreen, we can send configurations with a
	very large offset to the top-left corner. This could result in the guest
	trying to create a screen that was much larger than necessary. For
	example when sending a configuration of 1280x1024+4240+0, the guest
	would need to allocate a screen of size 5520x1024, which might fail if
	video memory was too low. To avoid this issue, we shift all displays
	so that the minimum X coordinate for all screens is at x=0, and the
	minimum y coordinate is at y=0.

2014-10-24  Jonathon Jongsma  <jjongsma@redhat.com>

	Move monitor alignment function to util header

2014-10-23  Christophe Fergeau  <cfergeau@redhat.com>

	man: Improve documentation for 'version' field in vv files

2014-10-23  Rex Dieter  <rdieter@math.unl.edu>

	spec: Update/optimize mime scriptlets

2014-10-16  Fabiano Fidêncio  <fidencio@redhat.com>

	Check for the right spice version in session-spice.c
	We have to check for the spice version where the
	SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD_AND_USERNAME was introduced and
	not for the one where spice_channel_get_error() was introduced.

2014-10-16  Jonathon Jongsma  <jjongsma@redhat.com>

	Don't disable "send key" menu when display isn't ready
	The ability to send a keystroke should not depend on whether a display
	is ready or not, it only depends on whether the display exists or not.

	See https://bugzilla.redhat.com/show_bug.cgi?id=1152574

2014-10-15  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix bug with initial placement of fullscreen windows
	The function app_window_try_fullscreen() will lookup the initial monitor
	for the nth monitor internally, so we should pass in the display ID to the function
	rather than the mapped monitor ID. This was causing 2 monitors on the
	same monitor with a configuration like this:

	    monitor-mapping=1:2;2:1

2014-10-15  Fabiano Fidêncio  <fidencio@redhat.com>

	Force display_show_hint() when the display is set
	Since a window is not created at startup for each display, the first
	display(s) set when the application is opened will never receive and
	treat the "notify::show-hint" signal on VirtViewerWindow, once the
	callback is only set when the display is set to the specific window.
	It causes problems like the "Send Key" menu not activated till an extra
	display is added. To avoid this problem, let's force a call to
	display_show_hint() everytime a display is set.

	Resolves: rhbz#1152468
	https://bugzilla.redhat.com/show_bug.cgi?id=1152468

2014-10-10  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Use socat instead of nc if possible
	It turns out that nc does not leave on server disconnect, and there
	doesn't seem to be any option to do that, leaving client open, and
	a bunch of idle processes.

	Replacing nc with socat solves that, client is disconnected when
	the VM is shut down, when the sever connection is closed.

	https://bugzilla.redhat.com/show_bug.cgi?id=1030487

2014-10-10  Fabiano Fidêncio  <fidencio@redhat.com>

	Prefill the username in the authentication dialog
	Lets prefill the username entry using the user name of the
	current user.

	Use 'username' property from .vv file for spice-session

	Ask for username when connecting with SASL
	When connecting with SASL for authentication, some authentication
	mechanisms need a username (the plain text and md5 ones, for example).

2014-10-10  Pavel Grunt  <pgrunt@redhat.com>

	Show VM chooser dialog when starting virt-viewer with no arg
	When user starts virt-viewer without specifying VM domain name
	or with a wrong name a list of running machines is shown
	and user may choose one of them.

	Show VM chooser dialog when oVirt VM name is missing
	When a user tries to connect to ovirt without specifying
	VM name (remote-viewer ovirt://ovirt.example.com) or with
	wrong VM name a list of available virtual machines is shown,
	and the user may pick a machine he wants to connect to.

2014-10-09  Christophe Fergeau  <cfergeau@redhat.com>

	man: Document [ovirt] section in .vv files
	Add documentation for these options even though they are mainly meant to
	be set by the oVirt portal when it generates the .vv file.

	man: Improve doc for 'ca' in .vv files
	Make it clearer that this CA will be used to validate the certificate
	presented by the remote SPICE host when using TLS.

	Fix 'seperate' typo in man page/comments

	ovirt: Allow to remove CD images
	It turns out this is supposed to be done through update requests with a
	CD image with an empty name, which is what the current code tries to do.
	The only reason it's not working is because of server-side bugs with
	oVirt < 3.5
	The requirement on libgovirt is raised to 0.3.2 as
	a small change is needed as well in libgovirt to allow empty filenames:
	https://git.gnome.org/browse/libgovirt/commit/?id=bdb788fcc

	Without this change, nothing too bad will happen, but the CD won't be
	removed and warnings will be logged in the console.

2014-10-01  Ján Tomko  <jtomko@redhat.com>

	Prefer virDomainOpenGraphicsFD for --attach
	The virDomainOpenGraphics API cannot label the socket
	we pass to it. Prefer virDomainOpenGraphicsFD (if building
	with libvirt 1.2.8 or later) which creates the socket for us
	and works with SELinux too.

	Fall back to the old API if the new one is unsupported
	(i.e. the libvirtd on the host is older than the libvirt version
	virt-viewer was compiled against).

	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1141228

2014-09-26  Fabiano Fidêncio  <fidencio@redhat.com>

	Let the user cancel the SPICE auth dialog
	virt_viewer_auth_collect_credentials() was recently changed to return
	a boolean instead of an integer (2561c171). This change introduced a
	regression in the authentication dialog behavior, making it impossible
	for the user to cancel.

	Improve authentication error messages
	Adding a better error message to our default error message, based on the
	libvirt error. Also, the libvirt error is shown as debug.

	https://bugzilla.redhat.com/show_bug.cgi?id=1142742

	Simplify virt_viewer_auth_libvirt_credentials() return value logic
	As the function should return < 0 in error cases, let's explicitly
	return/set the return value to -1 in error cases. Otherwise, the
	function will return 0.

	This patch also fixes a regression introduced by (a5ce2ed3).

	https://bugzilla.redhat.com/show_bug.cgi?id=1142742

2014-09-26  Jonathon Jongsma  <jjongsma@redhat.com>

	Add example of an oVirt URI to the manpage
	https://bugzilla.redhat.com/show_bug.cgi?id=1142769

	Add documentation for fullscreen monitor mapping
	see https://bugzilla.redhat.com/show_bug.cgi?id=1142769

	Initialize fullscreen display map to fallback
	If uuid was never set, we never checked the 'fallback' monitor map.
	Initializing the monitor map to the fallback value at startup solves
	this issue. This allows fallback mode to work with older servers that
	don't send the UUID.

	Unset app 'fullscreen' when leaving fullscreen
	Previously, the fullscreen floating toolbar and the "toggle-fullscreen"
	hotkey (which maps to the menu item action) had slightly different
	methods of exiting fullscreen. The floating toolbar method unset the
	'fullscreen' property on the application (which causes all windows to
	simultaneously exit fullscreen), whereas the hotkey did not. This had a
	side-effect of preventing the display from auto re-sizing if it was
	fullscreened again.  After this change, both the hotkey and the toolbar
	button will unset the application-level 'fullscreen' property when
	exiting fullscreen mode.

	Resolves: rhbz#1022608

2014-09-24  Jonathon Jongsma  <jjongsma@redhat.com>

	VirtViewerDisplayVnc: set 'session' property
	Set the display's session property in the constructor. If the session is
	not set, then virt_viewer_display_get_session() doesn't return anything
	useful.

	Make default window size a bit more useful
	Currently, windows have a default size of 400x400 pixels. This is a
	strange aspect ratio for a display, and it is also too small to be
	useful for much. Since the default window size determines the initial
	size of newly-enabled displays, it would be nice if we used a slightly
	better size.

	Set initial window size to display desktop size
	When setting the 'display' for a VirtViewerWindow, the initial size for
	that window should be the size of the remote display. So we synthesize a
	desktop resize event when setting a new display for a window.  This is
	only done for enabled displays. Disabled displays generally have a size
	of 0x0, which would result in the window being at it's minimum size, so
	just allow the window to use its default size.

	Create windows on demand, not at startup
	Previously, a window was created at startup for each display, even if
	the display was not enabled. This resulted in a fixed 1:1 association
	between windows and remote displays. Since there was always one window
	created at startup to display status messages (the "main window"), this
	was always associated with remote display #1. But if the first remote
	display was not enabled, we ended up with a extra black window with a
	message saying ("Waiting for display 1...").

	By creating windows on demand, we can re-use the "main window" for any
	arbitrary display, even if it's not display #1.

	Resolves: rhbz#1032939

	VirtViewerApp: store windows in a list
	Use a list to store the application's windows.  This is another step
	towards separating the window from the guest display ID.

	VirtViewerDisplay: add convenience API for getting nth
	g_object_get(...) can be cumbersome, so add convenience API for getting
	the display ID ("nth-display") property:

	    virt_viewer_display_get_nth()

	App: keep hash table of displays
	This is part of a re-factoring that will de-couple the client window
	from the remote display id.

	Don't show extra screens in fullscreen mode
	When using the fullscreen display mapping configuration file, extra
	monitors could end up enabled by mistake. This was because
	virt_viewer_app_get_initial_monitor_for_display would end up returning
	Nmonitor = Ndisplay when the display map hash lookup failed. In
	reality, when a display map is specified, but the hash lookup fails,
	the display should not be enabled. This function now returns -1 to
	distinguish this case, and the display is not enabled when this value is
	returned.

	Resolves issue described at
	https://bugzilla.redhat.com/show_bug.cgi?id=1129477#c9

	Move monitor mapping into app_window_try_fullscreen()
	Rather than requiring all callers to calculate the initial monitor
	mapping before calling app_window_try_fullscreen, move the
	responsibility for calculating the correct monitor into this function.
	This makes it less likely that somebody will forget and a display will
	get placed on the wrong monitor.

2014-09-23  Christophe Fergeau  <cfergeau@redhat.com>

	Don't unref 'display' in VirtViewerDisplaySpice::finalize
	Right after being created, the SpiceDisplay 'display' private member is
	added to the VirtViewerDisplaySpice GTK+ container with
	gtk_container_add. This call will take ownership of the floating
	reference that SpiceDisplay got upon creation.
	This means VirtViewerDisplaySpice::display is a pointer to SpiceDisplay,
	but it must not be unref'ed when the object is destroyed as we don't own
	that reference.
	As the container which owns the reference is the
	VirtViewerDisplaySpice instance itself, we don't need to take an
	additional reference here.

	This fixes a crash when exiting remote-viewer after connecting to a
	SPICE VM:
	  #0  0x00007ffff3f33a81 in g_type_check_instance_is_fundamentally_a (type_instance=0x874500, fundamental_type=80) at gtype.c:3981
	  #1  0x00007ffff3f19f96 in g_object_unref (_object=0x874500) at gobject.c:3067
	  #2  0x000000000042a1ea in virt_viewer_display_spice_finalize (obj=0x6ebc30) at virt-viewer-display-spice.c:65
	  #3  0x00007ffff3f1a257 in g_object_unref (_object=0x6ebc30) at gobject.c:3170
	  #4  0x0000000000428de7 in destroy_display (data=0x6ebc30) at virt-viewer-session-spice.c:649
	  #5  0x00007ffff3bbb51b in g_ptr_array_foreach (array=0x7e12a0, func=0x428d71 <destroy_display>, user_data=0x0) at garray.c:1502
	  #6  0x00007ffff3bbaadf in ptr_array_free (array=0x7e12a0, flags=FREE_SEGMENT) at garray.c:1088
	  #7  0x00007ffff3bbaa10 in g_ptr_array_unref (array=0x7e12a0) at garray.c:1036
	  #8  0x00007ffff3bcf9bd in g_data_set_internal (datalist=0xa0adb0, key_id=1622, new_data=0x0, new_destroy_func=0x0, dataset=0x0) at gdataset.c:407
	  #9  0x00007ffff3bcfe74 in g_datalist_id_set_data_full (datalist=0xa0adb0, key_id=1622, data=0x0, destroy_func=0x0) at gdataset.c:670
	  #10 0x00007ffff3f1a771 in g_object_set_data (object=0xa0ada0, key=0x437252 "virt-viewer-displays", data=0x0) at gobject.c:3461
	  #11 0x0000000000429b56 in virt_viewer_session_spice_channel_destroy (s=0x6eb910, channel=0xa0ada0, session=0x8cb3a0) at virt-viewer-session-spice.c:854
	  #12 0x00007ffff3f12d81 in g_cclosure_marshal_VOID__OBJECT (closure=0x8e8fd0, return_value=0x0, n_param_values=2, param_values=0x7fffffffcd80, invocation_hint=0x7fffffffccc0, marshal_data=0x0) at gmarshal.c:1272
	  #13 0x00007ffff3f0e143 in g_closure_invoke (closure=0x8e8fd0, return_value=0x0, n_param_values=2, param_values=0x7fffffffcd80, invocation_hint=0x7fffffffccc0) at gclosure.c:768
	  #14 0x00007ffff3f2aef0 in signal_emit_unlocked_R (node=0x7c1f20, detail=0, instance=0x6eb910, emission_return=0x0, instance_and_params=0x7fffffffcd80) at gsignal.c:3553
	  #15 0x00007ffff3f2a1f3 in g_signal_emit_valist (instance=0x6eb910, signal_id=219, detail=0, var_args=0x7fffffffd058) at gsignal.c:3309
	  #16 0x00007ffff3f2a746 in g_signal_emit (instance=0x6eb910, signal_id=219, detail=0) at gsignal.c:3365
	  #17 0x00007ffff529d784 in spice_session_channel_destroy (session=0x6eb910, channel=0xa0ada0) at spice-session.c:1990
	  #18 0x00007ffff529ed25 in spice_channel_dispose (gobject=0xa0ada0) at spice-channel.c:153
	  #19 0x00007ffff52acd26 in spice_display_channel_dispose (object=0xa0ada0) at channel-display.c:136
	  #20 0x00007ffff3f1a132 in g_object_unref (_object=0xa0ada0) at gobject.c:3133
	  #21 0x00007ffff52a4afb in spice_channel_delayed_unref (data=0xa0ada0) at spice-channel.c:2156
	  #22 0x00007ffff3bf21d1 in g_idle_dispatch (source=0xa35a00, callback=0x7ffff52a49f3 <spice_channel_delayed_unref>, user_data=0xa0ada0) at gmain.c:5320
	  #23 0x00007ffff3bef8eb in g_main_dispatch (context=0x68a920) at gmain.c:3064
	  #24 0x00007ffff3bf0661 in g_main_context_dispatch (context=0x68a920) at gmain.c:3663
	  #25 0x00007ffff3bf0853 in g_main_context_iterate (context=0x68a920, block=1, dispatch=1, self=0x6c8c60) at gmain.c:3734
	  #26 0x00007ffff3bf0c7c in g_main_loop_run (loop=0x889b20) at gmain.c:3928
	  #27 0x00007ffff69be44f in gtk_main () at gtkmain.c:1207
	  #28 0x0000000000431896 in main (argc=1, argv=0x7fffffffd648) at remote-viewer-main.c:183

2014-09-23  Fabiano Fidêncio  <fidencio@redhat.com>

	Do not fail when the auth dialog is cancelled
	https://bugzilla.redhat.com/show_bug.cgi?id=1145460

	Revert changes related to numpad accelerators
	Due to a GTK+ limitation and bad testing from my side, I've pushed
	two patches trying to add support to use Ctrl + {+, -, 0} from numpad
	to control zoom-in, zoom-out and zoom-reset.
	Unfortunately, with the first patch (3a168815) I've duplicated the menu
	items related to the zoom functions. With the second one (55cdb986),
	provided to not show the duplicated menu items, we came back to the
	initial state, where the numpad accelerators don't work.

	So, in resume, multiple accelerators in a GTK+ widget are only supported
	on applications using GApplication, what is not our case and won't be
	till we drop the GTK+2 support.

	Revert "Do not show duplicated menu items" and
	Revert "Add support to use numpad accelarators for zoom-{in.out,reset}"

	This reverts commits 55cdb9867df05f1c4f6c8e569a6f0c1e0bc28d99 and
	3a168815b738076526ba0f3e9a82e6fb1db482e9.

2014-09-22  Christophe Fergeau  <cfergeau@redhat.com>

	Remove inaccurate G_GNUC_UNUSED
	The 'user_data' variable is used in the callback.

2014-09-17  Fabiano Fidêncio  <fidencio@redhat.com>

	Add support to view the password entry content
	Allow users to check if the entered password is right and/org modify
	the password easily in case it's wrong.

2014-09-15  Fabiano Fidêncio  <fidencio@redhat.com>

	Mark all strings for translation in the auth dialog
	A few strings weren't marked for translation in the authentication
	dialog.

	Do not show duplicated menu items
	When the support to use numpad accelerators for zoom-{in,out,reset}
	was added (3a168815), by mistake, we have added duplicated buttons
	in View -> Zoom.

2014-09-12  Christophe Fergeau  <cfergeau@redhat.com>

	Fix --without-spice-gtk --with-ovirt build
	The oVirt foreign menu support reused some existing bits from the older
	SPICE controller foreign menu code. However, this controller code is
	only built when spice-gtk support is built, while the oVirt foreign menu
	code could be used with VNC as well. Trying to build the ovirt foreign
	menu code without spice-gtk causes build issues due to missing
	functions, or missing declarations, ...

	The libgovirt/spice-gtk code which is entangled is the code to update
	the foreign menu when its content changes, or when a new window is
	opened. Making the oVirt-specific code independant from the
	spice-gtk-specific code is not too complicated, but this comes at the
	expense of a bit of code duplication, but this is only simple code
	iterating over the GHashTable storing the opened windows.

	Resolves: rhbz#1127156

	Add translatable file to POTFILES.in

2014-09-11  Jonathon Jongsma  <jjongsma@redhat.com>

	Remove extra ref on SpiceDisplay
	There's no need to ref the SpiceDisplay widget when adding it to a
	container. The container will take its own ref.

	VirtViewer: Fix memory leaks
	Don't leak priv->uri or priv->domkey from VirtViewer class

2014-09-05  Jonathon Jongsma  <jjongsma@redhat.com>

	Don't print warning for missing comment in config file
	Change g_warning to g_debug as suggested by Marc-Andre

2014-08-26  Jonathon Jongsma  <jjongsma@redhat.com>

	Change collect_credentials() to return a boolean
	Instead of returning 0 for success and -1 for failure, change to a
	boolean success value to be more consistent with the rest of the
	virt-viewer code.

	Auth: fix leak of username
	When collect_credentials() returns a failure status, 'username' was
	potentially leaked.

2014-08-19  Jonathon Jongsma  <jjongsma@redhat.com>

	remote-viewer: oVirt username review fixes
	Minor fixes from patch review

	rhbz#1061826

2014-08-19  Fabiano Fidêncio  <fidencio@redhat.com>

	Force displays to update geometry when agent connects
	We have to force displays to update geometry when the agent connects to
	ensure the client will have the guest with the right resolution when the
	guest has rebooted or the agent has crashed.

	https://bugzilla.redhat.com/sho_bug.cgi?id=1021841

	Fix gcc warning (unused-parameter)

	Fix gcc warning (missing-prototypes)

	Add support to use numpad accelarators for zoom-{in.out,reset}
	As virt-viewer uses GtkAccelMap for shortcuts and that GTK only can have
	one key binding per accelerator (in accel_map_add_entry), let's also add
	support specificly for the numpad keys in the virt-viewer code

	https://bugzilla.redhat.com/show_bug.cgi?id=883433

	Don't check for NULL when it never can happen

2014-08-18  Christophe Fergeau  <cfergeau@redhat.com>

	Create foreign menu from .vv file information
	When the .vv file has an [ovirt] section, we should try to create a foreign
	menu out of it. This will allow remote-viewer to offer a menu to change the
	currenty inserted cdrom.

	Contrary to the ovirt:// case when we already have fetched an OvirtAPI
	and OvirtVm instance in order to get the SPICE/VNC connection details,
	when working from a .vv file, we'll need to get them from the REST API.
	Authentication should happen through the JSESSIONID cookie, if that
	fails we want to give up on using the foreign menu, so we don't need to
	set up authentication callbacks.

	Add ovirt-specific properties to VirtViewerFile
	They will be useful to implement foreign menu support through
	oVirt REST API

	Add 'group' argument to VirtViewerFile helpers
	For foreign menu support, we'll need a way to pass oVirt-specific
	information in the .vv file. This will be done through an additional
	[ovirt] section, this commit is in preparation for that.

	ovirt: Use OvirtForeignMenu class
	After the previous commit which introduced the OvirtForeignMenu
	class, we can now make use of it in the remote-viewer UI code.

	ovirt: Add OvirtForeignMenu class
	This class is used to implement the so-called oVirt 'foreign menu'
	which is a menu populated with ISO images available on the
	oVirt instance that the user can dynamically insert into the
	virtual machine he is currently viewing.

	ovirt: Remove extra '/' from oVirt URI
	The 'path' part of the URI will always start with a '/' when present as
	this is what separates it from the hostname. When rebuilding the final
	URI, the current code inserts a '/' by itself between the hostname and
	the path, which results in URIs with an extra '/':
	https://ovirt.example.com//some/path/api

	This is not only cosmetic as this can cause issues with cookie handling
	if libgovirt accesses //some/path/api while the cookie is set for
	/some/path/api.

2014-08-18  Jonathon Jongsma  <jjongsma@redhat.com>

	remote-viewer: allow username in ovirt URIs
	When the user launches remote-viewer with an ovirt URI of the form

	        ovirt://user@host/vmname

	Pre-populate the authentication dialog with the specified username. We
	don't support specifying the password on the commandline, since that is
	a potential security risk.

	rhbz#1061826

2014-08-15  Jonathon Jongsma  <jjongsma@redhat.com>

	Don't use fallback ca-file when launching vv-file
	When launching from a vv-file, we want to use the ca specified in the vv
	file and not load additional certs from the fallback ca-file. This
	ensures that the ca-file property of the spice session is unset when
	loading a ca from a vv-file.

	Resolves: rhbz#1127762

2014-08-07  Jonathon Jongsma  <jjongsma@redhat.com>

	Write vm name to config file as comment

	Change per-guest fullscreen config format
	use <display>:<monitor>;<display>:<monitor> instead of simply implying the
	display from the array index (e.g. <monitor>;<monitor>). This allows you to set
	up sparse guest displays (e.g. display 1 + 3).

	For example, to configure display 1 to be fullscreen on monitor 2 and display 2
	to be fullscreen on monitor 3:

	    monitor-mapping=1:2;2:3

	Add a dialog showing details of the current guest
	This allows the user to obtain the GUID and vm name of the currently-connected
	guest.  Obviously, this only works with spice. In the future, it will allow them
	to set guest-specific configuration options (using a GUID as a key)

2014-08-04  Christophe Fergeau  <cfergeau@redhat.com>

	Fix warning when going in/out of fullscreen
	Going to fullscreen, and then exiting causes these messages to show up
	on the console:
	(remote-viewer:14481): GLib-CRITICAL **: Source ID 784 was not found
	when attempting to remove it

	Remove unused RemoteViewerPrivate members

	Remove incorrect G_GNUC_UNUSED from remote_viewer_window_added
	The 'app' parameter is used in the function.

	Remove unused VirtViewerNotebook::dispose
	The vfunc implementation is only chaining to its parent, removing it
	will achieve the same result.

	Chain up to parent's dispose at the end of VirtViewerWindow::dispose
	glib documentation says this should be the last thing done in the
	dispose() call, which makes sense as this could invalidate still-needed
	data in the parent object.

2014-07-22  Marc-André Lureau  <marcandre.lureau@gmail.com>

	virt-viewer.xml: remove zoom-{in,out} accelerators
	The XML menu accelerators conflict with accelerator set in the code and
	prevent using them. This is a regression from d29fc63d.

2014-07-21  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Only filter virt-viewer debug messages
	Filter only our own debug messages.

	https://bugzilla.redhat.com/show_bug.cgi?id=1118365

	Always set ask-quit setting
	Avoid creating empty settings files, always set the ask-quit key.

	https://bugzilla.redhat.com/show_bug.cgi?id=1006737

	spice: avoid crash if connection failed without error
	spice_channel_get_error() is not guarantee to return a GError.

2014-07-21  Daniel P. Berrange  <berrange@redhat.com>

	Bump version to 2.0 for next dev cycle

	Update NEWS for 1.0 release

	Refresh translations from transifex

2014-07-08  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Make ctrl-[+-] zoom in/out in fullscreen
	Make ctrl-[+-] zoom in/out in fullscreen
	with mouse over the control bar.

	https://bugzilla.redhat.com/show_bug.cgi?id=987549

	app: report disconnection error details
	It may be useful to provide more detailed reason for disconnection.

	https://bugzilla.redhat.com/show_bug.cgi?id=1115986

	app: add virt_viewer_app_make_dialog()
	Add a function to create an application dialog. In the following
	commit, we will add more details for connection failures.

2014-07-02  Jonathon Jongsma  <jjongsma@redhat.com>

	Use GOptionGroup for VirtViewerApp options
	Encapsulate things a bit better by adding
	virt_viewer_app_get_option_group() which provides a GOptionGroup rather
	than exposing an array of options.  This option is then set as the main
	option group, and additional options can be added by subclasses, so the
	effect to the user should be equivalent.

2014-07-01  Jonathon Jongsma  <jjongsma@redhat.com>

	Set help output summary correctly
	Use g_option_context_set_summary() to provide a brief description of the
	executable instead of tacking the summary onto the end of the
	commandline.

	remote-viewer: mention vv-file in help output
	The man page already has a description of the vv-file format, but the
	--help output didn't mention it how to use it.

	References: rhbz#970825

2014-06-26  Christophe Fergeau  <cfergeau@redhat.com>

	build-sys: Use automake 'subdir-objects' option
	This silences an automake 1.14 warning:

	src/Makefile.am:35: warning: source file 'view/autoDrawer.c' is in a
	subdirectory,
	src/Makefile.am:35: but option 'subdir-objects' is disabled
	automake: warning: possible forward-incompatibility.
	automake: At least a source file is in a subdirectory, but the
	'subdir-objects'
	automake: automake option hasn't been enabled.  For now, the
	corresponding output
	automake: object file(s) will be placed in the top-level directory.
	However,
	automake: this behaviour will change in future Automake versions: they
	will
	automake: unconditionally cause object files to be placed in the same
	subdirectory
	automake: of the corresponding sources.
	automake: You are advised to start using 'subdir-objects' option
	throughout your
	automake: project, to avoid future incompatibilities.

	Don't use C99 for loops
	Declaring a local variable as part as a for loop
	such as 'for (unsigned int i; i < N; i++)' is a C99 specific feature.
	Running configure with --enable-compile-warnings=minimal does not add
	-std=c99 to the compile flags, so it's better if the codebase does not
	require C99 support from the compiler.

2014-06-23  Jonathon Jongsma  <jjongsma@redhat.com>

	rhbz#1111514: Fix un-shrinkable displays on windows guests
	Commit 6edde5786 introduced a regression wrt shrinking windows on windows
	guests. This seems to be because resizing a display often causes the notebook
	widget to switch to the status page temporarily (often so quickly that it's not
	noticeable to the eye). This causes a quick 'unmap' and 'map' event sequence on
	the display widget. Apparently the timing of these events varies enough between
	linux and windows guests that it is only noticeable on windows gueststhe timing
	of these events varies enough between linux and windows guests that it is only
	noticeable on windows guests. The exact sequence that causes the bug appears to
	be as follows:

	1 user resizes window smaller
	2 display widget gets a new allocation, which causes it to send a display
	  reconfiguration to the guest
	3 client receives a new show-hint for the display which causes it to switch
	  temporarily to the 'status' notebook page
	4 display widget gets unmapped
	5 Client receives another new show-hint, which causes the display widget to get
	  re- mapped, which causes client to send a display reconfiguration to the guest
	  (using the old size)
	6 client receives new (smaller, from step 2) display size and temporarily
	  changes to the new size
	7 client receives new (larger, from step 5) display size and changes back to
	  original size.

	To fix the issue, we only explicitly request a resize in response to the very
	first map event, and for any subsequent map events, we simply call
	_make_resizable() as before.

2014-06-23  Daniel P. Berrange  <berrange@redhat.com>

	Bump version 1.0 to simplify Windows MSI versioning
	The Windows MSI product version is restricted to a 3 component
	version number, whose fields are a max value of 255.255.65536

	Since the main virt-viewer version takes up 3 components already,
	we have the munge the micro version together with the first
	component of the release version. eg we have

	   $VERSION[0].$VERSION[1].($VERSION[2] << 8 + $RELEASE[0])

	This causes problems for RHEL which needs to have 2-component
	release versions to deal with z-stream builds.  eg a RHEL
	version might be virt-viewer-0.5.6-2.el6_4.3 and we've
	no easy way of adding the final '.3' to the Windows product
	version.

	If we reduce the primary virt-viewer version to just 2 components,
	then we can leave the 3rd component for exclusive use by the RPM
	release number. eg so we'd make product version up using

	   $VERSION[0].$VERSION[1].($RELEASE[0] << 8 + $RELEASE[1])

	In course of normal development, we'd increase the $VERSION[0]
	for each release. ie next release is 1.0, then 2.0, then 3.0.
	This means we retain the ability to put out "stable" branch
	releases for any historical version by doing 1.1, 1.2 instead
	of having to re-add a 3rd component.

2014-06-20  Marc-André Lureau  <marcandre.lureau@gmail.com>

	man: fix zoom level range
	https://bugzilla.redhat.com/show_bug.cgi?id=1111428

2014-06-16  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Fix a floating display warning
	You can reproduce the error by starting the client in kiosk and shuting
	down the guest.

	 #0  0x000000317e432915 in raise (sig=6) at
	 ../nptl/sysdeps/unix/sysv/linux/raise.c:64
	 #1  0x000000317e4340f5 in abort () at abort.c:92
	 #2  0x000000317fc4a98a in g_logv (log_domain=0x318730e657 "Gtk",
	 log_level=<value optimized out>, format=
	     0x31873a50a8 "A floating object was finalized. This means that
	     someone\ncalled g_object_unref() on an object that had only a
	     floating\nreference; the initial floating reference is not owned by
	     anyone\nand must be remo"..., args1=0x7fffffffd5f0)
	     at gmessages.c:557
	 #3  0x000000317fc4aa23 in g_log (log_domain=<value optimized out>,
	 log_level=<value optimized out>,
	     format=<value optimized out>) at gmessages.c:577
	 #4  0x000000318717ba72 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
	 #5  0x0000000000426eb5 in
	 virt_viewer_display_spice_finalize (obj=0x6fec20
	 [VirtViewerDisplaySpice])
	     at virt-viewer-display-spice.c:67
	 #6  0x0000003180c106a4 in g_object_unref (_object=0x6fec20) at
	 gobject.c:2712
	 #7  0x0000000000425b5d in destroy_display (data=0x6fec20) at
	 virt-viewer-session-spice.c:596
	 #8  0x000000317fc1667b in g_ptr_array_foreach (array=0x74a040,
	 func=0x425ae7 <destroy_display>, user_data=0x0)
	     at garray.c:1306
	 #9  0x000000317fc16e7b in g_ptr_array_free (farray=0x74a040,
	 free_segment=1) at garray.c:938
	 #10 0x000000317fc2906a in g_data_set_internal (datalist=<value optimized
	 out>, key_id=1297, data=0x0, destroy_func=0)
	     at gdataset.c:351
	 #11 g_datalist_id_set_data_full (datalist=<value optimized out>,
	 key_id=1297, data=0x0, destroy_func=0) at gdataset.c:598
	 #12 0x00000000004268d0 in
	 virt_viewer_session_spice_channel_destroy (s=0x800000 [SpiceSession],
	 channel=

	kiosk: remove invalid unref
	This unref doesn't seem to be related to any reference, although it
	was probably introduced in the first place to clear the floating ref,
	wrongly. See following commit for a working solution.

2014-06-12  Marc-André Lureau  <marcandre.lureau@gmail.com>

	util: fix glib_check_version() condition
	glib_check_version() returns NULL if version is higher or equal.

2014-06-11  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix tiny window when resetting zoom factor in gtk2 build
	rhbz#1104064 had a couple of symptoms. The first was fixed in
	6edde57862ac30e74ce6412c93a2fa925ae4ea67.

	The second symptom is that displays could also become tiny when clicking 'View >
	Zoom > Normal Size'. This was because VirtViewerDisplay returned early from
	_display_set_zoom_level() if the zoom level was being set to the current zoom
	setting. However, the calling function (_window_set_zoom_level()) also tries to
	queue a resize event for itself after setting the zoom level on the display. If
	the display doesn't queue a resize event for itself, its size request will only
	be 50x50 during the window resize negotiation. This causes the display to become
	tiny and zoomed out. Queueing a resize on the display widget ensures that it
	will request the proper size during the next allocation.

2014-06-11  Marc-André Lureau  <marcandre.lureau@redhat.com>

	window: take zoom-level into account for display limits
	Fixes guest can not be resized to expected window size after zoom out.

	https://bugzilla.redhat.com/show_bug.cgi?id=1105528

2014-06-10  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix tiny windows for secondary displays in gtk2 build
	When enabling a new display on linux guests, the new window would be tiny
	(50x50) and zoomed way out. This was caused by the fact that when the display
	widget received the 'map' event, it unconditionally cleared the 'dirty' flag,
	which meant that it would only request 50x50 size. This behavior was intended to
	fix a bug on the windows client which wprevented windows from resized smaller
	than the guest display resolution. Unfortunately, due to the timing of the 'map'
	and allocate events, the widget became very small.

	Instead of clearing the 'dirty' flag directly when a widget is mapped, we
	now queue a resize event, which will guarantee that the widget attains its
	desired size and will then clear its dirty flag (allowing it to be resized).
	Testing on windows indicates that this fix still solves the 'unshrinkable
	window' problem while also preventing the tiny secondary display bug.

	Resolves: rhbz#1104064

2014-06-10  Marc-André Lureau  <marcandre.lureau@gmail.com>

	util: get rid of ARRAY_CARDINALITY

	Use a custom log handler to silence debug messages
	On RHEL6, with old glib, all g_log messages are printed.
	Filter the messages with a custom handler instead.

	https://bugzilla.redhat.com/show_bug.cgi?id=1107518

2014-06-10  Marc-André Lureau  <marcandre.lureau@redhat.com>

	kiosk: don't attempt to hide windows when disconnecting
	Get rid of the following warning:
	(virt-viewer:7262): virt-viewer-WARNING **: Can't hide windows in kiosk mode

	https://bugzilla.redhat.com/show_bug.cgi?id=1107518

	Replace DEBUG_LOG with g_debug
	https://bugzilla.redhat.com/show_bug.cgi?id=1107518

	Remove warning when removing display
	Some display have no associated window (for ex, if it doesn't fit
	on client monitors).

	(remote-viewer:22275): remote-viewer-CRITICAL **: virt_viewer_window_set_display: assertion `VIRT_VIEWER_IS_WINDOW(self)' failed

	(remote-viewer:22275): remote-viewer-CRITICAL **: virt_viewer_app_remove_nth_window: assertion `win != NULL' failed

	https://bugzilla.redhat.com/show_bug.cgi?id=1107518

2014-06-10  Marc-André Lureau  <marcandre.lureau@gmail.com>

	msi: move up micro version in x.x.build productversion
	This allows 12 bits to form a buildid, ex in RHEVM builds:
	--with-buildid=$(release << 4 + zrelease)

	https://bugzilla.redhat.com/show_bug.cgi?id=1105650

2014-06-10  Christophe Fergeau  <cfergeau@redhat.com>

	Don't connect to localhost when using --direct
	Trying to connect to a remote virtual machine using
	virt-viewer -c qemu+ssh://example.com/system --direct $vm_name
	will currently fail with an error message saying it's not possible to
	localhost. This happens with VMs which listen on a wildcard address (eg
	'0.0.0.0').
	This was introduced by commit 74b1b62 which changes the host to connect to
	to 'localhost' when trying to connect through ssh to a VM listening on a
	wildcard address. This is only valid when using a ssh tunnel, and should
	not be done with --direct. The fallback code which uses the hostname from
	the libvirt URI is what makes the most sense in this situation (wildcard
	listen address + --direct).
	This commit introduces a virt_viewer_app_get_direct() so that this can be
	implemented.

	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1079211

	Fix 'title' leak in virt_viewer_file_fill_app()
	virt_viewer_file_get_title() returns a newly allocated string.

2014-06-03  Jonathon Jongsma  <jjongsma@redhat.com>

	Set freed variables to NULL in remote_viewer_start()
	Coverity warns that 'type' can sometimes be used or free after already having
	been freed.  This can happen when open_recent_dialog is true and we jump back up
	to the retry_dialog label.  To prevent this, make sure the freed variables are
	set to NULL after freeing.

	Improve remote-viewer connection dialog
	Based on the new design for the 'connect to server' dialog from Nautilus.

2014-04-17  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Fix race with metacity in fullscreen
	To avoid some races with metacity, the window should be placed as
	early as possible, before it is (re)allocated & mapped (rhbz#809546).

	build-sys: man Makefile.am misc improvements
	Make it silent.
	Ship man files in tarball.
	Use maintainer-clean instead of distclean (which is for files generated
	by configure in general).

	man: remove Perl header
	Remove "User Contributed Perl Documentation" header.

2014-04-08  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix gtk2 build
	Previous commit accidentally broke gtk2 build by using
	gtk_widget_get_preferred_size().  We can't simply use gtk_widget_size_request()
	for the gtk2 build since this will generally return 50x50 whenever we're not in
	the middle of a resize, so we need to add a compatibility function.

2014-04-07  Christophe Fergeau  <cfergeau@redhat.com>

	man: Use nicer link to GPLv2
	As pointed out by Eric Blake,
	https://www.gnu.org/licenses/gpl-2.0.html and
	https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
	both point to the same location, with the former being nicer to read.

2014-04-04  Christophe Fergeau  <cfergeau@redhat.com>

	man: Fix 'concatonated' typo
	This also removes an extra 'are' in the same sentence.

	man: Fix link to GPLv2 text
	The unversionned http links point to the GLPv3 text while virt-viewer is
	still licensed under the GPLv2.

	man: Add missing '.' at end of one sentence

	Update user-visible copyright information
	Years in copyright notices in the about dialog and man pages is at most
	2012, let's set it to 2014

	build-sys: Always prepend '-' to build id
	When using the --with-buildid configure paramater, the build id which is
	substituted in the MSI wxs file is automatically prepended by a '-', but
	the build id which is used in the C files does not get this '-'
	automatically.

	Currently, the linux and mingw spec files prepend a '-' on their own to the
	--with-buildid argument, but this causes the MSI installer to show 2 '-'
	during installation: "Please wait while Windows configures VirtViewer
	0.6.0--1"

	This commit always prepends a '-' to the buildid strings, and removes the
	'-' from the spec files. This is to ensure the separator between version
	number and buildid is not forgotten, which could give a confusing version
	number.

2014-03-27  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix regression with enabling additional displays
	Commit 8fa942 broke enabling of additional displays. We don't want to send down
	display re-configurations due to events that happen while setting up windows for
	enabled displays that we recieve from the server. However, by ignoring
	allocations on unmapped windows, we fail to send display configurations for new
	displays that a user is attempting to enable via the window menu. To
	discriminate between these two cases, we check whether the display is in the
	'ready' state or not.
	- Unmapped displays with the 'ready' hint set can be assumed to be displays
	  that are enabled on the server that we are attempting to create windows for on
	  the client. In this case, we should *not* send a display configuration to the
	  server
	- Unmapped displays with the 'ready' hint cleared can be assumed to be displays
	  that are not yet enabled on the server that we are trying to enable in the
	  client. In this case, we *should* send a display configuration to the server

2014-03-14  Martin Kletzander  <mkletzan@redhat.com>

	Fix building with older spice-gtk
	Due to spice-gtk-0.23 missing SPICE_GTK_CHECK_VERSION macro, the
	condition:

	causes the following error:

	virt-viewer-session-spice.c: In function 'virt_viewer_session_spice_main_channel_event':
	virt-viewer-session-spice.c:525:64: error: missing binary operator before token "("
	 #if defined(SPICE_GTK_CHECK_VERSION) && SPICE_GTK_CHECK_VERSION(0, 23, 21)
	                                                                ^
	Also one more warning is fixed in this patch:

	virt-viewer-session-spice.c:476:19: warning: unused variable 'error'
	[-Wunused-variable] const GError *error;
	                                  ^

2014-03-14  Christophe Fergeau  <cfergeau@redhat.com>

	Fix 'silentely' typo in remote-viewer man page

	Don't show 'do you want to quit' dialog in kiosk mode
	In some situation, (for example, guest without vdagent running), it's
	possible to pass key combinations to virt-viewer. When using alt+f4,
	this can cause the 'do you want to quit?' dialog to show while it's
	non-functional.
	This commit moves the check for kiosk mode to before we show this dialog.

2014-03-13  Jonathon Jongsma  <jjongsma@redhat.com>

	Fix broken 'release-cursor' accel when not specified in --hotkeys
	When the --hotkeys option is given, all hotkeys that are not explicitly
	specified are disabled.  The method used to disable hotkeys is to change the
	accel map entry to key=0, mods=0. However, when we decide whether to set a grab
	sequence on the spice dispay widget, we simply use the return value for
	gtk_accel_map_lookup_entry and assume that a TRUE value returned from this
	function means that the hotkey is enabled.  In reality, this function will
	return TRUE for disabled hotkeys, but the 'key' variable will be set to key=0,
	mods=0. The result is that if I start virt-viewer like this:

	    virt-viewer --hotkeys secure-attention=ctrl+alt+end ...

	and the guest that I'm attached to uses server mouse mode, it will be impossible
	to release the grab on the spice widget.  Because we will explicitly disable the
	grab keys in the spice widget and handle the 'release-cursor' hotkey in
	virt-viewer, but the hotkey is an empty accel key.

	Instead of simply checking the return value of gtk_accel_map_lookup_entry, we
	have to inspect the return value for 'key' and check whether any keys are
	actually assigned.

	Don't create new windows at startup when kiosk mode is false
	virt_viewer_app_set_kiosk creates a new window at startup for each client
	monitor (regardless of whether the guest supports more than one display).  This
	seems unnecessary.  Only do this if kiosk mode is actually enabled.

	Remove special-case for getting window n=0
	virt_viewer_app_get_nth_window() will return the proper window when passed 0 for
	the 'nth' argument, so there's no need to avoid calling it in this case.  It
	just complicates the code logic.

	Don't resize guest display on zoom change
	When the zoom level is changed, the virt-viewer window gets resized. But we
	don't want this to trigger a resize of the guest display. But occasionally
	rounding errors cause the guest display to be reconfigured when zooming out.  To
	fix this, we first check whether the current size is the preferred size.  If it
	is, we don't send down a resize command to the guest.

	In addition to preventing guest resizes in response to zooming, it also improves
	the behavior when the guest display resolution is changed from within the guest.
	Before this change, we'd have the following behavior:
	    A. guest changes display to WxH
	    B. client gets notified of change and resizes the window to WxH
	    C. client responds to window resize by sending a new monitor config command to the guest

	With this change, the extra step C will be avoided because we're already at the
	preferred size.

	Resolves: rhbz#1004051

2014-03-13  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Use a USB icon in the fullscreen toolbar
	Replace the generic GTK_STOCK_PREFERENCES with a more appropriate USB icon.

	The icon was provided by Jakub Steiner <jsteiner@redhat.com>

	https://bugzilla.redhat.com/show_bug.cgi?id=804184

	Remove "Automatically resize" menu
	Remove "Automatically resize" menu item (always enabled for Spice
	display now)

	https://bugzilla.redhat.com/show_bug.cgi?id=1007649

	Silence a message about missing configuration file
	Do not print a g_debug() error when the configuration file is missing,
	unless given the --debug option.

	https://bugzilla.redhat.com/show_bug.cgi?id=1006737

2014-03-12  Daniel P. Berrange  <berrange@redhat.com>

	Fix scaling of window upon resize
	The code to determine scaling of windows was incorrectly
	using the original desktop size instead of the host screen
	size. The 128 pixel fudge factor was also causing windows
	to be scaled when there was no need for them to be.

2014-03-06  Jonathon Jongsma  <jjongsma@redhat.com>

	Revert "Don't resize guest display on zoom change"
	This reverts commit 895ef8029e794e7b74a45f27c7c741d1332bc02b.

2014-02-27  Christophe Fergeau  <cfergeau@redhat.com>

	spec: Don't disable spice support on some archs
	Nowadays spice-gtk no longer has an ExclusiveArch: x86 x86_64 %{arm}
	virt-viewer can be built with spice-gtk support on all arches.

2014-02-26  Jonathon Jongsma  <jjongsma@redhat.com>

	Don't resize guest display on zoom change
	When the zoom level is changed, the virt-viewer window gets resized. But we
	don't want this to trigger a resize of the guest display. But occasionally
	rounding errors cause the guest display to be reconfigured when zooming out.  To
	fix this, we first check whether the current size is the preferred size.  If it
	is, we don't send down a resize command to the guest.

	In addition to preventing guest resizes in response to zooming, it also improves
	the behavior when the guest display resolution is changed from within the guest.
	Before this change, we'd have the following behavior:
	    A. guest changes display to WxH
	    B. client gets notified of change and resizes the window to WxH
	    C. client responds to window resize by sending a new monitor config command to the guest

	With this change, the extra step C will be avoided because we're already at the
	preferred size.

	Resolves: rhbz#1004051

2014-02-26  Marc-André Lureau  <marcandre.lureau@gmail.com>

	spice: do not open in fullscreen with CONTROLLER_AUTO_DISPLAY_RES
	This flag is always set when using the rhevm user portal. Best is
	probably to ignore it, now that fullscreen has simplified unique
	behaviour.

2014-02-24  Marc-André Lureau  <marcandre.lureau@redhat.com>

	spice: ask credentials for proxy
	If Spice proxy requires authentication, ask credentials and try
	connecting again.

2014-02-24  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Fix a gcc warning when compiling with mingw32

2014-02-24  Daniel P. Berrange  <berrange@redhat.com>

	Fix german translation of send key

	Improve docs for --attach flag in virt-viewer
	People seem to have a hard time understanding the --attach flag.
	Rewrite the docs in the hope that people figure it out this time.

2014-02-13  Jonathon Jongsma  <jjongsma@redhat.com>

	rhbz#1007306 - Don't free session if we're re-trying auth
	deactivate() is called in response to a failed authentication attempt. If the
	session is cleared here, when a user attempts to re-authenticate, it will issue
	a warning and will not actually work. So only clear the session here if we're
	not going to re-try authentication.

	Don't set VNC display to ready until vnc is initialized
	We were setting the show_hint to READY as soon as we got the vnc-connected
	signal.  But there may be an authentication step between vnc-connected and
	vnc-initialized.  In this case, we switch to an empty black display during the
	authentication step instead of showing the 'waiting for display N' status.

	Don't hide the main window when disconnecting
	The main window (display #1) is treated a bit differently from other windows,
	since it is opened at app start and displays status messages while we attempt to
	connect to the remote guest.  As such, it should really stay open as long as the
	app is running.

	The impetus for this change is the following:
	- user attempts to connect to a remote VNC display with a password
	- user types the wrong password
	- A dialog pops up indicating that authentication failed and asking if the user
	  would like to try to re-connect.
	- User clicks 'Yes'
	- Because the connection was disconnected, all windows are closed
	- remote-viewer tries to reconnect again, at which point a new display window is
	  opened, and the window gets placed by the window manager (possibly on another
	  monitor altogether).

	As a user, I expect the program to simply re-use the existing window when trying
	to re-authenticate, instead of having the window disappear and then re-appear at
	a different location.  This patch accomplishes that.

	Move vnc-specific auth logic to VirtViewerSessionVnc

2014-02-11  Jonathon Jongsma  <jjongsma@redhat.com>

	Improve window title when connected to newer spice-server
	Recent spice servers send the guest vm name and uuid to the client.  We can use
	these values to display the proper vm name in the window title if a title is not
	specified on the commandline. We can also be smarter about the title in
	virt-viewer as well.

	If a title is specified on the comamndline (-t/--title=foo), we use that.  If not,
	we fall back to the vm name.  If that is empty, we fall back to the uri of the
	connection.

	Comparison between old behavior and new behavior

	Using new spice-server
	Command                                     Old title                   New title
	-------                                     ---------                   ---------
	remote-viewer -t xyz spice://host:port      xyz                         xyz
	remote-viewer spice://host:port             spice://host:port           <vmname>
	virt-viewer <vmname>                        <vmname>                    <vmname>
	virt-viewer <uuid>                          <uuid>                      <vmname>

	Using old spice-server
	Command                                     Old title                   New title
	-------                                     ---------                   ---------
	remote-viewer -t xyz spice://host:port      xyz                         xyz
	remote-viewer spice://host:port             spice://host:port           spice://host:port
	virt-viewer <vmname>                        <vmname>                    <vmname>
	virt-viewer <uuid>                          <uuid>                      <vmname>

	Display warning if UI file fails
	When trying to load ui files, we try to find the file in several directories.
	If a file is not found in one directory, try to load it from the next directory.
	However, if a file is found in a directory but we are not able to load it (e.g.
	due to unsupported versions of glade used to generate it, etc), we should print
	a warning to the terminal to help the developer debug the issue.

	This is an unexpected failure (whereas not finding the file in that directory at
	all is an 'expected' failure).

2014-01-24  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.6.0 release

	Refresh translations

	Fix virt-viewer.exe on win32
	Libvirt uses gnulib for making winsock look like POSIX
	sockets. This means that in the libvirt event handle
	callbacks the application will be given a file descriptor
	rather than a winsock HANDLE object. The g_io_channel_unix_new
	method will detect that it is an FD and delegate to the
	g_io_channel_win32_new_fd method. Unfortunately the glib Win32
	event loop impl is not very good at dealing with FD objects,
	simulating poll() by doing a read() on the FD :-(

	The API docs for g_io_channel_win32_new_fd say

	 "All reads from the file descriptor should be done by
	  this internal GLib thread. Your code should call only
	  g_io_channel_read()."

	This isn't going to fly for libvirt, since it has zero
	knowledge of glib at all, so is just doing normal read().

	Fortunately we can work around this problem by turning
	the FD we get from libvirt back into a HANDLE using the
	_get_osfhandle() method.

	Don't use --nodeps for developer builds
	Only use --nodeps when running under the autobuild engine

2014-01-20  Jonathon Jongsma  <jjongsma@redhat.com>

	Load ui files first from installed location
	virt_viewer_util_load_ui() looks first in the current directory, and then looks
	in the system data dirs for a ui file to load, but if you install virt-viewer in
	a different prefix, it will load the system UI file rather than the one from the
	install prefix. Try to load the ui file from pkgdatadir first.

2014-01-07  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Clear global zoom-reset hotkey too

	Fix rebuild of accelerators menu when loading from file
	It's not enough to set the property to notify of its change. Add a
	virt_viewer_app_set_enable_accel() helper, and call it after the changes
	to accelerators are made when loading from file.

	I verified the menu is correctly built when connection from controller
	or command line too.

2013-12-19  Christophe Fergeau  <cfergeau@redhat.com>

	Disable mime database update during make distcheck
	Updating the mime database creates files in the install directory, and
	these files are not cleaned up on make uninstall, so this causes a make
	distcheck failure.

2013-12-18  Christophe Fergeau  <cfergeau@redhat.com>

	spec: Get BuildRequires min versions from configure.ac
	We currently duplicate the minimum requirements for the various virt-viewer
	dependencies in configure.ac, virt-viewer.spec.in and mingw-virt-viewer.spec.in
	This commit uses the versions set in configure.ac in the 2 .spec.in files
	so that it's easier to keep them in sync

	Before/after diff of the .spec files are:

	--- virt-viewer.spec.or 2013-12-18 14:14:14.304285905 +0100
	+++ virt-viewer.spec    2013-12-18 14:19:20.217072678 +0100
	@@ -47,14 +47,14 @@
	 BuildRequires: libtool
	 %endif

	-BuildRequires: glib2-devel >= 2.22
	+BuildRequires: glib2-devel >= 2.22.0
	 %if %{with_gtk3}
	-BuildRequires: gtk3-devel >= 3.0.0
	+BuildRequires: gtk3-devel >= 3.0
	 %else
	-BuildRequires: gtk2-devel >= 2.12.0
	+BuildRequires: gtk2-devel >= 2.18.0
	 %endif
	-BuildRequires: libvirt-devel >= 0.9.7
	-BuildRequires: libxml2-devel
	+BuildRequires: libvirt-devel >= 0.10.0
	+BuildRequires: libxml2-devel >= 2.6.0
	 %if %{with_gtk3}
	 BuildRequires: gtk-vnc2-devel >= 0.4.0
	 %else

	--- mingw-virt-viewer.spec.or   2013-12-18 14:14:23.656401693 +0100
	+++ mingw-virt-viewer.spec      2013-12-18 14:20:57.007270507 +0100
	@@ -12,22 +12,22 @@

	 BuildRequires:  mingw32-filesystem >= 23
	 BuildRequires:  mingw64-filesystem >= 23
	-BuildRequires:  mingw32-glib2 >= 2.22
	-BuildRequires:  mingw64-glib2 >= 2.22
	+BuildRequires:  mingw32-glib2 >= 2.22.0
	+BuildRequires:  mingw64-glib2 >= 2.22.0
	 BuildRequires:  mingw32-gstreamer-plugins-bad-free
	 BuildRequires:  mingw64-gstreamer-plugins-bad-free
	 BuildRequires:  mingw32-gstreamer-plugins-good
	 BuildRequires:  mingw64-gstreamer-plugins-good
	-BuildRequires:  mingw32-gtk2
	-BuildRequires:  mingw64-gtk2
	+BuildRequires:  mingw32-gtk2 >= 2.18.0
	+BuildRequires:  mingw64-gtk2 >= 2.18.0
	 BuildRequires:  mingw32-libusbx
	 BuildRequires:  mingw64-libusbx
	-BuildRequires:  mingw32-libvirt >= 0.9.7
	-BuildRequires:  mingw64-libvirt >= 0.9.7
	-BuildRequires:  mingw32-libxml2
	-BuildRequires:  mingw64-libxml2
	-BuildRequires:  mingw32-gtk-vnc >= 0.4.3
	-BuildRequires:  mingw64-gtk-vnc >= 0.4.3
	+BuildRequires:  mingw32-libvirt >= 0.10.0
	+BuildRequires:  mingw64-libvirt >= 0.10.0
	+BuildRequires:  mingw32-libxml2 >= 2.6.0
	+BuildRequires:  mingw64-libxml2 >= 2.6.0
	+BuildRequires:  mingw32-gtk-vnc >= 0.3.8
	+BuildRequires:  mingw64-gtk-vnc >= 0.3.8
	 BuildRequires:  mingw32-readline
	 BuildRequires:  mingw64-readline
	 BuildRequires:  mingw32-spice-glib

	Update spice-gtk requirement everywhere
	d1c2bc1 updated configure.ac spice-gtk requirement to 0.22, but did not
	update the various places which duplicated this requirement, namely the
	.spec.in files and the README file.

	Update shared mime database on install/uninstall
	remomte-viewer installs a file to $datadir/share/mime to register a
	mime-type for its .vv files. However, after installing this file,
	update-mime-database must be run in order to update the shared mime
	database. This commit (inspired by what Nautilus/planner are doing) adds
	what is needed for that.
	If the mime type is not correctly registered, gvfs-info console.vv will not
	return the correct mime type, and xdg-open console.vv will fail to start
	remote-viewer, and will fall back to running gedit as the .vv file is a
	text file.

	https://bugzilla.redhat.com/show_bug.cgi?id=1044209

2013-12-16  Jonathon Jongsma  <jjongsma@redhat.com>

	Enable the display before showing the window
	This ensures that the display is enabled when it gets its first Allocate event
	(which causes a display reconfiguration).  If the display is not enabled at this
	point, it won't send down a new monitors_config message until the second
	allocation, which may result in the display being disabled until a window is
	resized.

2013-12-16  Marc-André Lureau  <marcandre.lureau@gmail.com>

	build-sys: require spice-gtk >= 0.22
	Require 0.22 fro spice_uuid_to_string()

2013-12-13  Christophe Fergeau  <cfergeau@redhat.com>

	Disable govirt support on f19
	The govirt package in f19 is an older one, and does not have some of the
	functions used since the switch to govirt 0.3.0. As 0.3.0 broke ABI, it's
	not convenient to backport it to f19.
	Update the spec file to reflect the fact that oVirt support in git is no
	longer buildable on f19.

2013-12-10  Marc-André Lureau  <marcandre.lureau@gmail.com>

	app: remove useless warning
	This warning should have been removed with 20eb200c.

	https://bugzilla.redhat.com/show_bug.cgi?id=1021350

	remote-viewer: add desktop icon
	Associate an icon to desktop menu entry.
	https://bugzilla.redhat.com/show_bug.cgi?id=1020359

2013-12-10  Jonathon Jongsma  <jjongsma@redhat.com>

	Remove obsolete function declaration
	This function was removed in bd914bdea2e85d62d5f67eb567ce200f526c6bab, but the
	declaration was missed.

2013-11-27  Jonathon Jongsma  <jjongsma@redhat.com>

	Create a sparse array for monitor-geometry-changed
	It's possible to have only display N enabled without having all of the displays
	before it. I experienced this a couple times with a windows guest where display
	1 would show up before display 0 and we'd hit a warning that nth is not less
	than nmonitors. So find the highest display ID and then create an array of that
	size, leaving missing displays initialized to 0

	Don't re-configure displays when show-hint changes
	This caused secondary displays on a windows guest to flicker under some
	circumstances. The old code didn't re-configure displays in this case either, so
	it shouldn't have been included in the display alignment refactor.

	Do all display alignment in virt-viewer
	Don't rely on spice-gtk to do any alignment of displays.  This patch sets the
	disable-display-align property on the SpiceMainChannel, and makes the
	VirtViewerSession in charge of doing all alignment. This means that every
	display has to tell the VirtViewerSession when its "virtual monitor" has changed
	configuration (and wants to reconfigure its display on the guest), rather than
	sending it directly to the Main Channel.  The session will then align the
	displays (if necessary), and the spice session will send down new configuration
	for all displays at once. This solves a couple of problems:

	1. It allows the session to send down absolute coordinates only in the case
	   where *all* windows are fullscreen (so that we can still support
	   vertically-stacked displays, etc).  But it auto-aligns displays if only a
	   subset of the displays are in fullscreen mode. This solves the problem of
	   overlapping regions on different displays when one monitor is in fullscreen
	   because only one monitor's configuration was updated and the others were not
	   aligned.
	2. Allows us to always align based on the current position of each display. This
	   contrasts with the earlier behavior where the position used for alignment was
	   the window's position at the time when it was last resized. This caused
	   displays to be arranged in a seemingly non-deterministic manner if one window
	   was moved and then another window was resized (causing a display
	   re-configuration).

	Solves rhbz#1002156

2013-11-21  Jonathon Jongsma  <jjongsma@redhat.com>

	Ensure all windows obey initial --zoom setting
	There are cases where multiple VirtViewerWindow objects are created before the
	VirtViewerApp constructor has a chance to run. Since the constructor has not yet
	run, priv->main_window will still be NULL, the test in
	virt_viewer_app_window_new() will fail, and they will not get their initial zoom
	level set.  When the constructor finally runs, it set the zoom level of the main
	window to the value set on the command line, but all other windows that had
	already been created retained the default 100% zoom level.

	By creating the main_window in the instance init function, we ensure that the
	main window is created before we get any 'session-display-added' signals and all
	displays will start out with consistent zoom levels.

	Remove non-functional VIRT_VIEWER_HIDE env behavior
	VIRT_VIEWER_HIDE could be set as an environment variable to (theoretically) hide
	displays whenever they were not ready.  Unfortunately, this bit of functionality
	appears bitrotten and doesn't work anymore (it prevents windows from opening
	when you click 'view > displays > display 2', for instance).

2013-11-20  Jonathon Jongsma  <jjongsma@redhat.com>

	separate fullscreen_set_active into a separate function

	Ensure auto-conf is only done once
	Auto-conf should only happen at startup. It is triggered from several places due
	to the somewhat unreliable ordering of events, but that doesn't mean we want to
	run it several times. This patch ensures that we only do it once.

	Add ability to define custom display->monitor mapping per vm
	Fullscreen mode generally just assigns display 1 to monitor 1, display 2 to
	monitor 2, etc. For custom setups, you can define a monitor mapping in the
	settings keyfile per-vm. This requires a vm uuid (so only works in virt-viewer
	or on versions of spice-server that send the uuid over the wire).  The format is
	pretty basic:

	    [6485b20f-e9da-614c-72b0-60a7857e7886]
	    monitor-mapping=2;3

	The group name ("6485b20f-e9da-614c-72b0-60a7857e7886") is the uuid id of the
	vm. This group has a single key: monitor-mapping. This key is an array of
	integers describing the order in which to assign the monitors to a guest
	display. Any monitors that are not listed in this array will not be configured
	at startup.  For instance:

	    monitor-mapping=2;1

	will attempt to configure 2 displays on the guest and assign the first display
	to monitor 2 and the second display to monitor 1.

	    monitor-mapping=2

	will only configure a single display on the guest and place it on the second
	monitor.  Any monitor numbers listed in the keyfile are greater than the number
	of monitors that are physically present, they will be ignored.

2013-11-20  Christophe Fergeau  <cfergeau@redhat.com>

	Fix leak of VirtViewerApp::windows hash table key
	The VirtViewerApp::windows hash table owns the memory for both the keys
	and values it stores. virt_viewer_app_remove_nth_window() uses
	g_hash_table_steal() which does not call the 'free' function neither for
	the key nor for the value. This method takes care of releasing the
	reference for the value it extracted from the hash table, but not for the
	key.
	This commit fixes by explicitly taking a reference on the value rather than
	stealing the one held by the hash table. We can then replace the use of
	g_hash_table_steal() with g_hash_table_remove() which will take care of
	freeing the removed key.

	session: Don't hold VirtViewerDisplay refs on channel destroy
	VirtViewerSessionSpice creates a reference-holding VirtViewerDisplay
	array and associates it with the display SpiceChannel with
	g_object_set_data(channel, "virt-viewer-displays").

	When virt_viewer_session_spice_channel_destroy() is called and the display
	channel is being destroyed, we should ensure these VirtViewerDisplay
	references are dropped or the displays could outlive the session.

	In my testing (start qemu with a f20 live cd, connect to it, when the
	kernel has started booting and qxl is initialized (4 displays listed in the
	display submenu), kill qemu), I was getting "invalid unclassed pointer in
	cast to 'VirtViewerSessionSpice'" warnings through

	    #0  0x00000035bac504e9 in g_logv (log_domain=0x35bb039aa4 "GLib-GObject",
	        log_level=G_LOG_LEVEL_WARNING, format=<optimized out>,
	        args=args@entry=0x7fffffffc7c0) at gmessages.c:989
	    #1  0x00000035bac5063f in g_log (
	        log_domain=log_domain@entry=0x35bb039aa4 "GLib-GObject",
	        log_level=log_level@entry=G_LOG_LEVEL_WARNING,
	        format=format@entry=0x35bb041010 "invalid unclassed pointer in cast to '%s'")
	        at gmessages.c:1025
	    #2  0x00000035bb032e09 in g_type_check_instance_cast (type_instance=0x665580,
	        iface_type=<optimized out>) at gtype.c:4025
	    #3  0x0000000000426e9f in get_main (self=0x894190) at virt-viewer-display-spice.c:92
	    #4  0x0000000000426ece in show_hint_changed (self=0x894190)
	        at virt-viewer-display-spice.c:100
	    #5  0x00000035bb010298 in g_closure_invoke (closure=0x9f47c0,
	        return_value=return_value@entry=0x0, n_param_values=2,
	        param_values=param_values@entry=0x7fffffffcad0,
	        invocation_hint=invocation_hint@entry=0x7fffffffca70) at gclosure.c:777
	    #6  0x00000035bb02235d in signal_emit_unlocked_R (node=node@entry=0x651f60,
	        detail=detail@entry=1782, instance=instance@entry=0x894190,
	        emission_return=emission_return@entry=0x0,
	        instance_and_params=instance_and_params@entry=0x7fffffffcad0) at gsignal.c:3586
	    #7  0x00000035bb02a0f2 in g_signal_emit_valist (instance=<optimized out>,
	        signal_id=<optimized out>, detail=<optimized out>,
	        var_args=var_args@entry=0x7fffffffcc60) at gsignal.c:3330
	    #8  0x00000035bb02a3af in g_signal_emit (instance=<optimized out>,
	        signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
	    #9  0x00000035bb014945 in g_object_dispatch_properties_changed (object=0x894190,
	        n_pspecs=92, pspecs=0x0) at gobject.c:1047
	    #10 0x00000035bb017019 in g_object_notify_by_spec_internal (pspec=<optimized out>,
	        object=0x894190) at gobject.c:1141
	    #11 g_object_notify (object=0x894190, property_name=<optimized out>) at gobject.c:1183
	    #12 0x000000000041b617 in virt_viewer_display_set_show_hint (self=0x894190, mask=1,
	        enable=0) at virt-viewer-display.c:659
	    #13 0x000000000042712c in update_display_ready (self=0x894190)
	        at virt-viewer-display-spice.c:156
	    #14 0x00000035bb010298 in g_closure_invoke (closure=0x6ba480,
	        return_value=return_value@entry=0x0, n_param_values=2,
	        param_values=param_values@entry=0x7fffffffcfb0,
	        invocation_hint=invocation_hint@entry=0x7fffffffcf50) at gclosure.c:777
	    #15 0x00000035bb02235d in signal_emit_unlocked_R (node=node@entry=0x651f60,
	        detail=detail@entry=1798, instance=instance@entry=0xa2c250,
	        emission_return=emission_return@entry=0x0,
	        instance_and_params=instance_and_params@entry=0x7fffffffcfb0) at gsignal.c:3586
	    #16 0x00000035bb02a0f2 in g_signal_emit_valist (instance=<optimized out>,
	        signal_id=<optimized out>, detail=<optimized out>,
	        var_args=var_args@entry=0x7fffffffd140) at gsignal.c:3330
	    #17 0x00000035bb02a3af in g_signal_emit (instance=<optimized out>,
	        signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
	    #18 0x00000035bb014945 in g_object_dispatch_properties_changed (object=0xa2c250,
	        n_pspecs=92, pspecs=0x0) at gobject.c:1047
	    #19 0x00000035bb017019 in g_object_notify_by_spec_internal (pspec=<optimized out>,
	        object=0xa2c250) at gobject.c:1141
	    #20 g_object_notify (object=0xa2c250, property_name=<optimized out>) at gobject.c:1183
	    #21 0x00007ffff7044d9a in update_ready (display=0xa2c250) at spice-widget.c:257
	    #22 0x00007ffff7044df0 in set_monitor_ready (self=0xa2c250, ready=0)
	        at spice-widget.c:265
	    #23 0x00007ffff7049bb3 in primary_destroy (channel=0x9f40b0, data=0xa2c250)
	        at spice-widget.c:2131
	    #24 0x00007ffff704afd5 in channel_destroy (s=0x892880, channel=0x9f40b0, data=0xa2c250)
	        at spice-widget.c:2444
	    #25 0x00000035bb010298 in g_closure_invoke (closure=0xa27850,
	        return_value=return_value@entry=0x0, n_param_values=2,
	        param_values=param_values@entry=0x7fffffffd570,
	        invocation_hint=invocation_hint@entry=0x7fffffffd510) at gclosure.c:777
	    #26 0x00000035bb02235d in signal_emit_unlocked_R (node=node@entry=0x7cf600,
	        detail=detail@entry=0, instance=instance@entry=0x892880,
	        emission_return=emission_return@entry=0x0,
	        instance_and_params=instance_and_params@entry=0x7fffffffd570) at gsignal.c:3586
	    #27 0x00000035bb02a0f2 in g_signal_emit_valist (instance=<optimized out>,
	        signal_id=<optimized out>, detail=<optimized out>,
	        var_args=var_args@entry=0x7fffffffd700) at gsignal.c:3330
	    #28 0x00000035bb02a3af in g_signal_emit (instance=<optimized out>,
	        signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
	    #29 0x00007ffff6ceba87 in spice_session_channel_destroy (session=0x892880,
	        channel=0x9f40b0) at spice-session.c:1923
	    #30 0x00007ffff6cecf05 in spice_channel_dispose (gobject=0x9f40b0)
	        at spice-channel.c:149
	    #31 0x00007ffff6cf912c in spice_display_channel_dispose (object=0x9f40b0)
	        at channel-display.c:136
	    #32 0x00000035bb014ee8 in g_object_unref (_object=0x9f40b0) at gobject.c:3160
	    #33 0x00007ffff6cf300c in spice_channel_delayed_unref (data=0x9f40b0)
	        at spice-channel.c:2135
	    #34 0x00000035bac492a6 in g_main_dispatch (context=0x67a6b0) at gmain.c:3066
	    #35 g_main_context_dispatch (context=context@entry=0x67a6b0) at gmain.c:3642
	    #36 0x00000035bac49628 in g_main_context_iterate (context=0x67a6b0,
	        block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
	        at gmain.c:3713
	    #37 0x00000035bac49a3a in g_main_loop_run (loop=0x7baf60) at gmain.c:3907
	    #38 0x00000035bfdaa2d5 in gtk_main () at gtkmain.c:1158
	    #39 0x000000000042caf1 in main (argc=1, argv=0x7fffffffdc78) at remote-viewer-main.c:179

	In that backtrace, the last ref to the VirtViewerDisplay instances is held by the
	SpiceChannel:virt-viewer-displays object data which will only be released after
	completion of spice_display_channel_dispose()

	Remove obsolete use of SpiceChannel:virt-viewer-display object data
	Commit 0d58d9c72 removed the setting of the
	SpiceChannel:virt-viewer-display object data, but there was still a
	call to g_object_get_data() trying to use it. Since it's only used to
	output a debug log, we can remove this call and fix up the debug log.

2013-11-13  Christophe Fergeau  <cfergeau@redhat.com>

	Hide all windows on disconnection
	When starting remote-viewer without argument, we are showing a
	window where the user can enter connection details. We then
	go on to try and connect to the URI the user specified, and if
	the connection fails, we disconnect from the remote server, and then
	we show again the connection window so that the user can correct the
	URI if he entered it wrong.
	However, when this happens, the window for the previous connection
	will still be visible even if connection failed. To avoid this,
	this commit makes sure we hide all windows when we get a disconnection
	event.

	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1024309

	Reshow connection dialog on errors
	remote-viewer behaviour is currently inconsistent in the connection dialog:
	if the user enters a valid URI, but then remote-viewer fails to connect
	to it, then we'll show again the connection dialog through a call
	to virt_viewer_app_start() in remote_viewer_deactivated(). If instead we
	enter an invalid URI in the connection dialog, then remote-viewer will
	report an error and quit.

	This commit makes sure in the latter case, we report the error and show
	again the connection dialog. The user can press 'Cancel' in the
	connection dialog to get out of remote-viewer as in this case, we
	return directly FALSE rather than going through the cleanup: label
	and looping.

	Handle virt_viewer_app_start() errors
	remote_viewer_deactivated() can be calling virt_viewer_app_start()
	without checking whether it returns TRUE or FALSE. It returns FALSE
	when it was not successful (when it failed to parse the URI to connect
	to for example, or whe the user presses Cancel in the connection dialog).

	This means that if the user starts remote-viewer, enters a valid URI
	in the connection dialog to which it cannot connect to
	(spice://example.com:999) and then presses Cancel in the connection
	dialog that appears after the connection  failure, then remote-viewer
	will be sitting there with an empty window doing nothing.

	This commit ensures we chain to the parent class when
	virt_viewer_app_start() returns FALSE, which causes remote-viewer to
	exit.

	Fix window title after failed connection
	When using the connection dialog, if the user picks an invalid
	URI first causing a failed connection, and then picks/enters a valid
	URI, remote-viewer window title will be set to the first invalid URI,
	not to the second one which was entered.

	As the user may have specified a window title to use on the command
	line (-t option), we need to be careful not to override that when
	setting the window title on the second attempt.

	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1024309

	build-sys: Use gtk+ 3.0 by default
	virt-viewer currenty builds with gtk+ 2.0 by default. Nowadays, gtk+ 2.0 is
	legacy, and this default is inconsistent with spice-gtk which defaults to
	gtk+ 3.0. This commit switches the default to gtk+ 3.0

2013-11-13  Jonathon Jongsma  <jjongsma@redhat.com>

	Disconnect fullscreen map-event handler when leaving fullscreen
	When we enter fullscreen mode before the window is shown, we set up a signal
	handler to enter fullscreen mode when the window is mapped.  If we then leave
	fullscreen mode before the window is mapped, we don't disconnect this handler,
	so it will still enter fullscreen mode when it is shown.

	Fixes rhbz #1009513

	Drop basic fullscreen mode
	Remove the distinction between --full-screen and --full-screen=auto-conf.  Just
	make --full-screen behave like auto-conf did.  There's really no advantage to
	having two slightly different fullscreen startup modes.

2013-11-07  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Unify configured hotkey behaviour
	Whether the hotkeys are set through command line, controller or file, we
	should get the same keybinding result (clear unspecified, and enable
	global bindings)

	However, when started from command line arguments, without --hotkey
	argument, it will have basic non-global default bindings.

	https://bugzilla.redhat.com/show_bug.cgi?id=1023447

	file: learn to set secure-attention hotkey

	Rename internal toggle-fullscreen menu accel name
	This avoid confusion with other fullscreen state property

	file: factor a bit setting accelerators code

2013-10-30  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Only set SPICE CA cert if it's non NULL
	We currently reuse the oVirt CA cert for SPICE connection as well,
	but it may not be set. When this happens, we don't want to try to use
	it.

	ovirt: Don't automatically download CA certificate
	The CA certificate to use to authenticate the various hosts in
	an oVirt instance can be fetched from https://ovirt.example.com/ca.crt.
	However, the gio API we are using does not seem to be checking the
	server-side certificate of ovirt.example.com before connecting to it,
	which could lead to man-in-the-middle attacks. Now that the CA
	certificate to use can be specified from the command line using
	--ovirt-ca-file, we can remove this automatic fetching of the CA
	certificate.

	ovirt: Honour oVirt command line options
	libgovirt 0.3.0 and newer can be passed from the commandline a CA
	certificate to use during SSL communications. This commit adds support
	for this option to remote-viewer.

	ovirt: Remove use of deprecated APIs
	ovirt_proxy_fetch_vms/ovirt_proxy_lookup_vm have been deprecated
	in govirt 0.3.0

2013-10-29  Christophe Fergeau  <cfergeau@redhat.com>

	Clean-up spaces before/after URI in connection dialog
	When starting remote-viewer with no argument, a connection dialog
	is shown. If the URI the user types in this dialog as trailing
	or leading spaces, then connection will fail because remote-viewer
	will keep them as if they were significant.
	This commit makes sure we remove spaces at the beginning/end of
	the URI before trying to use it.

	This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1024199

	Fix 'quiting' typo in VirtViewerApp private member

	Fix typo in manpage
	This fixes https://bugzilla.redhat.com/show_bug.cgi?id=823916

2013-10-18  Jonathon Jongsma  <jjongsma@redhat.com>

	Make 'Send' menu items with defined accels work in fullscreen

	Set Spice display to fullscreen if owning window is pending fullscreen
	When you call virt_viewer_window_enter_fullscreen() on a hidden window, it
	didn't actually change its fullscreen state.  Instead, it sets up a map-event
	handler to enter fullscreen after it is shown. When _set_display() is called on
	a window that is pending fullscreen status, it initially sets the fullscreen
	state of the display to FALSE, which can cause an unwanted resize to be sent
	down to the guest. This patch changes the behavior to set its fullscreen state
	to TRUE even before the window is shown.

	Don't freeze property notifications when adding new displays
	Freezing property notifications prevents VirtViewerDisplaySpice from
	synchronizing its fullscreen/auto-resize state with the base class until after
	the notifications are thawed.  During the time that notifications were frozen,
	an allocation happens. The action we take on an allocation event depends on the
	current state of the auto_resize variable, so this can result in an unwanted
	resize.

	VirtViewerDisplaySpice: use enum type for auto_resize
	Instead of storing the auto_resize member as an integer, use the enum, it makes
	it slightly easier for debugging. Also, explicitly initialize the value.

	Avoid extra zoom-level property notifications
	When setting a display's zoom level to the same level as the current setting,
	return early so that we don't notify about a property change

	Don't disable fullscreen if kiosk mode is off
	This conflicts with the --full-screen switch, because if kiosk mode is disabled,
	it sets disables fullscreen mode, which overrides the earlier call to enable
	fullscreen.

2013-10-16  Christophe Fergeau  <cfergeau@redhat.com>

	Make 'Cancel' the default action in exit dialog
	In the 'Do you want to close the session dialog?', the default focus
	is currently on the 'Do not ask me again' checkbox.
	The purpose of this dialog is to make sure that the user does not
	inadvertantly exit remote-viewer, this commit changes the default
	action in this dialog to be 'cancel' rather than switching the
	'Do not ask me again 'checkbox.

	vnc: Clear all displays before creating dummy display
	If VirtViewerSessionVnc::disconnected is called because of an
	authentication failure, we get:

	(remote-viewer:29588): gtk-vnc-DEBUG: vncdisplay.c Disconnected from VNC server

	(remote-viewer:29588): Gtk-WARNING **: Attempting to add a widget with type
	VncDisplay to a container of type VirtViewerDisplayVnc, but the widget is
	already inside a container of type VirtViewerDisplayVnc, please use
	gtk_widget_reparent()

	 #0  0x0000003136e50499 in g_logv (log_domain=0x3f2e13e143 "Gtk",
	     log_level=G_LOG_LEVEL_WARNING, format=<optimized out>,
	     args=args@entry=0x7fffffffd210) at gmessages.c:989
	 #1  0x0000003136e505ef in g_log (log_domain=<optimized out>, log_level=<optimized out>,
	     format=<optimized out>) at gmessages.c:1025
	 #2  0x00000000004230eb in virt_viewer_display_vnc_new (vnc=0x8a8250)
	     at virt-viewer-display-vnc.c:169
	 #3  0x0000000000422191 in virt_viewer_session_vnc_disconnected (vnc=0x8a8250,
	     session=0x86bf00) at virt-viewer-session-vnc.c:113
	 #4  0x00000031372104c7 in _g_closure_invoke_va (closure=closure@entry=0x8ad2b0,
	     return_value=return_value@entry=0x0, instance=instance@entry=0x8a8250,
	     args=args@entry=0x7fffffffd530, n_params=0, param_types=0x0) at gclosure.c:840
	 #5  0x0000003137229749 in g_signal_emit_valist (instance=0x8a8250,
	     signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd530)
	     at gsignal.c:3238
	 #6  0x000000313722a3af in g_signal_emit (instance=<optimized out>,
	     signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
	 #7  0x00007ffff7dbeb5a in on_disconnected (conn=0x8b5aa0, opaque=0x8a8250)
	     at vncdisplay.c:1563
	 #8  0x00000031372104c7 in _g_closure_invoke_va (closure=closure@entry=0x7d55f0,
	     return_value=return_value@entry=0x0, instance=instance@entry=0x8b5aa0,
	     args=args@entry=0x7fffffffd820, n_params=0, param_types=0x0) at gclosure.c:840
	 #9  0x0000003137229749 in g_signal_emit_valist (instance=0x8b5aa0,
	     signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd820)
	     at gsignal.c:3238
	 #10 0x000000313722a3af in g_signal_emit (instance=<optimized out>,
	     signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
	 #11 0x00007ffff7b97308 in do_vnc_connection_emit_main_context (opaque=0x7fffe3c91f40)
	     at vncconnection.c:578
	 #12 0x0000003136e49256 in g_main_dispatch (context=0x681840) at gmain.c:3065
	 #13 g_main_context_dispatch (context=context@entry=0x681840) at gmain.c:3641
	 #14 0x0000003136e495d8 in g_main_context_iterate (context=0x681840,
	     block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
	     at gmain.c:3712
	 #15 0x0000003136e499ea in g_main_loop_run (loop=0x830430) at gmain.c:3906
	 #16 0x0000003f2dfa8f75 in gtk_main () at gtkmain.c:1158
	 #17 0x0000000000429bf3 in main (argc=1, argv=0x7fffffffdcd8) at remote-viewer-main.c:179

	This commit calls virt_viewer_session_clear_displays() before creating a dummy VNC display with
	virt_viewer_display_vnc_new(), which avoids this warning.

2013-09-26  Marc-André Lureau  <marcandre.lureau@gmail.com>

	hotkeys: send modifiers before non-modifier key
	This fixes the "send menu" for hotkeys set with non-modifiers keys. The
	current order of press events is wrong, as it sends first non-modifiers
	keys, and in general ctrl+t will work, t+ctrl will not.

	https://bugzilla.redhat.com/show_bug.cgi?id=846006

2013-09-13  Christophe Fergeau  <cfergeau@redhat.com>

	spec: Enable ovirt support on RHEL7 as well

	spec: Group %define spice together
	The rhel and fedora %define for enabling spice were separated, we
	can group them for better readability.

	spec: Build with gtk+3 on rhel7+

2013-09-10  Jonathon Jongsma  <jjongsma@redhat.com>

	Update hotkeys documentation in manpage
	Describe the expected behavior of the hotkey bindings in a bit more detail.

	Add ability to use 'End' key in hotkeys
	ctrl_key_to_gtk_key() capitalizes all key names not explicitly specified in the
	translation table.  So 'end' becomes 'END', which is not a valid key name
	according to GTK+.  Un-comment out the 'end' item from the table and set it to
	the properly capitalized key name ("End").

	This allows users to specify e.g. "ctrl+alt+end" as a hotkey for
	sending the secure attention sequence.

	Add ability to send Secure attention sequence via keyboard
	On Windows, the OS doesn't allow applications to handle Ctrl+Alt+Del, because
	it's handled by the OS at a much lower level. Although we have a menu item to
	send this sequence to the guest, it's not possible to send via the keyboard (in
	the windows client). So add an alternative key sequence (defaulting to
	Ctrl+Alt+End) to send this sequence to the guest.

2013-08-20  Marc-André Lureau  <marcandre.lureau@gmail.com>

	kiosk: explicit resize window to fullscreen size
	Allow to run the client in kiosk mode with window-manager-less
	environment.

	This was a conditional workaroud on win32. I am making it
	non-conditional to make fullscreen work on non-wm environment. Hence
	I don't see the need to refer explicitely to the bug workaround, since
	it is no longer something that should be removed, even when bgo 652049
	is fixed.

	kiosk: don't open extra monitors
	In kiosk mode, we don't want new monitors windows that wouldn't fit on
	the client monitors to come up.

	kiosk: warn and prevent if app want to quit or window to hide
	These condition shouldn't happen, they are here for debugging
	purposes (ie file a bug if it happens).

	kiosk: add --kiosk-quit option
	In kiosk mode, it's useful to keep the app alive, even if the remote
	session ended for example. Ie, we want to prevent the app from quiting
	itself, even if the remote end closed, lost network, or crashed etc.

	kiosk: teach a window to become kiosk-mode
	Remove the toolbar, disable modifiers.

	kiosk: keep a reference on the toolbar
	We are going to change the container content dynamically, so we need a
	strong reference.

	kiosk: use less verbose window/display status
	We want extra windows to remain blank after connection.

	For example, if the remote has a single monitor, and client has more, we
	don't want extra client monitors to say "Connected to graphic server"
	all the time on other monitors. Instead, we leave them empty/black in
	kiosk mode.

	kiosk: open a window on each client monitor
	Open a window on each client monitor in fullscreen. If the remote
	display has less monitors than the client, the extra client monitors
	will still be used to prevent the user from accessing the windows or
	desktop below, and also to show some status messages when necessary.

	kiosk: add app kiosk option, pass it down to window
	See man page update for details.

	Return existing window in app_window_new()
	Since the returned window is weak, it can already returns existing
	windows (instead of creating one and failing to insert).

	This allows the following set_kiosk() function to create a main window
	before the app constructor is called.

	Define the min/max zoom levels, so all values are sync

	Try to share more GOption code between r-v and v-v

2013-08-14  Marc-André Lureau  <marcandre.lureau@gmail.com>

	remote-viewer: remove -d direct option
	remote-viewer currently doesn't provide automatic ssh tunnels, and even if
	it would, that would be explicit in the url given to remote-viewer (such
	as spice+ssh://...)

	https://bugzilla.redhat.com/show_bug.cgi?id=991261

2013-08-08  Marc-André Lureau  <marcandre.lureau@gmail.com>

	man: add application/x-virt-viewer file format description
	https://bugzilla.redhat.com/show_bug.cgi?id=970825

	spice: show an error dialog if password is invalid
	Error message should show up when input the wrong password for spice
	guests as vnc guests.

	https://bugzilla.redhat.com/show_bug.cgi?id=990883

2013-07-31  Daniel P. Berrange  <berrange@redhat.com>

	Update NEWS for 0.5.7 release

	Update min spice-gtk dep to 0.20
	The spice_smartcard_manager_get_readers method was only added
	in spice-gtk 0.20.

2013-07-31  Christophe Fergeau  <cfergeau@redhat.com>

	Enable smartcard shortcuts when a software reader is present
	At the moment, smartcard keyboard accelerators are always enabled when
	specified, even if no software smartcard reader is in use. This commit only
	enables the smartcard keyboard accelerators when a smartcard reader
	has been found. This fixes rhbz#866944

	Add VirtViewerSession::software-smartcard-reader property
	This property will be set to TRUE when a software smartcard reader
	is available, and FALSE otherwise. This property can only be TRUE
	when using SPICE and when smartcard support is enabled, and when
	both smartcard certificates and smartcard db directory are set.

2013-07-31  Daniel P. Berrange  <berrange@redhat.com>

	Fix two type cast problems
	The g_array_free() return value is 'char *' rather than 'void *'
	so must be explicitly cast to 'uint8 *'.

	The accelerator menu callback data is a GtkMenu rather GtkWidget

2013-07-30  Marc-André Lureau  <marcandre.lureau@gmail.com>

	window: auto-add hot key combos to "Send key" menu
	Auto-add hotkey combos to "Send key" menu. Because they are captured by
	virt-viewer, there is currently no way to pass them to the guest.

	https://bugzilla.redhat.com/show_bug.cgi?id=846006

	window: use dynamically generated menu
	Remove the static Glade menu in favour of the one generated dynamically
	already used for the toolbar.

	window: use a menu item property for key combos
	Allow to add dynamically generated key combos later on.

	This also removes the extra combo lookup, which used to be problematic
	due to translations etc.

	compat: add a few GDK_Key defines

	file: add missing field comment

	Remove restore window location code
	It turns out gdk on win32 already restores properly the window
	size/positon when leaving fullscreen. On non-win32, the WM should
	do the job.

	This solves the first window having too small size after leaving fullscreen:
	https://bugzilla.redhat.com/show_bug.cgi?id=978362

	win32: fix first window un-shrinkable at start
	The fix 0dca975d64fcf0782ec7b3e3bd965f1bcf47c528 make the first window
	unshrinkable right after start. Wait until the window is mapped and
	remove the dirty-resizable state after (win32/gtk2).

	Make zoom-reset a global key binding

	spice: if zoom-level is changed, resize guest, even in fullscreen

	spice: factor out spice resize code from gtk signal handler
	This will allow that part of the code to be called with a different
	resize-guest setting.

	msi: use ProductVersion compatible with Windows Installer
	Windows Installer expects version of form major.minor.build in order to
	perform updates.

	Following Daniel Berrange suggestion, compute a ProductVersion
	compatible with this scheme by shifting virt-viewer "micro" release
	number and adding the extra "buildid".

	wxs: add usb.ids and keyboard-shortcuts.png

	Hide extra monitors that don't fit in auto-conf
	Virt-viewer sometimes opens one too many windows if the guest is
	configured with more monitors than the client (the spice monitor
	configuration request and the current config aren't related, so there is
	some race). Instead, let's hide extra monitors that wouldn't fit in
	auto-conf.

	https://bugzilla.redhat.com/show_bug.cgi?id=985898

	Realize the display when it's added to the window
	Make sure the widget get some dimensions, so if the display is enabled
	before it is actually shown, it will have non-zero size

	Initialize fullscreen_monitor to invalid value
	This makes it easier to debug when a window has no associated monitor.

	Disable auto-conf when user toggle display
	Let's get out of auto-conf mode whenever user tricks display visibility.

	Remove dead function

2013-07-29  Daniel P. Berrange  <berrange@redhat.com>

	Remove typo  \\n in de.po translation

2013-07-29  Ján Tomko  <jtomko@redhat.com>

	Unregister events and callbacks on dispose
	Without these libvirtd reports an error on virt-viewer shutdown:
	virNetSocketReadWire:1377 : End of file while reading data: Input/output
	error

2013-07-11  Christophe Fergeau  <cfergeau@redhat.com>

	virt-viewer: Allow TLS-only SPICE connections
	When trying to connect to a VM which uses SPICE with only a tls port
	set:
	<graphics type='spice' tlsPort='-1' autoport='no' listen='0' keymap='en-us'>
	    <listen type='address' address='0'/>
	</graphics>
	the connection will fail with
	"Cannot determine the graphic address for the guest spice"

	virt_viewer_extract_connect_info() indeed assumes that if no
	non-TLS port is set, then this means we are trying to connect through
	an already open socket, and otherwise the connection fails.
	The presence of a TLS port is only checked when a non-TLS port is set.

	This commit reworks that logic to start by extracting both the non-TLS
	and TLS ports (only when using SPICE for the latter), and by only trying
	to parse the socket to use if none of these 2 ports is set

	This fixes rhbz#982840

2013-07-09  Daniel P. Berrange  <berrange@redhat.com>

	Refresh translations from transifex

2013-07-08  Marc-André Lureau  <marcandre.lureau@gmail.com>

	vnc: implement release_cursor()
	Error reported in:
	https://bugzilla.redhat.com/show_bug.cgi?id=904094

	app: always use maybe_quit()
	Now that closing a window is like quiting, there is no reason to ask or
	skip the confirm dialog depending on how you quit (menu/toolbar/window).

	https://bugzilla.redhat.com/show_bug.cgi?id=905684

2013-07-06  Hans de Goede  <hdegoede@redhat.com>

	usbredir: Don't depend on channel ordering
	Before this patch-set virt-viewer was calling spice_session_has_channel_type(
	session, SPICE_CHANNEL_USBREDIR) from the session-initialized signal handler,

	So as soon as the display channel gets added to the session, the check was
	done. This causes the check to return FALSE for usbredir capable vms if
	the usbredir channel(s) get added to the session after the display channed.

	This patch refactors things to not depend on channel creation order.

2013-07-05  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Use display fullscreen state instead of app state
	This is a recent regression introduced by independant fullscreen windows
	support, which reopened the bug "Resolution higher than native could not
	be set in fullscreen"

	https://bugzilla.redhat.com/show_bug.cgi?id=864929

	window: set display fullscreen state

	display: add fullscreen property
	Now that fullscreen state is no longer global to application, we need to
	have the current state per display

	Remove debugging leftover

2013-07-04  Marc-André Lureau  <marcandre.lureau@gmail.com>

	data/remote-viewer.desktop: Fix missing trailing ;
	data/remote-viewer.desktop: error: value
	"x-scheme-handler/spice;application/x-virt-viewer" for string list key
	"MimeType" in group "Desktop Entry" does not have a semicolon (';') as
	trailing character

2013-07-03  Christophe Fergeau  <cfergeau@redhat.com>

	Use -H instead of -h for the short --hotkeys
	-h conflicts with the short version of --help.

	Fixes rhbz#980846

2013-06-28  Marc-André Lureau  <marcandre.lureau@redhat.com>

	Fix build --without-spice-gtk

2013-06-26  Guido Günther  <agx@sigxcpu.org>

	Use format string
	to fix

	virt-viewer.c: In function 'virt_viewer_connect':
	virt-viewer.c:686:13: error: format not a string literal and no format arguments [-Werror=format-security]
	             g_warning(error->message);

2013-06-11  Christophe Fergeau  <cfergeau@redhat.com>

	ovirt: Set host subject if needed
	For some VMs, setting host subject on SpiceSession is needed to
	be able to connect to it using SPICE/SSL. Until recently, this
	was not exposed in oVirt REST API/libgovirt. Since
	oVirt 3.2/libgovirt 0.1.0, the host subject is available, this
	patch makes use of it.
	This should fix connection to oVirt VMs that were migrated to a
	different host than the one they were started on.

2013-06-04  Christophe Fergeau  <cfergeau@redhat.com>

	spec: Add missing % in %if 0{?fedora}
	This was missing in previous commit.

	spec: Deprecate spice-client
	This has been true for quite some time, it's high time we stop
	building spicec and have remote-viewer replace it on upgrades.

2013-05-27  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Support Spice controller "auto-display-res" flag
	The controller "auto-display-res" flag should be use to reconfigure
	guest to match client configuration. This is what the
	--fullscreen=auto-conf option is already made for.

	https://bugzilla.redhat.com/show_bug.cgi?id=967154

2013-05-24  Marc-André Lureau  <marcandre.lureau@gmail.com>

	man: document auto-conf fullscreen option
	https://bugzilla.redhat.com/show_bug.cgi?id=875559

2013-05-23  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Use a more descriptive FileDescription
	This field is used to invite the user to close running instances, when
	updating the installation with an MSI. "A remote desktop client" isn't
	specific enough, use a VirtViewer specific description.

	build-sys: add debug-helper rule

2013-05-22  Marc-André Lureau  <marcandre.lureau@gmail.com>

	app: move display on client monitors with --full-screen
	There used to be a check to fullscreen the only visible display on
	current monitor, by checking the number of visible monitors. Now that
	fullscreen is independant for each display, and goes on current monitor,
	it's useless.

	However, this code path is still used for the app --full-screen, at
	startup time. And it is still nicer to open the display on respective
	client monitors, rather than all on current monitor.

2013-05-21  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Fix trivial critical
	GLib-CRITICAL **: g_strv_length: assertion `str_array != NULL'

	Committed without review under trivial rule.

2013-05-17  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Show connect dialog again if connection from dialog failed
	https://bugzilla.redhat.com/show_bug.cgi?id=864026

	spice-session: use a more robust signal connect
	The Spice session may outlive the virt-viewer session, due to it's async
	nature. Use the more robust virt_viewer_signal_connect_object() to fix
	delayed potential crashes.

	Move connect dialog to remote-viewer.c

2013-05-16  Marc-André Lureau  <marcandre.lureau@redhat.com>

	Silence unused arguments warnings
	In file included from virt-viewer-session-spice.c:41:
	gbinding.c: In function 'on_source_notify':
	gbinding.c:381: warning: unused parameter 'gobject'
	gbinding.c: In function 'on_target_notify':
	gbinding.c:422: warning: unused parameter 'gobject'
	gbinding.c: In function 'g_binding_init':
	gbinding.c:709: warning: unused parameter 'binding'

	Rename variable, fix gcc warning
	virt-viewer-main.c:61: warning: declaration of 'basename' shadows a global declaration

	Remove the "container" logic used by legacy browser plugin

	window: wait until mapped before fullscreen
	On RHEL6, when starting virt-viewer --full-screen, metacity will
	remaximize & force-fullscreen when leaving fullscreen, which prevents
	user from accessing window titlebar, and end up with an incorrect
	fullscreen state.

	Thanks Owen Taylor for help debugging this:

	<owen> elmarco: So the interesting thing here is that the "legacy" isn't
	       triggered off a configure request to a particular size, mutter seems to
	       constrain the window back to fullscreen size on its own when it sees a
	       change to WM_NORMAL_HINTS
	<owen> commit 4943d79d6844af3f7fc0a15ceadb69d95c4c5c61
	<owen> Author: Peter Bloomfield <PeterBloomfield@BellSouth.net>
	<owen> Date:   Wed Jan 20 10:59:07 2010 -0500
	<owen>     prevent window self-maximisation
	<owen> Is not in rhel6 metacity
	<owen> So probably that's the main difference
	<owen> can you just make your program not fullscreen initially but wait until
	       it's mapped? (gets map-event on the toplevel)
	<elmarco> owen that seems to work
	<owen> I don't have a better solution to offer - sorry for the ugliness (code and
	       initial mapping appearance)

	https://bugzilla.redhat.com/show_bug.cgi?id=876445

	Only fullscreen the new window
	The current code will forcefully reset fullscreen all windows
	when a new window is created

2013-05-14  Marc-André Lureau  <marcandre.lureau@gmail.com>

	window: leave fullscreen on current window
	Since fdaa9b0ca, virt-viewer allows to fullscreen a single window. It
	feels more symetric to leave a single window from fullscreen as well,
	unless the application was started in fullscreen.

2013-05-14  Marc-André Lureau  <marcandre.lureau@redhat.com>

	window: fix send key menu popup position
	Fix send key menu popup position.

	The current code wasn't correctly translating the menu coordinates
	based on the toplevel windows position, it was always using origin 0.

	https://bugzilla.redhat.com/show_bug.cgi?id=913601

2013-05-13  Marc-André Lureau  <marcandre.lureau@gmail.com>

	man: document running remote-viewer without URI
	https://bugzilla.redhat.com/show_bug.cgi?id=882133

	Add -- to seperate program arguments to server in man / --help
	Since some of the arguments are expecting following value, make it more
	explicit in the man and --help that -- can seperate options from server
	name or location.

	https://bugzilla.redhat.com/show_bug.cgi?id=843103

	Allow to fullscreen and position display independently
	Currently, going from window to fullscreen mode changes all display to
	fullscreen and realize automatic positionning on corresponding client
	monitor. However, it allows for much more flexibility to allow entering
	fullscreen on the current monitor each windows seperately. This way the
	user can decide on arbitrary monitor arrangement.

	https://bugzilla.redhat.com/show_bug.cgi?id=558241

	spice: make sure display ready hint is sync after creation
	The ready state can be set during construction time and
	not notified immediately.

	misc: fix typo

	Do not restrict disabling display to != 0
	Virt-viewer hides the display window 0, but doesn't disable the display.
	This is inconsistent with other displays, and prevent the guest OS from
	reconfiguring the main display.

	(for monitor 0 to be really disabled in multi-monitor guest, the agent
	need to support sparse monitor config. If not, the first display windows
	will be reopened to match the new un-sparse configuration)

	Note also the current Linux vdagent crashes when disabling 1st monitor,
	to be solved seperately.

	Related bug:
	https://bugzilla.redhat.com/show_bug.cgi?id=958550

2013-05-03  Marc-André Lureau  <marcandre.lureau@gmail.com>

	remote-viewer: set auto-conf before fullscreen
	If a monitor is already in fullscreen, setting auto-conf to true will
	not move it until it is re-fullscreen

	This was unnoticed, because usually, the first client window is opened
	on the first monitor. Also we may argue than relying on g_object_set()
	property order is lame and fragile, we better split it in two seperate
	calls as this might break upstream.

	https://bugzilla.redhat.com/show_bug.cgi?id=872288

2013-05-01  Daniel P. Berrange  <berrange@redhat.com>

	Sync spec with Fedora

	Post release version bump

	Set PKG_CONFIG_LIBDIR variable for mingw builds
	To avoid pkg-config accidentally falling back to
	native versions, set the PKG_CONFIG_LIBDIR var
	explicitly

	Set a default value for AUTOBUILD_INSTALL_ROOT

	Set MANUFACTURER env variable when running wixl
	The MANUFACTURER env variable is mandatory since it is used
	in the data files. wixl will exit with parser error if it
	is not set

	Add missing include of config.h

	Remove tab from source file

	Refresh translations from transifex

2013-04-30  Marc-André Lureau  <marcandre.lureau@gmail.com>

	file: add delete-this-file option
	In case the virt-viewer setting file is meant to temporary, you may use
	the delete-this-file=1 option to ask the client to remove it, once it
	has been read. This is useful for example in ovirt context, where
	connection settings file are generated and can't be reused.

2013-04-25  Christophe Fergeau  <cfergeau@redhat.com>

	Exit virt-viewer when trying to close any window
	Currently, in multi-screen scenarios, when closing one remote-viewer
	window, the corresponding screen gets disabled in the guest OS.
	This can be confusing as this behaves very differently from
	File/Quit. This commit will exit the whole application when the user
	tries to close one of virt-viewer window.

2013-04-23  Hans de Goede  <hdegoede@redhat.com>

	gtk-3: Rework window size handling
	With gtk-2 we have a special hack, where at first we make the
	virt-viewer-display request its actual size, and then once the window is
	mapped, we request a size of 50x50 to allow the user to resize the window
	to something smaller.

	With gtk-3 >= 3.8.1 this is broken, and the window gets resized to a
	smaller size as soon as we change the size request to 50x50.

	gtk-3 has a much better way of dealing with this in the form of widgets
	being able to specify both a minimal and a natural size. This patch changes
	virt-viewer to use this with gtk-3, instead of the gtk-2 hack.

	ovBox: Make get_preferred_width/height differentiate between min and natural
	gtk-3's widget size negotiation code differentiates between the minimum
	size and the natural size of a widget, fix ovBox to pass this along from
	its underlying widget to its parent.

	virt-viewer-window: cleanup zoom handling
	We've 3 similar zoom function zoom in / out / reset. in / out do not
	schedule a window resize when there is no display, where as reset does,
	which is not consistent. Also there is some duplicate code between them.

	virt-viewer-display: Use virt_viewer_display_queue_resize where possible

2013-04-23  Marc-André Lureau  <marcandre.lureau@gmail.com>

	mingw spec: fix x64 msi location

2013-04-15  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Prepeare notes for release 0.5.6

	msi: build correct 64-bit msi

	msi: fix icon location

	build-sys: generate MSI installer instead of NSIS

	build-sys: regenerate spec files when they change

	spice: forward secure-channels
	This needs spice-gtk >= 0.19.7 and will warn with lower version

2013-04-13  Christophe Fergeau  <cfergeau@redhat.com>

	Remove redundant check, g_strdup(NULL) is allowed
	This also makes the code consistent with its surroundings.

	Fix memory leak on remote-viewer exit
	When exiting remote-viewer, VirtViewepApp::dispose() calls
	virt_viewer_app_set_connect_info() with NULL parameters to free all
	internal fields. However, _set_connect_info() calls
	virt_viewer_app_update_pretty_address() which will always allocate
	a new string even if the fields it's using to fill the string are NULL.
	This commit fixes the leak by checking if the fields have non-NULL
	values before creating the newly-allocated string.

	==24180== 14 bytes in 1 blocks are definitely lost in loss record 540 of 8,671
	==24180==    at 0x4A0887C: malloc (vg_replace_malloc.c:270)
	==24180==    by 0x32D2B0A187: __vasprintf_chk (vasprintf_chk.c:80)
	==24180==    by 0x32D52845AA: g_vasprintf (stdio2.h:210)
	==24180==    by 0x32D52640DC: g_strdup_vprintf (gstrfuncs.c:517)
	==24180==    by 0x32D526417B: g_strdup_printf (gstrfuncs.c:543)
	==24180==    by 0x4136E6: virt_viewer_app_update_pretty_address (virt-viewer-app.c:1681)
	==24180==    by 0x414100: virt_viewer_app_set_connect_info (virt-viewer-app.c:1902)
	==24180==    by 0x4141D0: virt_viewer_app_free_connect_info (virt-viewer-app.c:1910)
	==24180==    by 0x4127C6: virt_viewer_app_dispose (virt-viewer-app.c:1353)
	==24180==    by 0x425488: remote_viewer_dispose (remote-viewer.c:131)
	==24180==    by 0x32D5E14787: g_object_unref (gobject.c:2986)
	==24180==    by 0x4280AF: main (remote-viewer-main.c:323)

2013-04-12  Christophe Fergeau  <cfergeau@redhat.com>

	build-sys: Simplify setting of optional CFLAGS/LDFLAGS
	They don't need to be wrapped inside if HAVE_XXX blocks in Makefile.am
	as when XXX is not available, XXX_CFLAGS and XXX_LIBS will expand to
	the empty string, and thus we can carry them unconditionally in
	our app_CFLAGS/app_LDFLAGS variables.

	Be more consistent in #if/#ifdef use
	Some of the code is checking for spice-gtk/oVirt availability
	by using #ifdef HAVE_XXX, and some of the code is using #if HAVE_XXX.
	As configure.ac only AC_DEFINE() HAVE_XXX when XXX could be found,
	let's use the #ifdef HAVE_XXX form everywhere

	Add oVirt support
	This commit adds support for ovirt:// URIs. It does so by using
	libgovirt to get the spice/vnc connection information through
	oVirt xmlrpc API.

2013-04-11  Marc-André Lureau  <marcandre.lureau@gmail.com>

	build-sys: fix distcheck

2013-04-11  Hans de Goede  <hdegoede@redhat.com>

	po: Remove extraenous backslash, breaking the build

2013-04-08  Daniel P. Berrange  <berrange@redhat.com>

	Refresh translations from transifex

2013-04-05  Hans de Goede  <hdegoede@redhat.com>

	virt-viewer-app: Always allow users to close displays from the displays menu
	Marking display menu items as non sensitive for shown displays make no sense,
	since the user can always close them through the window-manager.

	Having a window for a display shown when the display is not selectable nor
	ready, can happen when the agent goes away. This happens for example when using
	a dual monitor config with a Linux guest and then switching to a text console
	inside the guest.

2013-04-02  Christophe Fergeau  <cfergeau@redhat.com>

	Use translations when looking up key combination to send
	virt_viewer_window_menu_send() compares the label of the menu item
	that was clicked on with a list of known labels to know which
	key combination should be sent to the guest.
	However, the menu label can be translated, but the table doing
	the label -> key combination mapping uses untranslated labels.
	This means the menu item will not send any key combination when
	clicked if translated.
	This can be observed with fr_FR where "Ctrl+Alt+_Del" is translated
	to "Ctrl+Alt+_Suppr".

2013-04-02  Marc-André Lureau  <marcandre.lureau@gmail.com>

	win32: maximize when leaving fullscreen the first time
	On windows, the client window may end up with a non-visible toolbar,
	and overlapping the windows statusbar. To workaround this, let's
	maximize the client the first time leaving fullscreen.

	https://bugzilla.redhat.com/show_bug.cgi?id=916810

2013-03-28  Marc-André Lureau  <marcandre.lureau@redhat.com>

	Do not enable extra monitors until they are explicitely enabled

	Make display menu item sensitive again
	Even if the display has not been explicitely disabled, as long as
	the display is "selectable"

	Fix regression introduced with "Do not disable extra client monitors"
	3b981d953f270662360e5b0c78183924276a18ed

2013-03-26  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Remove gtk_window_present() call
	gtk_window_present() may forcefully call gdk_window_show(), which will
	call ShowWindow(). Although gdk call is not supposed to move the
	window if it's already visible, it does restore the window position on
	Vista+. For example, a snapped window will be moved back to its
	previous position.

	Gtk+ ShowWindow() is currently using SW_SHOWNOACTIVATE, it should
	probably use SW_SHOWNA instead, but that didn't help anyway for a
	snapped window.

	Since virt_viewer_window_show() already ensure the window is visible,
	I am not sure why gtk_window_present() is there in the first place, so
	just remove it.

	https://bugzilla.redhat.com/show_bug.cgi?id=912713

	Add gtk_widget_get_realized() define for old gtk+
	Fix build with gtk < 2.20

	window: keep display size when leaving fullscreen for first time
	If the application was started in fullscreen, window geometry has not
	been saved, since the window was not realized. We can unfullscreen and
	restore 1:1 window to match guest display size with
	virt_viewer_display_queue_resize()

	https://bugzilla.redhat.com/show_bug.cgi?id=916810

	window: save window geometry if the window is realized
	Protect against re-entering fullscreen by moving pre-condition,
	keey the last know window geometry, since it stays valid.

	window: resize to monitor geometry
	This code is potentially bad, we should set size request to the size of the monitor

2013-03-25  Marc-André Lureau  <marcandre.lureau@gmail.com>

	display: make a function to queue the dirty display allocation trick

	app: add get_fullscreen_auto_conf()

2013-03-25  Christophe Fergeau  <cfergeau@redhat.com>

	Reuse existing 'displays' submenu rather than recreating it
	Because of what apparently is a gtk+2 bug , we
	cannot recreate the submenu every time we need to refresh it,
	otherwise the application may get frozen with the keyboard and
	mouse grabbed if gtk_menu_item_set_submenu is called while
	the menu is displayed. Reusing the same menu every time
	works around this issue.

	https://bugzilla.redhat.com/show_bug.cgi?id=922712

2013-03-22  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Do not disable extra client monitors
	This allows reconfiguration of extra monitors whenever the agent is
	back, for example after reboot.

	https://bugzilla.redhat.com/show_bug.cgi?id=918997

	spice: always send auto-conf on agent connection
	Restore the auto-conf client monitor configuration whenever the agent
	is started. This ensures the guest has the expected number of monitors
	enabled when rebooting in fullscreen.

	https://bugzilla.redhat.com/show_bug.cgi?id=918997

2013-03-22  Hans de Goede  <hdegoede@redhat.com>

	virt-viewer-display-spice: Skip monitor info in fullscreen-auto-conf mode
	When we are in fullscreen-auto-conf virt-viewer-session-spice sends a
	monitor-info message to the agent with the exact client monitor info, and
	virt-viewer-display-spice should not override that.

	Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com>

2013-03-22  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Forward directly key events to display
	Even if the display is disabled, we should keep sending key events to
	guest. It can wake up from sleep for instance.

	There is a single widget per window, so we can directly send key
	events there. If the menu is active, it has the grab, so the window
	doesn't receive those key events.

	https://bugzilla.redhat.com/show_bug.cgi?id=870710

2013-03-21  Hans de Goede  <hdegoede@redhat.com>

	virt-viewer-app: Call virt_viewer_app_update_menu_displays on show_hint change
	Since the sensitivity of the display menu-check-items depends on show_hint,
	we need to call virt_viewer_app_update_menu_displays on show_hint change.

	This fixes the following scenario:
	1) Linux guest with upto 4 displays on a single qxl dev
	2) Configure it for 2 displays
	3) Switch to a text-console in the guest (ie send ctrl+alt+F3)
	4) All displays except for disp 1 are now not sensitve in the menu
	5) Switch back to X
	6) The second display in the view->displays menu is still not sensitive

	virt-viewer-display: Document difference between nth display and monitor

	virt-viewer-window: Don't use priv->display when it is NULL
	Add some missing checks for not having a display. Note that where
	functions should not be called (ie menu items should be disabled) I've
	used g_return_if_fail.

	virt-viewer-window: Store the monitor locally
	With commit 81ed9d13 "virt_viewer_window_enter_fullscreen: Pass in monitor for
	fullscreen window" we need a monitor number to determine where to move
	the window when going fullscreen.

	Since the VirtViewerDisplay needs to know the fullscreen monitor number too,
	to determine the fullscreen size it was being stored there. But we don't
	always have a display, leading to errors like:

	(remote-viewer:7996): remote-viewer-CRITICAL **:
	virt_viewer_display_get_monitor: assertion `VIRT_VIEWER_IS_DISPLAY(self)'
	failed

	And to the monitor number not always being stored. This patchset fixes this
	by storing the monitor number inside VirtViewerWindow, and passing it to
	VirtViewerDisplay only when we've a display.

2013-03-20  Christophe Fergeau  <cfergeau@redhat.com>

	Fix compilation with older glib versions
	Recent commits introduced use of g_clear_object and
	g_byte_array_new_take which are only present respectively in glib
	2.28 and 2.32

	Fix compilation with older gtk+
	gtk_widget_get_mapped is only available in gtk+ 2.20, so we need
	a compat definition for older releases.

2013-03-20  Hans de Goede  <hdegoede@redhat.com>

	virt-viewer-display-spice: Use display monitor property for fullscreen size
	When a display is pinned to a certain monitor for fullscreen, it will be moved
	there when going fullscreen. Currently we use gdk_screen_get_monitor_at_window
	to determine which monitor we are on and get the size from that monitor.

	But this is racy, sometimes the size_allocate function runs before the move
	has finished and we get the size from the wrong monitor:
	https://bugzilla.redhat.com/show_bug.cgi?id=918570

	Since if the display is pinned to a certain monitor, the display will always
	end up on that monitor we can avoid the race by simply using that monitors
	size.

	virt_viewer_window_enter_fullscreen: Pass in monitor for fullscreen window
	Rather then passing in a move boolean + coordinates to move the window
	to for fullscreen mode, simply pass in the monitor, so that the underlying
	objects can also use the monitors size to determine the display size.

	Note: pass in -1 to use the monitor the window is currently on.

	virt-viewer-display: Add monitor property

2013-03-13  Marc-André Lureau  <marcandre.lureau@gmail.com>

	spice: update fullscreen state on display creation
	This ensure self->priv->auto_resize has correct value.
	And allow changing guest resolution when started in fullscreen.

	https://bugzilla.redhat.com/show_bug.cgi?id=873298

	Don't override G_LOG_DOMAIN=all
	If the string is different, the GLib log handler will not log all
	messages.

2013-03-13  Daniel P. Berrange  <berrange@redhat.com>

	Delete browser plugin entirely
	The browser plugin code has been effectively unmaintained since
	the day it was merged. There has always been a caveat that the
	code has not been properly audited to ensure it is secure, and
	being unmaintained doesn't give a warm secure feeling. These
	days there are better solutions for the browser which are pure
	HTML5 code, noVNC and SPICE-HTML5.

2013-03-08  Marc-André Lureau  <marcandre.lureau@gmail.com>

	file: add version field, raise an error if incompatibily
	The virt-viewer connection file can now have a version=0.5 field. If
	the virt-viewer version opening the connection doesn't provide at
	least that version, an error is raised with the version required.

	Allow app_initial_connect() to raise an error

	Add virt_viewer_compare_version()

	Add VIRT_VIEWER_ERROR GError

2013-02-21  Hans de Goede  <hdegoede@redhat.com>

	Fix send-key menu not showing in fullscreen with gtk3 (rhbz#913601)
	This should also fix the send-key menu showing in the wrong position with a
	gtk2 build, when the tooltray icon is clicked on the 2nd or higher monitor.

2013-02-13  Daniel P. Berrange  <berrange@redhat.com>

	Post release version bump

	Update for 0.5.5 release

	Update min spice-gtk requirement docs / RPM requires

	Turn off deprecation warnings
	GLib deprecated the GValueArray type without providing an ABI
	compatible replacement. Thus we need to disable dreprecation
	warnings

	../../src/virt-viewer-auth.c: In function 'virt_viewer_auth_vnc_credentials':
	../../src/virt-viewer-auth.c:112:9: error: 'g_value_array_get_nth' is deprecated (declared at /usr/include/glib-2.0/gobject/gvaluearray.h:65): Use 'g_array_index' instead [-Werror=deprecated-declarations]

	Avoid Makefile @ check for data/Makefile.am

	Adapt 'po file' syntax check to look at more files
	The 'po file' check needs to consider various files in data/
	as well as normal sources

	Don't define the same make target/variables twice
	The NSIS patches defined the .PHONY target twice and also
	defined CLEANFILES twice

	Auto-generate AUTHORS file from GIT logs
	Rather than trying to manually keep track of authors,
	just auto-generate the list from GIT logs

2013-02-13  Marc-André Lureau  <marcandre.lureau@gmail.com>

	win: add virt-viewer.msi build rule
	In order to build the MSI, you will need msitools:
	http://ftp.gnome.org/pub/GNOME/sources/msitools/

	The MANUFACTURER environment variable is mandatory and should be set
	to the manufacturer/author of the MSI build.

2013-02-12  Marc-André Lureau  <marcandre.lureau@gmail.com>

	spec: include mime file

	build-sys: add --with-buildid to details build version
	Add a configure argument to append build version details, similar to
	what Daniel B