Exit when the connection to the daemon is lost.
[snett.git] / bin / snett
index 7814411e24b3d24efb81aa25c1d4e2e2e0604275..62b82692261e6df5b3d92a512a87e330b567b69f 100755 (executable)
--- a/bin/snett
+++ b/bin/snett
@@ -37,7 +37,7 @@ class Gtk::MenuItem
        def set_callback(meth, args = [])
                args.unshift(meth)
 
-               signal_connect("button_release_event") do
+               signal_connect("activate") do
                        Snett::Snett.instance.xmms.send(*args)
                        false
                end
@@ -71,6 +71,7 @@ module Snett
                        @xmms = Xmms::Client.new(PKG_NAME)
                        @xmms.connect(ENV["XMMS_PATH"])
                        @xmms.add_to_glib_mainloop
+                       @xmms.on_disconnect { destroy }
 
                        @broadcasts = []
 
@@ -99,15 +100,12 @@ module Snett
                        event_box.events = Gdk::Event::BUTTON_PRESS_MASK |
                                           Gdk::Event::BUTTON_RELEASE_MASK
 
-                       event_box.signal_connect("button_release_event") do |_, event|
-                               menu.popup(event) if event.button == 3
-                               false
-                       end
-
                        event_box.signal_connect("button_press_event") do |_, event|
                                if event.button == 1
                                        x, y = Gdk::Display.default.pointer[1, 2]
                                        self.begin_move_drag(event.button, x, y, event.time)
+                               elsif event.button == 3
+                                       menu.popup(event)
                                end
 
                                false
@@ -178,7 +176,7 @@ module Snett
                                item = Gtk::ImageMenuItem.new(text)
                                item.image = Gtk::Image.new(stock, Gtk::IconSize::MENU)
 
-                               item.signal_connect("button_release_event") do
+                               item.signal_connect("activate") do
                                        PlaylistDialog.new(sym).show_all
                                        false
                                end
@@ -194,7 +192,7 @@ module Snett
                        append(Gtk::SeparatorMenuItem.new)
 
                        item = Gtk::ImageMenuItem.new(Gtk::Stock::ABOUT)
-                       item.signal_connect("button_release_event") do
+                       item.signal_connect("activate") do
                                props = {
                                        "name" => PKG_NAME,
                                        "version" => VERSION,
@@ -209,7 +207,7 @@ module Snett
                        append(item)
 
                        item = Gtk::ImageMenuItem.new(Gtk::Stock::QUIT)
-                       item.signal_connect("button_release_event") do
+                       item.signal_connect("activate") do
                                Snett.instance.signal_emit("destroy")
                                false
                        end
@@ -246,7 +244,13 @@ module Snett
                        col = Gtk::TreeViewColumn.new("Name", renderer, :text => 0)
                        @view.append_column(col)
 
-                       vbox.add(@view)
+                       scrolled = Gtk::ScrolledWindow.new
+                       scrolled.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
+                       scrolled.add(@view)
+
+                       vbox.add(scrolled)
+
+                       resize(350, 400)
 
                        Snett.instance.xmms.medialib_playlists_list.
                                            notifier(&method(:on_playlists_list))