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
|
libhandy-1 (0.90.0) amber-phone; urgency=medium
* New upstream release
-- Adrien Plazas <adrien.plazas@puri.sm> Fri, 07 Aug 2020 13:23:50 +0200
libhandy-1 (0.85.0) amber-phone; urgency=medium
* New upstream release
-- Adrien Plazas <adrien.plazas@puri.sm> Thu, 30 Jul 2020 08:51:53 +0200
libhandy-1 (0.84.0) amber-phone; urgency=medium
* New upstream release
-- Adrien Plazas <adrien.plazas@puri.sm> Fri, 17 Jul 2020 13:13:25 +0200
libhandy-1 (0.83.0) amber-phone; urgency=medium
* New upstream release
-- Adrien Plazas <adrien.plazas@puri.sm> Thu, 02 Jul 2020 09:37:18 +0200
libhandy-1 (0.82.0) amber-phone; urgency=medium
* New upstream release
-- Adrien Plazas <adrien.plazas@puri.sm> Fri, 19 Jun 2020 09:30:31 +0200
libhandy-1 (0.81.0) amber-phone; urgency=medium
* New upstream release
-- Adrien Plazas <adrien.plazas@puri.sm> Fri, 05 Jun 2020 13:08:25 +0200
libhandy-1 (0.80.0) amber-phone; urgency=medium
[ Guido Günther ]
* Bump API version to 1.0.0.
[ Adrien Plazas ]
* Release libhandy 0.80.0.
* meson: Don't allow to build as a static library.
* meson: Fix disabling the Glade catalog.
* meson: Separate public and private enums.
* doc: Add the Handy 0.0 to Handy 1 migration guide.
* Document CSS nodes and style classes.
* Rename HdyPaginator into HdyCarousel.
Aslo rename HdyPaginatorBox into HdyCarouselBox.
* Remove the deprecated widgets.
Remove HdyArrows, HdyDialer, HdyDialerButton, and HdyDialerCycleButton.
* Drop HdyDialog.
It was deemed not the right way to implement the features we want from it.
* Drop HdyFold.
It has been replaced by a boolean.
* Drop the hdy prefix from CSS node names.
This matches what Adwaita does and will help better blend with it.
* Drop UTF-8 string functions.
They were unused and are not core to what libhandy wants to offer.
* Add HdyViewSwitcherTitle.
A view switcher designed to be used as a window title.
* action-row: Widget overhaul.
Drop the ability to add widgets below, and remove the 'action' buildable
child type and hdy_action_row_add_action(), instead widgets are appended at
the end of the row.
Add the 'activated' signal, and automatically make the row activatable when
is is given an activatable widget.
Define the sizes with CSS, style the title and subtitle with CSS, and rename
the .row-header style class to .header.
* column: Add the .narrow, .medium and .wide style classes.
Allow to easily update style based on the column's clamping state.
* column: Ensure the column is at least as wide as its child.
* combo-row: Make it activatable when it has a bound model.
* combo-row: Popover style overhaul and add a checkmark to the selected row.
* expander-row: Widget overhaul.
Completely redesign the widget. Also prevent gtk_widget_show_all().
* flatpak: Update the example command name and drop useless build options.
* glade: Support Glade 3.36.
Make the catalog support both 3.24 and 3.36, and add a Glade+libhandy
flatpak manifest which uses glade 3.36.
* icons: Add hdy-expander-arrow-symbolic.
* leaflet: Add the .folded and .unfolded style classes.
Allow to easily update style based on the leaflet's fold state.
* leaflet: Default to the 'over' transition type.
This better match the expected behavior or a leaflet.
* leaflet: Avoid divisions by 0, don't implement the unused GtkBuildableIface
and drop the deprecated transition props and types.
* main: Automatically init libhandy.
Add a library constructor to init on startup and remove hdy_init().
Initialize the global styles and icons when the main loop starts.
* preferences-window: Add the 'search-enabled' property.
* preferences-window: Hide filtered-out rows.
* preferences-window: Use HdyViewSwitcherTitle.
* style: Style overhaul.
Use SASS to implement the styles, offer both a shared base theme used as
a fallback and an Adwaita-specific theme, and offer a dark variant.
Ship pre-compiled CSS and dynamically load it depending on the theme.
* style: Add the button.list-button CSS style class.
* style: Add the list.preferences CSS style class.
* swipe-tracker: Fix a leak in …_confirm_swipe().
* swipe-tracker: Use g_clear_pointer() where possible.
* view-switcher-bar: Document relation with HdyViewSwitcherTitle.
* view-switcher-bar: Don't reveal for less than two pages.
* debian: Use HdyKeypad in the Python GI test.
* examples: Add a dark theme toggle button.
* examples: Add a HdyDeck example.
* examples: Bind the switch-rows to their switches.
* examples: Don't set action rows as unactivatable.
* examples: Drop setting the header group focus.
* examples: Give its own header to the search bar demo.
* examples: Make the radio buttons non-focusable.
* examples: Make the resource path match the app ID.
* examples: Put the right header bar in a GtkStack.
* examples: Use HdyViewSwitcherTitle.
* examples: Use the button.list-button CSS style class.
* examples: Vertically align the radio buttons.
[ Alexander Mikhaylenko ]
* Add HdyDeck.
A swipeable container widget allowing to stack widgets.
* Add HdyNavigationDirection.
* Add HdyStackableBox.
A private object easing the implementation of HdyDeck and HdyLeaflet.
* Add HdyWindow.
A free-form window widget with rounded corners.
* Add HdyApplicationWindow.
A free-form application window widget with rounded corners.
* Add HdyWindowHandle.
A bin widget allowing to control a window like with a titlebar.
* Add HdyNothing.
A private empty widget, easing the implementation of free-form window types.
* Add HdyWindowMixin.
A private object easing the implementation of free-form window types.
* Add HdyWindowHandleController.
A private object allowing a widget to control a window like with a titlebar.
* action-row: Don't allow adding null prefixes, and implement remove().
* column: Queue resize after changing maximum width.
* expander-row: Fix forall(), and implement remove().
* glade: Properly support all public widgets and objects.
The glade catalog has been overhauled, fixing support of widgets and objects
already included in the catalog, and adding the newly added ones.
* gtk-window: Add hdy_gtk_window_get_state().
* header-bar: Add a window handle controller.
Also make it register its own window to get the needed events.
* header-bar: Remove some unused variables.
* Introduce hdy-cairo-private.h.
This helps automatically cleanup up Cairo objects.
* leaflet: Add a function for moving back/forward programmatically.
* leaflet: Allow hdy_leaflet_navigate() regardless of swipe properties.
* leaflet: Document visible child functions.
* leaflet: Fix hdy_leaflet_get_can_swipe_forward() docs and some typos.
* leaflet: Make HdyLeaflet a wrapper around HdyStackableBox.
* leaflet: Remove 'todo' vfunc.
* main: Don't use G_SOURCE_FUNC() macro.
* preferences-group: Implement remove().
* preferences-group: Subclass GtkBin instead of GtkBox.
* preferences-page: Implement remove() and forall().
* preferences-page: Subclass GtkBin instead of GtkScrolledWindow.
* preferences-window: Add .titlebar to the headerbar.
* preferences-window: Erase search terms after hiding search bar.
* preferences-window: Implement remove() and forall().
* preferences-window: Name signal callbacks _cb.
* preferences-window: Port to HdyWindow.
* preferences-window: Use crossfade transition.
* preferences-window: Use GDK_EVENT_* constants.
* preferences-window: Use gtk_search_entry_handle_event().
* shadow-helper: Don't set style context parent.
* stackable-box: Avoid use-after-free in remove().
* stackable-box: Check is visible child exists in folded mode
* stackable-box: Disconnect the signal handler after removing a child
* stackable-box: Fix a typo in a comment
* stackable-box: Only count allow-visible=true children for index
* stackable-box: Only hide last visible child when folded
* stackable-box: Remove an extra line in a doc comment
* stackable-box: Skip mode transitions for deck
* stackable-box: Unset last_visible_child after removing or hiding
* swipeable: Use HdyNavigationDirection for begin_swipe() direction
* swipe-tracker: Fix crash in confirm_swipe().
* swipe-tracker: Reject drags in window's draggable areas.
* view-switcher: Extend bin instead of box.
* view-switcher-title: Unset stack before destroying.
* glade: List all the missing public widgets.
List HdyApplicationWindow, HdyAvatar, HdyDeck, HdyKeypad,
HdyViewSwitcherTitle, HdyWindow, and HdyWindowHandle.
* example: Add a HdyWindow demo.
* example: Add .titlebar to all headerbars.
* example: Don't leave an empty autoptr declaration.
* example: Fix a typo on the HdyWindow page.
* example: Fix leaflet/deck typos.
* example: Make the "Go to the next page" row activatable.
* example: Port main window to HdyApplicationWindow.
* example: Port view switcher window to HdyWindow.
* example: Stop using "fold" HdyLeaflet property.
* example: Use a menu model for primary menu.
* example: Use HdyDeck in complex dialog demo.
* example: Use hdy_leaflet_navigate() for back button and clicking rows.
[ Ujjwal Kumar ]
* preferences-window: Cancel search from keyboard.
* Return GtkWidget* with _new().
* Coding style fixes.
* doc: Tell about widget constructor changes.
* example: Resize demo window.
* example: Replace deprecated Dialer with Keypad in example.py.
* example: Add some spacing between widgets.
[ Julian Sparber ]
* Add HdyAvatar.
A widget to visually represent a contact.
[ Felix Pojtinger ]
* doc: Add macOS build instructions.
[ louib ]
* Fix acknowledge typo in build doc.
* Adding new example apps using libhandy.
[ Alberto Fanjul ]
* glade: Adapt to Glade 3.36 API changes.
-- Adrien Plazas <adrien.plazas@puri.sm> Tue, 19 May 2020 09:45:02 +0200
libhandy (0.0.13) amber-phone; urgency=medium
[ Alexander Mikhaylenko ]
* paginator-box: Stop using gtk_widget_set_child_visible()
This function is meant for widgets that don't need to be mapped along with
parent widget, not for scrolled out widgets. Additionally, using it causes
strange side effects with GtkOverlay window z-ordering. Stop using it and
instead track visiblity manually. Also, clarify the code a bit.
* leaflet: Correctly handle 0 duration for swipe snap-back
* swipe-tracker: Don't animate when the distance is 0.
Usually it makes sense to restrict the minimum animation duration. However,
if the progress already matches the end progress, it just causes a delay,
so skip it completely.
[ Julian Sparber ]
* Keypad: Do not show allow typing + when only_digits is true.
The keypad shouldn't allow typing or show + when only_digits
is set to true. Therefore this adds the correct behavior.
[ Guido Günther ]
* Release libhandy 0.0.13
-- Guido Günther <agx@sigxcpu.org> Fri, 27 Dec 2019 12:22:18 +0100
libhandy (0.0.12) experimental; urgency=medium
[ Zander Brown ]
* build: Don't install glade catalogue when used as submodule
[ Alexander Mikhaylenko ]
* swipe-tracker: Grab widget during the gesture
* swipe-tracker: Animate when canceled.
There are some cases where not animating the canceled gesture looks
awkward. For example, when tapping a paginator while it animates.
* swipe-tracker: Don't add GDK_ALL_EVENTS_MASK.
That was a debugging leftover.
* header-group: Fix a leftover GtkSizeGroup mention
* paginator: Delegate hdy_paginator_scroll_to() to scroll_to_full()
This will help to avoid duplicating code in later commits.
* paginator-box: Add hdy_paginator_box_get_nth_child()
* doc: Add 0.0.12 index
* Add HdySwipeable.
A common interface that swipeable widgets should implement and that
HdySwipeGroup and HdySwipeTracker will use.
* paginator: Implement HdySwipeable
* swipe-tracker: Port to HdySwipeable.
Use a HdySwipeable instead of GtkWidget. Remove 'begin', 'update' and 'end'
signals and instead call HdySwipeable methods.
* Add HdySwipeGroup.
An object that allows to synchronize swipe animations of multiple widgets.
This can be used to sync widgets between headerbar and window content area.
* tests: Add HdySwipeGroup test
* glade: Support HdySwipeGroup.
Do the same thing as for HdyHeaderGroup.
* leaflet: Fix the folding sliding children padding.
Sets the children padding of the folding sliding animation depending on
the surface they'll be drawn on.
This doesn't change a thing for the sliding animation, but this will
avoid the children to be moved when snapshotting them, which is needed
for the over and under animations — which will be added in the next
commit — to work correctly.
* leaflet: Only clip visible area during transitions.
Adjust width and height of the clip rectangle to avoid drawing areas
outside of the widget.
* Introduce HdyShadowHelper.
This will be used in the following commits to add shadows to HeyLeaflet
transitions.
* leaflet: Dim bottom children during transitions.
Draw a dimming layer and a drop shadow over bottom child during 'over' and
'under' mode and child transitions.
The dimming, shadow and border styles are defined in CSS. The current style
is based on the similar animation in WebKit.
* swipe-tracker: Reduce base distance for vertical swipes.
Use 300px instead of 400px, otherwise it can be hard to use on small
touchpads.
* paginator-box: Adjust index when removing pages.
Prevent jumping when removing pages to the left of the current one.
* paginator: Support discrete scrolling.
Support scrolling on devices like mice. Switch a page when a scroll event
arrives and add a delay to prevent too fast scrolling.
Use animation duration as a delay, but don't let it go below 250ms, mainly
to ensure it still works with animations disabled.
Fixes https://source.puri.sm/Librem5/libhandy/issues/155
* swipe-tracker: Stop handling trackpoint.
Handle it like discrete scrolling instead.
* leaflet: Mention replacements in deprecations.
Have more useful warnings.
* leaflet: Mark child-transition and mode-transition as deprecated.
Properties are deprecated too, not just accessors.
* leaflet: Ignore deprecations for transition type acccessor declarations.
Since enums are deprecated now, these declarations trigger warnings in
modules that use libhandy. Since these functions are already deprecated
anyway, silence these warnings.
* deprecation-macros: Stop referencing nonexistent macros.
G_DEPRECATED_* and G_DEPRECATED_*_FOR aren't a thing.
* swipe-tracker: Make dragging touch-only.
Since HdyPaginator has mouse scrolling now, there's no need to have
dragging available on non-touch devices, so drop it.
* paginator-box: Wrap children into child info structs.
This will allow to carry additional data for them later.
* paginator-box: Put children into their own GdkWindows.
This allows to stop doing size allocation on each frame, and will allow
to implement drawing cache in the next commit.
* paginator-box: Implement drawing cache.
Keep a Cairo surface for each child. Paint children onto their surfaces,
then compose the final image. Instead of painting the whole children,
track invalidations and paint only changed parts. This means most paginator
redraws don't involve any child redraws. This should significantly speed
up scrolling when children are expensive to draw.
* paginator-box: Add animation-stopped signal.
This will be used in the next commit to add page-changed signal to
HdyPaginator.
* paginator: Add page-changed signal.
Allows to know when the current page has changed, this can be used to
implement "infinite scrolling" by connecting to this signal and amending
the pages.
* leaflet: Allocate last visible child during child transitions.
Fixes one cause of https://source.puri.sm/Librem5/libhandy/issues/85
* keypad: Immediately assign g_autoptrs to NULL.
Avoid compile-time warnings.
* paginator-box: Create window with correct dimensions.
It doesn't matter because it gets overridden later, but still fix it.
* example: Remove leftover adjustments.
See aa7a4eca68d8c75ff6347202c90515c5aea30c64
* paginator-box: Fix hdy_paginator_box_get_nth_child()
Return the actual widget, not child info struct.
A leftover from 710bcaacb97bdfac6061726a77665235279d4fe6
* leaflet: Use provided duration for child transitions.
Actually use the value from the function argument.
* swipeable: Provide swipe direction when preparing.
This will allow to restrict the swipe to only one direction for leaflet.
* swipeable: Distinguish direct and indirect swipes.
Add "direct" parameter to hdy_paginator_begin_swipe() and the corresponding
vfunc, providing a way to tell apart swipes started via HdySwipeGroup sync.
This will be used to have leaflet in headerbar that's not swipeable, but
can still animate along with leaflet in content area.
* swipe-tracker: Skip swipes in wrong direction.
Prevent swiping if the direction doesn't match tracker orientation. This
allows to have GtkScrolledArea inside or around swipeable widgets without
swipes taking over scrolling.
* leaflet: Add allow-visible child property.
This will be used to prevent swiping to widgets such as separators.
* leaflet: Add properties for controlling swipes.
This will allow to selectively enable back and/or forward swipes for
HdyLeaflet. By default swipes are disabled.
* leaflet: Implement back/forward swipe gesture.
Implement HdySwipeable and use HdySwipeTracker to detect back/forward
swipes.
Use can-swipe-back and can-swipe-forward properties for controlling swipes,
and use allow-visible child property to exclude certain widgets, such as
separators, from the gesture.
Multiple leaflets can be synced via HdySwipeGroup.
* example: Enable back swipe in the leaflet.
Set can-swipe-back=true on the content leaflet, allow-visible=false for
separators and use HdySwipeGroup for syncing leaflets rather than binding
visible child name.
* leaflet: Queue relayout after child transition ends.
Prevents close button from occasionally disappearing after swipes.
* swipe-tracker: Add 'allow-mouse-drag' property
* paginator: Add 'allow-mouse-drag' property.
Usually we don't want this, because there's scrolling. However, phosh
still needs this for lockscreen, hence optionally allow it.
* paginator-box: Register window before setting parent.
Prevents newly created widgets from reusing parent's window.
Fixes a regression from e6a477492de6cc4d5107147b9724980ffd7343ea
Fixes https://source.puri.sm/Librem5/libhandy/issues/165
* swipeable: Fix signal names for docs
* swipe-group: Don't escape tag names for docs
* leaflet: Deprecate old transition type properties.
They did already have the deprecated flag, but weren't shown as deprecated
in docs.
* Update @See_also for swipeable widgets.
Mention HdyLeaflet in HdySwipeable, HdySwipeGroup and HdySwipeTracker.
[ louib ]
* Fix typo in README.
* Remove casts requiring increased alignment.
Some casts were increasing the required alignment in
callbacks, raising warnings when compiled on arm with gcc.
[ Guido Günther ]
* Add deprecation macros.
The macros are libhandy internal (should not be used in application
code) and are as such marked with a '_'. This also makes gtk-doc
happy since it treats it as a public symbol otherwise.
* Deprecate all hdy-dialer{-cycle}-button api.
It's considered HdyDialer internal API
* HdyDialer: Remove excessive '*'
* build: Install new header file.
Fixes: ac94e649aac540c1ecaa9df98364049e182605cc
* Release libhandy 0.0.12
[ Adrien Plazas ]
* leaflet: Clip children when drawing unfolded.
This will clip children to ensure they don't get drawn on or under the
visible child, which will allow to create mode transition animations
where other children appear to be drawn under the visible child.
* leaflet: Clip the end surface when drawing folded.
This will clip the end surface to ensure it doesn't get drawn on or
under the visible child, which will allow to create mode transition
animations where other children appear to be drawn under the visible
child.
* leaflet: Add the over and under mode transition animations.
This allows the mode transition animation to match the semantic of the
over and under child transitions.
* leaflet: Unify the transition types.
Add the HdyLeafletTransitionType enumeration and the transition-type
property to define both the mode and child transitions, as having them
different makes no sense and could lead to spatialization issues.
This new type doesn't offer a crossfade transition on purpose as it was
deemed inappropriate for the leaflet, for which the position of the
children is inherently important.
This also deprecates the two previous properties and their respective
types.
Fixes https://source.puri.sm/Librem5/libhandy/issues/92.
* leaflet: Remove the over and under mode transitions.
There is no point in adding enum values and deprecating them in the same
version, so let's just remove them. The animations are still available
via the newly added HdyLeafletTransitionType type and the
transition-type property, so this also encourages migrating to the new
API.
* examples: Add a Leaflet page.
This adds a page to demo the leaflet transitions, drops usage of the
deprecated leaflet transition types and properties, and defaults to the
'over' transition to demo it and its shadow effect.
* Deprecate HdyArrows.
As far as we know, nothing uses it anymore and it's not part of our
latest designs.
Fixes https://source.puri.sm/Librem5/libhandy/issues/126.
* examples: Drop the Arrows page.
HdyArrows is now deprecated, so we don't want to promote it.
* leaflet: Drop some old TODOs.
We just don't need them anymore.
* leaflet: Add Alexander Mikhaylenko's copyright.
His work on this class is far from negligeable, let's reflect that in
the copyright.
* view-switcher-button: Fix the action bar hover style.
This makes the buttons out of a header bar slightly lighter when hovered
and the window is focused. Previously they were the same color as the
unfocused buttons and the action bar, making them look less good and
harder to use.
Fixes https://source.puri.sm/Librem5/libhandy/issues/147.
[ Julian Sparber ]
* Keypad: Add a general keypad.
This is based on HdyDialer, but with more flexible API.
The new Keypad allows to set a custom Widget to the left/right
lower corner, replacing the original widget.
The Keypad extents directly GtkGrid which exposes all grid properties.
It also allows to replace/change every button in the Keypad, just like
in GtkGrid.
It also adds a GtkEntry which can be used as the focus widget,
it has the key-press-event already connected and it grabs focus once
it's mapped. The Entry isn't part of the keypad, it's just a
convenienced way to create a Entry, you would expect to use with a
keypad.
* Tests: add keypad tests
* Docs: add docs and demo for keypad
* Dialer: deprecate hdydialer
* HdyDialer: Remove it from the demo.
Remove the dialer from the demo since it's deprecated.
* HdyDialer: Deprecate objects related to dialer.
HdyDialerButton, HdyDialerCycleButton and HdyDialer objects where not
deprecated, only there methods were.
[ Oliver Galvin ]
* README: minor punctuation fixes, and update Fractal URL to GNOME namespace
* docs: Consistently use full sentences in short descriptions.
* docs: Add sections about building and bundling to the 'Compiling with
libhandy' page, and generally tidy the page. * docs: Update copyright
year range.
* meson: fix configure-time warning - Use the 'pie' kwarg instead of passing
'-fpie' manually. Also bump Meson to 0.49.0, when the pie kwarg was added.
* meson: Tidy build files. Use / operator (added in Meson 0.49.0) instead of
join_paths. Use package_api_name variable to avoid repetition.
* style: Remove odd tabs as per 'Coding Style' in HACKING.md, and fix typo.
[ Ting-Wei Lan ]
* keypad: Fix compilation error for clang.
Function hdy_keypad_button_get_digit is declared to return 'char' in
src/hdy-keypad-button-private.h but defined to return 'const char' in
src/hdy-keypad-button.c. This is not allowed by clang. Since it is
unusual to mark a return value itself as const, just drop const here.
-- Guido Günther <agx@sigxcpu.org> Thu, 12 Dec 2019 09:49:04 +0100
libhandy (0.0.11) experimental; urgency=medium
[ Adrien Plazas ]
* dialer: Work around GtkGrid row homogeneity.
Puts the buttons into a vertical size group rather than making the rows
homogeneous. This prevents a bug from GtkGrid to make the buttons too
tall when the action buttons are hidden.
* dialog: Don't warn if the titlebar isn't a GtkHeaderBar.
Using another widget is perfectly valid, so we should just return
instead.
* dialog: Refactor the transient-for workaround.
This will make introducing new properties simpler.
* dialog: Add the narrow property.
* header-bar: Show a back button in a narrow HdyDialog.
If a header bar is in a narrow HdyDialog, it will display a back button
at its start in place of its usual window decorations.
* examples: Add a complex HdyDialog example.
This shows how to use HdyHeaderBar and HdyDialog to create a more
complex adaptive dialog.
* header-bar: Show a back button on small non-sovereign windows.
This will show the back button not only in small HdyDialog but in all
small windows that are not sovereign.
* meson: Set the log domain.
This makes the log messages from libhandy look like `Handy-Debug: …`
rather than `** Debug: …`, making them easier to distinguish.
* README.md: Update the documentation URL.
It's on the developer.puri.sm now.
* Add animation helpers.
Add various animation helpers to avoid coyping them around.
* squeezer: Support animation disablement.
This will animate the child transitions only if animations are enabled.
* preferences-group: Use the h4 style class.
Use the h4 style class instead of hardcoding the bold style for the
preferences group title, and implement a fallback making the font bold.
This is needed by elementary to use their own style.
* animation: Make some functions public.
This makes hdy_get_enable_animations() and hdy_ease_out_cubic() public.
* view-switcher-button: Don't make transparent on hover.
This doesn't make the background transparent when hovering and apply the
same style as non-hovered buttons on hovered buttons in a headerbar.
[ Gabriele Musco ]
* Added Unifydmin to Python 3 examples
* Add HydraPaper to Python 3 examples
[ Ting-Wei Lan ]
* Don't require GNU sed
[ Jeremy Bicha ]
* Debian packaging improvements
[ Guido Günther ]
* debian: Ship example program and files
* Release libhandy 0.0.11
[ Alexander Mikhaylenko ]
* search-bar: Hide start and end boxes instead of close button.
* glade: Update catalog dtd.
* Add new HdySwipeTracker widget.
This will be used to implement swipes in new widgets.
* Add new HdyPaginator widget.
Display set of pages with swipe based navigation.
[ David Boddie ]
* Deploy documentation for the master branch
[ Michael Catanzaro ]
* glade: Don't install glade files outside build prefix.
-- Guido Günther <agx@sigxcpu.org> Tue, 27 Aug 2019 12:50:01 +0200
libhandy (0.0.10) experimental; urgency=medium
[ Adrien Plazas ]
* .editorconfig: Add CSS
* arrows: Refresh HdyArrowsDirection docs.
This moves the HdyArrowsDirection documentation to the C file and
removes the final period from the values definitions, like for all other
enums documentations.
* docs: Add section for new symbols in 0.0.10
* view-switcher: Fix stack children callbacks.
This fixes the callbacks when a child is added or removed from the view
switcher's stack.
* view-switcher-button: Make an active button's label bold.
This makes the view switcher easier to read.
It uses multiple labels with or without the specific style rather than a
single label with the style toggled on and off to ensure the size
requests don't change depending on whether the button is active or not.
* leaflet: Synchronize paired notifications.
This ensures users can't react to a visible child change notification or
a fold change notification before we finish emitting all related
notifications.
* Add HdySqueezer.
This can be used to automatically hide a widget like a HdyViewSwitcher
in a header bar when there is not enough space for it and show a title
label instead.
Fixes https://source.puri.sm/Librem5/libhandy/issues/100
* examples: Use a HdySqueezer.
Use a HdySqueezer in the view switcher window to show either the view
switcher in the header bar, or a window title and a view switcher bar
depending on the window's width.
* view-switcher-button: Allow to elipsize in narrow mode.
This will be used to let HdyViewSwitcherBar reach even narrower widths.
* view-switcher: Allow to elipsize in narrow mode.
This will be used to let HdyViewSwitcherBar reach even narrower widths.
* view-switcher-bar: Ellipsize in narrow mode.
This lets HdyViewSwitcherBar reach even narrower widths.
* view-switcher-button: Use buttons borders in size.
When computing the size of the button, take the button's border into
account.
Fixes https://source.puri.sm/Librem5/libhandy/issues/108
* view-switcher-bar: Sort properties by alphabetical order.
This fixes a code style error and will avoid to propagate it as the file
gets edited.
* view-switcher-bar: Add margins.
Add margings around the view switcher to better match the mockups.
* view-switcher: Define a minimum natural width.
This prevents the buttons from looking terribly narrow in a wide bar by
making them request a minimum good looking natural size.
* Add HdyPreferencesRow.
This will be used as the base row for the preferences window, offering
data needed to search a preference entry.
* action-row: Extend HdyPreferencesRow.
This allows to use HdyActionRow and its derivatives as preferences rows.
* Add HdyPreferencesGroup.
This will be used to group preferences rows as a coherent group in a
preferences page.
* Add HdyPreferencesPage.
This will be used to group preferences as pages in a preferences window.
* Add HdyPreferencesWindow.
This allows to easily create searchable preferences windows.
Fixes https://source.puri.sm/Librem5/libhandy/issues/101
* examples: Add a HdyPreferencesWindow example
* Add private GtkWindow functions.
Add the private GtkWindow functions _gtk_window_toggle_maximized()
and gtk_window_get_icon_for_size() which will be used in the next commit
by HdyHeaderBar.
* Add HdyHeaderBar.
Fork GtkHeaderBar to help fixing shortcomings caused by adaptive designs
or coming from GtkHeaderBar itself as features are not accepted into GTK
3 anymore.
Fixes https://source.puri.sm/Librem5/libhandy/issues/102
* examples: Use HdyHeaderBar in the View Switcher page.
This correctly centers the view switcher and demoes HdyHeaderBar.
* view-switcher: Recommend to use a HdyHeaderBar.
This will help users of HdyViewSwitcher to know how to make it look
good in a header bar.
* examples: Drop un unused signal connection.
This avoids a run time warning.
* docs: Add images for HdyViewSwitcher and HdyViewSwitcherBar
* preferences-window: Strictly center the header bar.
This makes the header bar's widgets look better by ensuring they are
always centered, even if it means they will be narrower.
* conbo-row: Make the popover relative to the arrow.
Consistently point to the arrow rather than sometimes to the arrow and
sometimes to the invisible box containing the current value.
* combo-row: Add HdyComboRowGetName.
Replace HdyComboRowCreateLabelData by HdyComboRowGetName and keep a
reference to in the combo row to allow accessing it externally. It will
be needed to automatically handle converting the value into a name to
display as the subtitle of the row.
* combo-row: Add the use-subtitle property.
Allow to display the current value as the subtitle rather than at the
end of the row.
Fixes https://source.puri.sm/Librem5/libhandy/issues/95
* header-bar: Render margins and borders.
Fixes https://source.puri.sm/Librem5/libhandy/issues/121
[ Zander Brown ]
* Add HdyViewSwitcherButton.
This will be used in the next commit by HdyViewSwitcher.
* Add HdyViewSwitcher.
This more modern and adaptive take on GtkStackSwitcher helps building
adaptive UIs for phones.
Fixes https://source.puri.sm/Librem5/libhandy/issues/64
* Add HdyViewSwitcherBar.
This action bar offers a HdyViewSwitcher and is designed to be put at
the bottom of windows. It is designed to be revealed when the header bar
doesn't have enough room to fit a HdyViewSwitcher, helping the windows
to reach narrower widths.
* examples: Add the View Switcher page.
This example presents a HdyViewSwitcher and a HdyViewSwitcherBar in
their own window. Currently both are visible at the same time, a later
commit should make only one visible at a time, depending on the
available width.
[ Aearil ]
* Update components list for the external projects in the README
[ Mohammed Sadiq ]
* dialog: Fix typos in documentation
* demo-window: Fix typo in property name
[ Oliver Galvin ]
* Change GTK+ to GTK
* Fix a few typos and grammatical mistakes
* Expand the visual overview.
Add more widgets and a comparison of HdyDialog
[ Guido Günther ]
* Release libhandy 0.0.10
* HACKING:
- Properly end emphasis
- Document extra space after function calls
* ci improvements
- Split doc build to different stage
- Split out unit tests to different stage
- Drop coverage on Fedora. It's not evaulated anyway
- Split out build commands
- Drop tests from static build
- Move Debian package to packaging stage
* gitlab-ci: Archive the build debs
* HdyArrows:
- Fix obvious documentation errors
- Only redraw widget if visible
- Don't emit notify signals on unchanged properties
- Redraw arrows on property changes
* HdyDemoWindow: Don't schedule arrow redraws
* Add suppression for ASAN
* tests-dialer: cleanups
* HdyDialer: Make show_action_buttons match the initial property default
-- Guido Günther <agx@sigxcpu.org> Wed, 12 Jun 2019 17:23:21 +0200
libhandy (0.0.9) experimental; urgency=medium
[ Benjamin Berg ]
* glade: Mark ActionRow properties as translatable/icon.
Without this, it is impossible to set the translatable flag in glade,
making it hard to create proper UI definitions.
[ Bastien Nocera ]
* Use correct i18n include.
From the Internationalization section of the GLib API docs:
In order to use these macros in an application, you must include
<glib/gi18n.h>. For use in a library, you must include <glib/gi18n-lib.h>
after defining the GETTEXT_PACKAGE macro suitably for your library
* Fix broken translations in all libhandy applications.
Translations in all the applications using libhandy would be broken
after a call to hdy_init() as it changed the default gettext translation
domain.
See https://gitlab.gnome.org/GNOME/gnome-control-center/issues/393
[ Adrien Plazas ]
* examples: Update the Flatpak command.
The command should changed with the demo application name.
* leaflet: Improve the slide child transition description.
This makes the slide child transition description match the one of the
slide mode transition one.
* action-row: Upcast self to check the activated row.
Upcast the HdyActionRow rather than downcasting the activated row to
compare their pointers. This prevents error messages when a sibbling row
that isn't a HdyActionRow is activated. Also use a simple cast rather
than a safe cast as it is there only to please the compiler and is
useless for a pointer comparison and it's faster.
* Drop 'dialer' from the UI resources path.
This makes the UI file paths more correct and simpler.
* leaflet: Add hdy_leaflet_stop_child_transition()
This makes the code clearer by encapsulating child mode transition
cancellation into its own function.
* leaflet: Factorize bin window move and resize.
This ensures we move or resize it consistently.
* leaflet: Move the bin window on child transition cancellation.
This avoids the children to be drawn out of place when a mode transition
is triggered while a child transition was ongoing.
Fixes https://source.puri.sm/Librem5/libhandy/issues/93
* Add HDY_STYLE_PROVIDER_PRIORITY.
Add and use HDY_STYLE_PROVIDER_PRIORITY to help ensuring custom styling
is applied consistently and correctly accross all the library.
* expander-row: Move the custom style to a resource.
This makes the code cleaner, easier to read, and simnpler to modify.
* combo-row: Move the custom style to a resource.
This makes the code cleaner, easier to read, and simnpler to modify.
* expander-row: Add the expanded property.
This can be used to reveal external widgets depending on the state of
the row.
[ Guido Günther ]
* debian: Test GObject introspection.
This makes sure we have the typelib file installed correctly.
* debian/tests: Drop API version from include.
This makes sure we respect pkg-config's findings.
* examples: Add API version to demo name.
This makes different versions co-installable.
* build: Don't hardcode API version
* Release libhandy 0.0.9
-- Guido Günther <agx@sigxcpu.org> Thu, 07 Mar 2019 12:37:34 +0100
libhandy (0.0.8) experimental; urgency=medium
[ Adrien Plazas ]
* examples: Use the "frame" stylesheet on listboxes.
This avoids using GtkFrame where it's not relevant and shows the
example.
* examples: Refactor the Dialer panel.
This makes it more in line with the other panels.
* examples: Refactor the Arrows panel.
This makes it more in line with the other panels.
* examples: Fix the Lists panel column width.
We were accidentally using the widths from the Column panel.
* examples: Fix a typo
* action-row: Add the row-header style class to the header box.
This will allow to style the row's header separately.
* expander-row: Add the expander style class.
This will allow to style the row's padding appropriately to be used as
an expander.
* README.md: Add GNOME Settings and GNOME Web to users
* meson: Don't install if it's a static subproject
* title-bar: Drop useless definitions and inclusions.
These were copy and paste errors.
* README.md: Add gnome-bluetooth as a user
* examples: Rename the example program to handy-demo.
This also renames the type and files to match the new name.
Fixes https://source.puri.sm/Librem5/libhandy/issues/81
* meson: Fix the examples option description.
Fixes https://source.puri.sm/Librem5/libhandy/issues/82
* expander-row: Animate the arrow rotation.
Because we can!
* leaflet: Support RTL languages when unfolded.
Fixes https://source.puri.sm/Librem5/libhandy/issues/86
[ Benjamin Berg ]
* Add -s -noreset to xvfb-run calls.
Xvfb will close when the last client exists, which may be the cause of
sporadic test failures. Add -s -noreset to the command line to prevent
this from happening.
* combo-row: Fix memory leak
g_list_model_get_item returns a referenced GObject which needs to be
unref'ed.
* combo-row: Fix memory leak in set_for_enum
* value-object: Add an object to stuff a GValue into a GListModel.
This is useful to store arbitrary (but simple) values inside a
HdyComboRow.
* example: Use value object rather.
The code was storing strings in labels, just to extract them again.
Also, the code was leaking the labels as g_list_store_insert does not
sink the reference of the passed object.
* tests: Add tests for HdyValueObject
* action-row: Destroy the contained widget.
The GtkBox that contains everything is an internal child which must be
destroyed explicitly.
[ Guido Günther ]
* run.in: Set GLADE_MODULE_SEARCH_PATH as well.
This makes sure we're using the freshly built module when running
from the source tree.
* Release libhandy 0.0.8
[ Pellegrino Prevete ]
* README: added Daty to example apps
* build: Force default libdir location for libhandy target on Windows to
keep MinGW compatibility
[ Alexander Mikhaylenko ]
* leaflet: Add missing check for moving child window.
Prevent child window from moving in transitions that don't require it,
instead just resize it.
Fixes https://source.puri.sm/Librem5/libhandy/issues/80
* leaflet: Drop commented out 'under' child transition.
It's going to be replaced with the actual implementation in the next
commit.
* leaflet: Make 'over' child transition symmetric.
Implement 'under' child transition animation, use it for 'over' for right
and down directions, matching 'over' description.
Fixes https://source.puri.sm/Librem5/libhandy/issues/79
* leaflet: Add 'under' child transition.
Use same animations as 'over', but with reversed directions.
Documentation descriptions by Adrien Plazas.
Fixes https://source.puri.sm/Librem5/libhandy/issues/84
* leaflet: Clip bottom child during child transitions.
Prevents bottom child from being visible through the top one during 'over'
and 'under' child transitions.
[ maxice8 ]
* meson: pass -DHANDY_COMPILATION to GIR compiler.
Fixes cross compilation of GIR in Void Linux.
-- Guido Günther <agx@sigxcpu.org> Fri, 15 Feb 2019 11:27:35 +0100
libhandy (0.0.7) experimental; urgency=medium
[ Adrien Plazas ]
* glade: Add row widgets to the widget classes. They are missing and don't
appear in Glade.
* glade: Add that HdySearchBar. It's in libhandy since 0.0.6
* action-row: Handle show_all()
This avoids an empty image, an empty subtitle and an empty prefixes box
to be visible when calling show_all(), as they are handled by the row
itself.
* action-row: Add the Since annotation to properties
* example: Make the row with no action non-activatable
* tests: Init libhandy.
This ensures we run the test the same way applications are expected to
run libhandy.
* docs: Add section for new symbols in 0.0.7
* action-row: Add the activatable-widget property.
This allows to bind the activation of the row by a click or a mnemonic
to the activation of a widget.
* action-row: Chain up the parent dispose method
* combo-row: Release the model on dispose.
This avoids errors when trying to disconnect signals on finalization.
* combo-box: Rename selected_position to selecxted_index.
This will better match the name for its accessors which will be added in
the next commit.
* combo-row: Add the selected-index property.
This allows to access the selected item.
* main: Explicitely load the resources in hdy_init()
This is mandatory to use resources of a static version of libhandy, and
is hence mandatory to allow to build libhandy as a static library.
* meson: Bump Meson to 0.47.0.
This is required to use the feature option type in the next commit.
* meson: Make introspection and the Glade catalog features.
This avoids having to disable them when their dependencies aren't
available and it will allow to disable them properly when libhandy will
be allowed to be built as a static library in the next commit.
* meson: Allow to build as a static library.
This also disables the Glade catalog as it doesn't work with a static
libhandy.
* action-row: Drop pointers to internals on destruction.
This avoids crashes when trying to access pointers to already dropped
widgets.
Fixes https://source.puri.sm/Librem5/libhandy/issues/69
* expander-row: Drop pointers to internals on destruction.
This avoids crashes when trying to access pointers to already dropped
widgets.
Fixes https://source.puri.sm/Librem5/libhandy/issues/69
* examples: Make the Dialog section look nicer.
This improves the spacing, adds and icon and adds a description to the
Dialog section.
* dialog: Close when pressing the back button.
Close the dialog instead of destroying it when clicking the back button.
This is the same behavior as when pressing escape or clicking the close
button and allows the dialog to be reused as some applications like to
do.
Fixes https://source.puri.sm/Librem5/libhandy/issues/70
[ louib ]
* Add GNOME Contacts as example
[ Guido Günther ]
* HdyComboRow: Don't use g_autoptr for GEnumClass
g_autoptr for GEnumClass was added post 2.56, so using it makes it
harder for people to package for distros. Not using g_autoptr there
doesn't make the code much less readable.
* HdyDialer: Don't use class method slot for 'delete'
We used the one of 'submit' so far due to a c'n'p error. (Closes: #67)
* HdyComboRow: hdy_combo_row_get_model: Add missing scope annotation
* gitlab-ci: Build static library.
The library build is sufficiently different that we want to run the
build and tests.
* Release libhandy 0.0.7
[ David Cordero ]
* Update documentation regarding build dependencies
[ Zander Brown ]
* Implement HdyDialog, an adaptive GtkDialog
https://source.puri.sm/Librem5/libhandy/issues/52
* example: Add to example application.
Silly simple demo of HdyDialog.
[ Benjamin Berg ]
* combo-row: Rework selected-index property setting and notification.
The notify::selected-index signal was not selected in most cases. Rework
the selection handling to ensure that it is always emited when it changes
or if the module is replaced.
Also fixed are a few checks on whether the selection index is valid.
-- Guido Günther <agx@sigxcpu.org> Fri, 18 Jan 2019 14:38:30 +0100
libhandy (0.0.6) experimental; urgency=medium
[ Adrien Plazas ]
* Set relevant ATK roles.
This will help the widgets to be more accessible.
* doc: Rephrase the unstability ack section.
Rephrase the documentation explaining how to include libhandy in a way
that could include other languages such as Vala.
* doc: Document the unstability ack for Vala
* Guard header inclusions with #pragma once.
This standardizes the header inclusion guards to #pragma once, which
shouldn't be a problem as we already were using it in some files.
* hacking: Document header inclusion guard preferences
* example: Disable more libhandy options in Flatpak.
Disable generation of the GObject Introspection files, the VAPI and the
tests in the example Flatpak as they are not used by it.
* arrow: Use a measure() method.
This will simplify porting to GTK+ 4.
* column: Use a measure() method.
This will simplify porting to GTK+ 4.
* dialer-button: Use a measure() method.
This will simplify porting to GTK+ 4.
* leaflet: Use a measure() method.
This will simplify porting to GTK+ 4.
* init: Make the arguments optional.
Annotate the arguments of hdy_init() with (optional) to specify that NULL
arguments are valid. This also replaces the deprecated (allow-none) by
(nullable) to specify that the array pointed at by argv can be NULL.
* init: Document that libhandy can't be reinitialized
* Normalize and document private header guards
* Add HdySearchBar.
This is similar to GtkSearchBar except it allows the central widget
(typically a GtkEntry) to fill all the available space. This is needed to
manage an entry's width via a HdyColumn, letting the entry (and by
extention the search bar) have a limited maximum width while allowing it to
shrink to accomodate smaller windows.
* example: Add the 'Search bar' page.
This adds a demo of HdySearchBar.
* example: Put the content in a scrolled window.
This ensures the example can fit windows of any height. This also makes
the stack containing the content non vertically homogeneous so the
scrollbar appears only on examples needing it, while keeping it
horizontally homogeneous for to keep when the leaflets will be folded
consistent.
* build: Set the shared object install directory.
This is required for Meson subprojects to work as intended.
* build: Do not install hdy-public-types.c.
There is no point in installing this generated C file.
* leaflet: Allow editing the children list when looping through it.
This avoids potential crashes when destroying a leaflet and this avoids
leaks as not all children where looped through as the children list was
edited while being looped through when destroying the leaflet. This fixes
https://source.puri.sm/Librem5/libhandy/issues/42.
* Add hdy_list_box_separator_header()
This list box header update function is commonly used by many applications
and is going to be used by HdyComboRow which is going to be added to
libhandy later.This makes it available for everyone.
* examples: Use hdy_list_box_separator_header()
This makes the code simpler.
* Add HdyActionRow.
This implements a very commonly used list box row pattern and make it
convenient to use. It is going to be used as the base class for many
other commonly used row types.
* examples: Use HdyRow.
This makes the code simpler and demoes the widget.
* Add HdyExpanderRow
* Add HdyEnumValueObject.
This will be used in the next commit to use enumeration values in a
GListModel.
* Add HdyComboRow
* examples: Add the Lists page.
This page presents GtkListBox related widgets like HdyRow and its
descendants.
* examples: Put the scrolled window in the end pane size group.
This fixes the fold synchronization of the leaflets in the example
application's window.
[ Guido Günther ]
* hdy-enums: Make build reproducible.
Use @basename@ instead of @filename@ since the later uses the full
path which varies across builds.
* HACKING: Clarify braces in if-else.
Document common practice in the other files.
* spec: Sort dependencies
* spec: Build-depend on libgladeui-2.0
* gitlab-ci: Deduplicate tags
* gitlab-ci: Build on Fedora as well.
This gives us more confidence that we build succesfully and without
warnings on an OS much used by GNOME developers. It also makes sure we
validate the spec file.
* gitlab-ci: Switch to clang-tools
clang-3.9 does not contain scan-build anymore.
* HdyHeaderGroup: Cleanup references to header bars in dispose.
The dispose heandler is meant to break refs to other objects, not
finalize.
* HdyHeaderGroup: Disconnect from header bar's signals during dispose. The
header bars might still emit signals which leads to CRITICALS or actual
crashes. Fixes parts of #56
* docs: Add section for new symbols in 0.0.6
* Annotate APIs new in 0.0.6
* Release libhandy 0.0.6
[ Alexander Mikhaylenko ]
* init: Add (transfer none) to argv parameter.
This allows to call the function from Vala more easily.
* header-group: Ref itself instead of header bars.
When adding a header bar, ref the header group and connect to 'destroy'
signal of the header bar. When a header bar is destroyed or
hdy_header_group_remove_header_bar() is called, unref the header bar and
remove it from the list.
This way, a non-empty header group is only destroyed after every header
bar it contains has been removed from the group or destroyed.
Fixes #56
* Revert "HdyHeaderGroup: Disconnect from header bar's signals during
dispose"
Since commit c5bf27d44022bdfa94b3f560aac8c22115e06363 header bars are
destroyed before header group, so when destroying the header group, the
list of header bars is always empty, so there's nothing to unref anymore.
Reverts commit 14e5fc7b923440a99c3a62635cf895e73c5a49cd.
[ tallero ]
* build: Don't use -fstack-protector-strong on mingw64.
This unbreaks compilation on that platform. (Closes: #64)
-- Guido Günther <agx@sigxcpu.org> Mon, 17 Dec 2018 16:26:19 +0100
libhandy (0.0.5) experimental; urgency=medium
[ Guido Günther ]
* Release libhandy 0.0.5
* meson: Properly depend on the generated headers.
This fixes dependency problems with the generated headers such as
https://arm01.puri.sm/job/debs/job/deb-libhandy-buster-armhf/263/console
See
http://mesonbuild.com/Wrap-best-practices-and-tips.html#eclare-generated-headers-explicitly
* debian: Make sure we create a strict shlibs file libhandy's ABI changes a
lot so make sure we generate dependencies that always require the upstream
version built against.
* debian: Mark buil-deps for tests as <!nocheck>
* gitlab-ci: Deduplicate before_script
* gitlab-ci: Build with clang (scan-build) as well.
We currently don't fail on warnings:
https://github.com/mesonbuild/meson/issues/4334
* HdyLeaflet: Remove unused initializations spotted by clang
* doc: Add that virtual methods carry the class prefix (Closes: #53)
* docs: Add libhandy users. This allows to find in uses examples easily.
* docs: Mention meson as well. Fewer and fewer GNOME projects use
autotools.
* docs: Drop package_ver_str from include path. We add this in the
pkg-config file so no need to specify it again.
* Add i18n infrastructure
* Add hdy_init() This initializes i18n. (Closes: #36)
* meson: Depend on glib that supports g_auto*. Related to #33
* HACKING: document using g_auto* is o.k. (Closes: #33)
* HACKING: Use syntax highlighting.
* Drop Jenkinsfile. We run in gitlab-ci now
* build: Detect if ld supports a version script. This is e.g. not the case
for Clang on OSX. (Closes: #58)
[ Jeremy Bicha ]
* debian: Have libhandy-0.0-dev depend on libgtk-3-dev (Closes: #910384)
* debian: Use dh --with gir so that gir1.2-handy gets its dependencies set
correctly
* debian: Simplify debian/rules.
[ Adrien Plazas ]
* example: Drop Glade support in flatpak build.
* main: Init public GObject types in hdy_init() This will avoid our users to
manually ensure libhandy widget types are loaded before using them in
GtkBuilder templates.
Fixes https://source.puri.sm/Librem5/libhandy/issues/20
* dialer: Descend from GtkBin directly.
Makes HdyDialer descend from GtkBin directly rather than from
GtkEventBox. GtkEventBox will be dropped in GTK+ 4 and brings no
functionality to HdyDialer.
* example: Rename margin-left/right to margin-start/end.
Left and right margin names are not RTL friendly and will be dropped in
GTK+ 4.
* HACKING.md: Rename margin-left to margin-start.
Left and right margin names are not RTL friendly and will be dropped in
GTK+ 4.
* titlebar: Fix a mention of HdyLeaflet in the docs
* example: Do not access event fields.
This is needed to port to GTK+ 4 as these fields will be private.
* dialer: Do not access event fields.
This is needed to port to GTK+ 4 as these fields will be private.
[ Alexander Mikhaylenko ]
* example: Remove styles present in GTK+ 3.24.1.
Libhandy requires `gtk+-3.0 >= 3.24.1` anyway, so these styles aren't
necessary, and also break upstream `.devel` style.
[ Jan Tojnar ]
* Use pkg-config for obtaining glade catalogdir
-- Guido Günther <agx@sigxcpu.org> Wed, 07 Nov 2018 11:17:14 +0100
libhandy (0.0.4) experimental; urgency=medium
[ Mohammed Sadiq ]
* dialer-button: Fix emitting signal.
As the properties where set to not explicitly fire ::notify, no
signals where emitted. Let it be not explicit so that
the signal will be emitted on change
* ci: Enable code coverage.
GitLab pages isn't supported now. So simply store the artifacts.
* README: Add build and coverage status images
* dialer: Handle delete button long press.
Make the delete button clear the whole user input on long press
[ Alexander Mikhaylenko ]
* example: Remove sidebar border less aggressively.
Applying the style to every element inside 'stacksidebar' also removes
border from unrelated elements such as scrollbars. Hence only remove it
from lists.
[ Adrien Plazas ]
* leaflet: Add the folded property.
This is a boolean equivalent of the fold property, it is a needed
convenience as is can be used in GtkBuilder declarations while the fold
property is more convenient to use from C as it enables stronger typing.
* example: Bind back and close buttons visibility to fold.
Directly bind whether the back button and the close button are visible
to whether the headerbar is folded.
* Add HdyHeaderGroup
* example: Use a HdyHeaderGroup.
This automatically updates the headerbars' window decoration layout.
* dialer-button: Replace digit and letters by symbols.
Unify the digit and the letters of a dialer button as its symbols. This
allows to make the code simpler by limiting the number of special cases.
digit. This also handles Unicode characters.
* dialer-cycle-button: Don't make the secondary label dim.
This helps making it clear that these symbols are available, contrary to
the dim ones from a regular dialer button.
* dialer-button: Make the secondary label smaller.
Makes the secondary text smaller to better match the mockups for Calls.
* Add CSS names to the widgets
* leaflet: Document the fold and folded properties
* dialer: Set buttons checked instead setting relief.
When digit keys are pressed, check the buttons state to checked rather
than changing the relief.
* dialer: Add the relief property.
This allows to set the relief of the dialer buttons.
* header-group: Drop forgotten log.
This was accidentally left in.
Fixes https://source.puri.sm/Librem5/libhandy/issues/47
* example: Let the Column panel reach narrower widths.
Readjust the column widget's margins and ellipsize its labels to let it
reach narrower widths.
* example: Separate the listbox items
* example: Let the Dialer panel reach narrower widths.
Put the dialer into a column rather than forcing its width to let it
reach narrower widths.
* example: Enlarge the dialer label.
This makes the dialed number more readable.
* example: Let the Welcome panel reach narrower widths.
Let the welcome panel's labels wrap to let it reach narrower widths.
* header-group: Sanitize the decoration layout.
Checks whether the decoration layout is NULL, empty or has at least one
colon.
Fixes https://source.puri.sm/Librem5/libhandy/issues/44
* header-group: Better handle references of header bars.
Take a reference when adding a header bar, release them on destruction
and don't take extra references on the focused child. This avoids using
pointers to dead header bars or to leak them.
* header-group: Fix the type of the focus property.
This also fixes the types of the accessor functions.
Fixes https://source.puri.sm/Librem5/libhandy/issues/46
* header-group: Fix the docs of the focus property.
This also improves the documentation of its accessor functions.
* header-group: Guard the focused header bar setter.
Better guard the focused header bar setter by checking that the set
header bar actually is one and is part of the group.
* meson: Require GTK+ 3.24.1 or newer.
GTK+ 3.24.1 received style fixes required for HdyTitleBar to work as
expected.
[ Felix Pojtinger ]
* docs: Format README to enable syntax highlighting.
This also adds code fences and blanks around headers.
[ Guido Günther ]
* Depend on generated headers.
If tests or examples are built early we want that hdy-enums.h is alread
there.
* docs: Add HdyFold.
This makes sure it can be linked to by HdyLeaflet.
* HdyLealflet: Use glib-mkenums.
This makes the enums clickable in the HdyLeaflet documentation
and makes the code smaller.
* HdyFold: Use glib-mkenums.
This makes the enums clickable in the HdyLeaflet documentation,
HdyFold usable in GtkBuild and makes the code smaller.
* HdyHeaderGroup: Document hdy_group_set_focus()
This makes newer newer Gir scanner happy (and is a good thing anyway).
* debian: Update shared library symbols
* d/rules: Set a proper locale for the tests.
* Check the debian package build during CI as well.
This make sure we notice build breackage before it hits Jenkins to build
the official debs.
* ci: Fail on gtkdoc warnings.
Gitlab seems to get confused by the '!' expression so use if instead.
* tests: Test hdy_header_group_{get,set}_focus
* HdyDialer: Apply 'keypad' style class.
This applies the 'keypad' style class to both the keypad itself and its
buttons. This allows to style the buttons and the keypad in the
application.
* glade: Verify catalog data via xmllint
* debian: Add dependenies for running xmllint.
This also makes sure we have it available during CI
* HdyHeaderGroup: Allow to get and remove the headerbars
* debian: Add new symbols
* glade: Add a module so we can handle HdyHeaderGroup
* run: Add glade lib to LD_LIBRARY_PATH.
This makes it simple to test the built version.
* Move glade catalog from data/ to glade/
Given that there will be more complex widgets lets keep the catalog
and module together.
* glade: Use a custom DTD.
Glades DTD is not up to date. Use a custom copy until this is fixed
upstream:
https://gitlab.gnome.org/GNOME/glade/merge_requests/11
We do this as a separate commit so we can revert it once upstream glade is
fixed.
* glade: Support HdyHeaderGroup (Closes: #38)
* debian: Ship glade module
-- Guido Günther <agx@sigxcpu.org> Fri, 05 Oct 2018 18:32:42 +0200
libhandy (0.0.3) experimental; urgency=medium
[ Adrien Plazas ]
* New HdyTitleBar widget. This coupled with a transparent headerbar
background can work around graphical glitches when animation header bars
in a leaflet.
* column: Add the linear-growth-width property
* glade: Fix the generic name of HdyArrows
* flatpak: Switch the runtime of the example to master.
* column: Add a missing break statement.
* leaflet: Hide children on transition end only when folded.
* leaflet: Init mode transition positions to the final values.
* example: Always show a close button.
* example: Load custom style from CSS resource
* example: Draw the right color for sidebar separators.
* example: Use separators to separate the panels.
* leaflet: Start the child transition only when folded.
[ Christopher Davis ]
* Add HdyColumn to libhandy.xml for glade.
[ Heather Ellsworth ]
* Add issue template
[ Jordan Petridis ]
* leaflet: initialize a variable.
[ Guido Günther ]
* HdyButton: Chain up to parent on finalize
* gitlab-ci: Fail on compile warnings
* meson: Warn about possible uninitialized variables
* HdyLeaflet: Fix two uninitialized variables
* Update list of compiler warnings from phosh
and fix the fallout.
-- Guido Günther <agx@sigxcpu.org> Wed, 12 Sep 2018 12:03:54 +0200
libhandy (0.0.2) experimental; urgency=medium
[ Guido Günther ]
* Use source.puri.sm instead of code.puri.sm.
* Add AUTHORS file
* gitlab-ci: Build on Debian buster using provided build-deps.
* arrows: test object construction
* Multiple gtk-doc fixes
* docs: Abort on warnings.
* DialerButton: free letters
[ Adrien Plazas ]
* dialer: Make the grid visible and forbid show all.
* example: Drop usage of show_all()
* dialer: Add column-spacing and row-spacing props.
* example: Change the grid's spacing and minimum size request.
* flatpak: Allow access to the dconf config dir.
* Replace phone-dial-symbolic by call-start-symbolic.
* column: Fix height for width request.
-- Guido Günther <agx@sigxcpu.org> Wed, 18 Jul 2018 13:12:10 +0200
libhandy (0.0.1) experimental; urgency=medium
[ Guido Günther ]
* Release 0.0.1
[ Adrien Plazas ]
* Add HdyColumn widget
-- Guido Günther <agx@sigxcpu.org> Sat, 09 Jun 2018 09:12:06 +0200
libhandy (0.0~git20180517) unstable; urgency=medium
* Add an arrows widget.
The widget prints a number of arrows one by one to indicate a sliding
direction. Number of arrows and animation duration are configurable.
* Add symbols file
-- Guido Günther <agx@sigxcpu.org> Thu, 17 May 2018 15:51:01 +0200
libhandy (0.0~git20180429) unstable; urgency=medium
[ Guido Günther ]
* New git snapshot
* HdyDialer: Emit symbol-clicked signal. This signal is emitted when a
symbol button (numbers or '#' or '*') is clicked.
* HdyDialer: Emit signal when delete button was clicked.
* dialer: Make it simple to clear the stored number.
This also makes sure we don't send multiple number changed events
when nothing changed.
* dialer: Delay number notify. On button press send out the number changed
signal at the very end so listeners can process the button event prior to
the number update event.
[ Adrien Plazas ]
* leaflet: Refactor homogeneity.
This makes factorizes the homogeneity functions of HdyLeaflet to make
the code a bit shorter.
* build: Add '--c-include=handy.h' GIR options back.
This is necessary for introspection to know the header file to use.
* dialer: Check params of the 'number' prop accessors.
Sanitize the parameters of the 'number' property accessor. This will
warn or misusages of the API at runtime and avoid potential crashes.
* dialer: Style cleanup of the 'number' prop accessors.
Use gchar instead of char, use GNOME style pointer spacing and name the
number parameter 'number'. This is all cosmetic but will make the code
look a bit more GNOME-like.
* example: Drop hardcoded default window size.
This avoid overridding with the one we set in the the .ui file of the
window.
* example: Move window title to .ui file.
This avoid hardcoding values when we can put them in the UI description.
* example-window: Make the default size more phone-like
[ Bob Ham ]
* dialer: Add "show-action-buttons" property.
Add a new boolean "show-action-buttons" property that specifies
whether the submit and delete buttons are displayed.
-- Guido Günther <agx@sigxcpu.org> Sun, 29 Apr 2018 12:01:58 +0200
libhandy (0.0~git20180402) unstable; urgency=medium
* Initial release
-- Guido Günther <agx@sigxcpu.org> Mon, 02 Apr 2018 12:17:44 +0200
|