diff options
author | toshi <toshi@03aab468-d3d2-4883-8b12-f661bbf03fa8> | 2012-09-14 22:10:23 +0000 |
---|---|---|
committer | toshi <toshi@03aab468-d3d2-4883-8b12-f661bbf03fa8> | 2012-09-14 22:10:23 +0000 |
commit | 0b74aa6515b60550d0e04b3ed072ff565791d515 (patch) | |
tree | 1bb002d6714dba93d8436b5cb5b014cf43235cf0 /core | |
parent | 20931a7ce83f87a39650b30f01fad29cf745993c (diff) | |
download | mikutter-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.rb | 3 | ||||
-rw-r--r-- | core/mui/cairo_timeline.rb | 39 |
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| |