Fix restoring vpaned position when window is maximized

Fix stopping gtkui with ctrl+c
Fix showing the connection manager window in the certain of the window if maximized on start-up
This commit is contained in:
Andrew Resch 2009-07-06 06:29:45 +00:00
parent efa125ac83
commit 2909e285fc
2 changed files with 17 additions and 24 deletions

View File

@ -146,10 +146,6 @@ class GtkUI:
except:
pass
# Twisted catches signals to terminate, so just have it call the shutdown
# method.
reactor.addSystemEventTrigger("after", "shutdown", self.shutdown)
if deluge.common.windows_check():
from win32api import SetConsoleCtrlHandler
from win32con import CTRL_CLOSE_EVENT
@ -201,16 +197,11 @@ class GtkUI:
self.connectionmanager = ConnectionManager()
reactor.callWhenRunning(self._on_reactor_start)
# Start the gtk main loop
try:
gtk.gdk.threads_enter()
reactor.run()
gtk.gdk.threads_leave()
except KeyboardInterrupt:
self.shutdown()
else:
self.shutdown()
gtk.gdk.threads_enter()
reactor.run()
self.shutdown()
gtk.gdk.threads_leave()
def shutdown(self, *args, **kwargs):
log.debug("gtkui shutting down..")
@ -223,6 +214,7 @@ class GtkUI:
# Shutdown all components
component.shutdown()
if self.started_in_classic:
try:
client.daemon.shutdown()
@ -232,13 +224,10 @@ class GtkUI:
# Make sure the config is saved.
self.config.save()
try:
gtk.main_quit()
except RuntimeError:
pass
def _on_reactor_start(self):
log.debug("_on_reactor_start")
self.mainwindow.first_show()
if self.config["classic_mode"]:
try:
client.start_classic_mode()

View File

@ -72,6 +72,7 @@ class MainWindow(component.Component):
except:
self.window.set_icon(common.get_logo(32))
self.vpaned = self.main_glade.get_widget("vpaned")
self.initial_vpaned_position = self.config["window_pane_position"]
# Load the window state
self.load_window_state()
@ -93,14 +94,18 @@ class MainWindow(component.Component):
self.config.register_set_function("show_rate_in_title", self._on_set_show_rate_in_title, apply_now=False)
client.register_event_handler("NewVersionAvailableEvent", self.on_newversionavailable_event)
client.register_event_handler("TorrentFinishedEvent", self.on_torrentfinished_event)
def first_show(self):
if not(self.config["start_in_tray"] and \
self.config["enable_system_tray"]) and not \
self.window.get_property("visible"):
log.debug("Showing window")
self.show()
client.register_event_handler("NewVersionAvailableEvent", self.on_newversionavailable_event)
client.register_event_handler("TorrentFinishedEvent", self.on_torrentfinished_event)
while gtk.events_pending():
gtk.main_iteration(False)
self.vpaned.set_position(self.initial_vpaned_position)
def show(self):
try:
@ -112,6 +117,7 @@ class MainWindow(component.Component):
self.window.show()
def hide(self):
component.pause("TorrentView")
component.pause("StatusBar")
@ -162,8 +168,6 @@ class MainWindow(component.Component):
self.window.resize(w, h)
if self.config["window_maximized"]:
self.window.maximize()
self.vpaned.set_position(
self.config["window_height"] - self.config["window_pane_position"])
def on_window_configure_event(self, widget, event):
if not self.config["window_maximized"] and self.visible:
@ -204,7 +208,7 @@ class MainWindow(component.Component):
return True
def on_vpaned_position_event(self, obj, param):
self.config["window_pane_position"] = self.config["window_height"] - self.vpaned.get_position()
self.config["window_pane_position"] = self.vpaned.get_position()
def on_drag_data_received_event(self, widget, drag_context, x, y, selection_data, info, timestamp):
args = []