aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authortoshi <toshi@03aab468-d3d2-4883-8b12-f661bbf03fa8>2012-09-14 22:10:23 +0000
committertoshi <toshi@03aab468-d3d2-4883-8b12-f661bbf03fa8>2012-09-14 22:10:23 +0000
commit0b74aa6515b60550d0e04b3ed072ff565791d515 (patch)
tree1bb002d6714dba93d8436b5cb5b014cf43235cf0 /core
parent20931a7ce83f87a39650b30f01fad29cf745993c (diff)
downloadmikutter-0b74aa6515b60550d0e04b3ed072ff565791d515.tar.gz
Gtk::TimeLineのオートスクロール実装を削除して、Gtk::TreeViewPrettyScrollを使用するように変更 closes #501
git-svn-id: svn://toshia.dip.jp/mikutter/trunk@1012 03aab468-d3d2-4883-8b12-f661bbf03fa8
Diffstat (limited to 'core')
-rw-r--r--core/mui/cairo_inner_tl.rb3
-rw-r--r--core/mui/cairo_timeline.rb39
2 files changed, 2 insertions, 40 deletions
diff --git a/core/mui/cairo_inner_tl.rb b/core/mui/cairo_inner_tl.rb
index fb883200..93ef63f8 100644
--- a/core/mui/cairo_inner_tl.rb
+++ b/core/mui/cairo_inner_tl.rb
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-miquire :mui, 'timeline'
+miquire :mui, 'timeline', 'tree_view_pretty_scroll'
miquire :lib, 'ruby-bsearch-1.5/bsearch'
miquire :lib, 'uithreadonly'
require 'gtk2'
@@ -8,6 +8,7 @@ require 'gtk2'
class Gtk::TimeLine::InnerTL < Gtk::CRUD
include UiThreadOnly
+ include Gtk::TreeViewPrettyScroll
attr_writer :force_retrieve_in_reply_to
attr_accessor :postbox, :collect_counter, :imaginary
diff --git a/core/mui/cairo_timeline.rb b/core/mui/cairo_timeline.rb
index 2390315f..b8c9fcd1 100644
--- a/core/mui/cairo_timeline.rb
+++ b/core/mui/cairo_timeline.rb
@@ -23,9 +23,6 @@ miquire :lib, 'reserver'
=end
class Gtk::TimeLine
- FRAME_PER_SECOND = 30
- FRAME_MS = 1000.to_f / FRAME_PER_SECOND
-
include Gtk::TimeLineUtils
attr_reader :tl
@@ -91,36 +88,9 @@ class Gtk::TimeLine
}
@tl.set_size_request(100, 100)
@tl.get_column(0).sizing = Gtk::TreeViewColumn::FIXED
- scroll_to_top_anime = false
- scroll_to_top_anime_id = 1
- scroll_to_top_anime_lock = Mutex.new
- @tl.ssc(:scroll_event){ |this, e|
- case e.direction
- when Gdk::EventScroll::UP
- this.vadjustment.value -= this.vadjustment.step_increment
- scroll_to_top_anime_lock.synchronize{ scroll_to_top_anime_id += 1 }
- when Gdk::EventScroll::DOWN
- @scroll_to_zero_lator = false if this.vadjustment.value == 0
- this.vadjustment.value += this.vadjustment.step_increment
- scroll_to_top_anime_lock.synchronize{ scroll_to_top_anime_id += 1 } end
- false }
@tl.ssc(:expose_event){
emit_expose_miraclepainter
false }
- @scroll_to_zero_hook = lambda{ |*args|
- emit_expose_miraclepainter
- if(scroll_to_zero? and not(scroll_to_top_anime))
- scroll_to_top_anime = true
- my_id = scroll_to_top_anime_lock.synchronize {
- scroll_to_top_anime_id += 1
- scroll_to_top_anime_id }
- Gtk.timeout_add(FRAME_MS){
- scroll_to_top_anime = if scroll_to_top_anime_id == my_id and not(@tl.destroyed?)
- @tl.vadjustment.value -= (@tl.vadjustment.value / 2) + 1
- @tl.vadjustment.value > 0.0 end
- scroll_to_top_anime } end
- false }
- @tl.vadjustment.ssc(:value_changed, &@scroll_to_zero_hook)
init_remover
@shell = Gtk::HBox.new.pack_start(@tl).closeup(scrollbar) end
@@ -186,10 +156,6 @@ class Gtk::TimeLine
get_ancestor(Gtk::Window).set_focus(@tl)
end
- def scroll_to_zero_lator!
- @scroll_to_zero_lator = true
- @scroll_to_zero_hook.call end
-
# このTLが既に削除されているなら真
def destroyed?
@tl.destroyed? or @tl.model.destroyed? end
@@ -272,11 +238,6 @@ class Gtk::TimeLine
def postbox
@postbox ||= Gtk::VBox.new end
- def scroll_to_zero?
- result = (defined?(@scroll_to_zero_lator) and @scroll_to_zero_lator)
- @scroll_to_zero_lator = false
- result end
-
Delayer.new{
plugin = Plugin::create(:core)
plugin.add_event(:message_modified){ |message|