blob: 9ffc23bb93b470a314994a62558f203ee561acb1 (
plain)
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
|
$NetBSD: patch-core_mui_gtk__userlist.rb,v 1.1 2017/06/10 09:45:33 tsutsui Exp $
- pull upstream fixes for ticket #916
https://dev.mikutter.hachune.net/issues/916
--- core/mui/gtk_userlist.rb.orig 2017-06-10 01:11:51.000000000 +0000
+++ core/mui/gtk_userlist.rb
@@ -27,6 +27,10 @@ class Gtk::UserList < Gtk::EventBox
scrollbar = ::Gtk::VScrollbar.new(@listview.vadjustment)
add Gtk::HBox.new(false, 0).add(@listview).closeup(scrollbar)
@listview.ssc(:row_activated, &self.class.row_activated)
+ @listview.ssc(:expose_event){
+ emit_expose_user
+ false
+ }
end
def each
@@ -68,5 +72,25 @@ class Gtk::UserList < Gtk::EventBox
@listview.reorder(user)
self end
+ private
+
+ def emit_expose_user
+ if @listview.visible_range
+ current, last = @listview.visible_range
+ Enumerator.new{|y|
+ while (current <=> last) < 1
+ y << @listview.model.get_iter(current)
+ break if not current.next!
+ end
+ }.reject{|iter|
+ iter[Gtk::InnerUserList::COL_ICON]
+ }.each do |iter|
+ iter[Gtk::InnerUserList::COL_ICON] = iter[Gtk::InnerUserList::COL_USER].icon.load_pixbuf(width: 24, height: 24){|pixbuf|
+ iter[Gtk::InnerUserList::COL_ICON] = pixbuf unless @listview.destroyed?
+ }
+ end
+ end
+ end
+
end
|