Fix plugin lifecycle, tabs cleanup, and add auto-scroll to tabs
- Fix unload() method naming in nanoesq_temp_buffer plugin - Wrap tabs_widget in ScrolledWindow/Viewport for proper scrolling - Add auto-scroll to center when switching/adding tabs - Return manifest_meta in manifest_manager for manual plugins - Refactor remove_plugin() to properly clean up all manifest lists - Fix widget references in plugins_ui for proper removal
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
# Python imports
|
||||
|
||||
# Lib imports
|
||||
import gi
|
||||
|
||||
from gi.repository import Gtk
|
||||
|
||||
# Application imports
|
||||
from libs.event_factory import Event_Factory, Code_Event_Types
|
||||
@@ -25,8 +28,19 @@ class Plugin(PluginCode):
|
||||
|
||||
self.register_controller("tabs", self.tabs_controller)
|
||||
|
||||
code_container.add( self.tabs_controller.tabs_widget )
|
||||
code_container.reorder_child(self.tabs_controller.tabs_widget, 0)
|
||||
scrolled_win = Gtk.ScrolledWindow()
|
||||
viewport = Gtk.Viewport()
|
||||
|
||||
scrolled_win.set_overlay_scrolling(False)
|
||||
scrolled_win.set_size_request(-1, 50)
|
||||
|
||||
viewport.add( self.tabs_controller.tabs_widget )
|
||||
scrolled_win.add( viewport )
|
||||
code_container.add( scrolled_win )
|
||||
code_container.reorder_child(scrolled_win, 0)
|
||||
|
||||
viewport.show()
|
||||
scrolled_win.show()
|
||||
|
||||
event = Event_Factory.create_event("get_files")
|
||||
self.emit_to("files", event)
|
||||
@@ -36,7 +50,14 @@ class Plugin(PluginCode):
|
||||
def unload(self):
|
||||
self.unregister_controller("tabs")
|
||||
self.tabs_controller.unload_tabs()
|
||||
self.tabs_controller.tabs_widget.destroy()
|
||||
|
||||
tabs_widget = self.tabs_controller.tabs_widget
|
||||
viewport = tabs_widget.get_parent()
|
||||
scrolled_win = viewport.get_parent()
|
||||
|
||||
tabs_widget.destroy()
|
||||
viewport.destroy()
|
||||
scrolled_win.destroy()
|
||||
|
||||
self.tabs_controller.tabs_widget = None
|
||||
self.tabs_controller = None
|
||||
|
||||
Reference in New Issue
Block a user