summary refs log tree commit diff stats
path: root/widgets/msglist.go
Commit message (Collapse)AuthorAgeFilesLines
* lib/ui: introduce InvalidatableSimon Ser2019-04-271-15/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many Drawable implementations have their own Invalidate and OnInvalidate functions, with an unexported onInvalidate field. However OnInvalidate and Invalidate are usually not called in the same goroutine. This results in a race on this field, e.g.: Read at 0x00c000094748 by goroutine 7: git.sr.ht/~sircmpwn/aerc2/widgets.NewDirectoryList.func1() /home/simon/src/aerc2/widgets/dirlist.go:85 +0x56 git.sr.ht/~sircmpwn/aerc2/widgets.(*Spinner).Start.func1() /home/simon/src/aerc2/widgets/spinner.go:93 +0x1bb Previous write at 0x00c000094748 by main goroutine: [failed to restore the stack] Goroutine 7 (running) created at: git.sr.ht/~sircmpwn/aerc2/widgets.(*Spinner).Start() /home/simon/src/aerc2/widgets/spinner.go:46 +0x8f git.sr.ht/~sircmpwn/aerc2/widgets.NewDirectoryList() /home/simon/src/aerc2/widgets/dirlist.go:37 +0x286 git.sr.ht/~sircmpwn/aerc2/widgets.NewAccountView() /home/simon/src/aerc2/widgets/account.go:50 +0x5ca git.sr.ht/~sircmpwn/aerc2/widgets.NewAerc() /home/simon/src/aerc2/widgets/aerc.go:60 +0x800 main.main() /home/simon/src/aerc2/aerc.go:65 +0x33e To fix this, introduce a new type, Invalidatable, which protects the field. Unfortunately the Drawable must be passed to the callback function in Invalidate, so we still need to re-implement this in each Invalidatable user.
* Fix segfault on :view-message for unloaded messageTom Lebreux2019-04-101-0/+4
| | | | | | This also fixes segfault on :view-message on empty directory Signed-off-by: Tom Lebreux <tomlebreux@cock.li>
* Fix infinite loop on empty DirectoryContentsTom Lebreux2019-04-051-2/+4
| | | | | | | | | When changing to an empty directory, ml.selected is 0, and the length of ml.store.Uids is 0. The loop condition is always true so we have an infinite loop causing 100% CPU usage and prevents us to change to other directories. Signed-off-by: Tom Lebreux <tomlebreux@cock.li>
* Show (no messages) for empty foldersDrew DeVault2019-04-041-0/+6
|
* Use tcell.Style.Reverse instead of black on whiteDrew DeVault2019-03-301-2/+1
|
* Show deleted emails pending server ack in greyDrew DeVault2019-03-301-0/+3
| | | | TODO: Don't let the user select or interact with deleted messages
* Add body fetching support codeDrew DeVault2019-03-291-1/+1
|
* Improve cursor handling in embedded terminalDrew DeVault2019-03-211-0/+3
|
* Implement :delete-messageDrew DeVault2019-03-201-0/+20
|
* Fix scrolling issues on :select-messageDrew DeVault2019-03-171-0/+7
|
* Implement :select-messageDrew DeVault2019-03-151-0/+9
|
* Implement scrolling in message listDrew DeVault2019-03-151-3/+14
|
* Implement :next-message n%Drew DeVault2019-03-151-0/+6
|
* Move MessageStore into its own fileDrew DeVault2019-03-151-83/+3
|
* Rig up key bindingsDrew DeVault2019-03-151-2/+2
|
* Implement :{next,prev}-messageDrew DeVault2019-03-141-0/+20
|
* Invalidate when UIDs finish downloadingDrew DeVault2019-03-141-4/+0
|
* Display message subjects in message listDrew DeVault2019-03-141-3/+22
|
* Implement message store side of message fetchingDrew DeVault2019-03-141-10/+52
|
* Lay out message list widget basic designDrew DeVault2019-03-141-0/+89
|
* Fetch valid UIDs from server after opening dirDrew DeVault2019-03-101-0/+36
='#n1'>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