@@ -23,6 +23,7 @@ public class Dock.MainWindow : Gtk.ApplicationWindow {
2323 private Pantheon . Desktop . Shell ? desktop_shell;
2424 private Pantheon . Desktop . Panel ? panel;
2525
26+ private ItemManager item_manager;
2627 private WindowDragManager window_drag_manager;
2728 private bool initialized_blur = false ;
2829 private int border_radius = 0 ;
@@ -40,27 +41,27 @@ public class Dock.MainWindow : Gtk.ApplicationWindow {
4041 dock_box. append (new Container ());
4142 dock_box. append (new BottomMargin ());
4243
43- unowned var launcher_manager = ItemManager . get_default ();
44+ item_manager = new ItemManager ();
4445
4546 // Don't clip launchers to dock background https://github.com/elementary/dock/issues/275
4647 var overlay = new Gtk .Overlay () {
4748 child = dock_box
4849 };
49- overlay. add_overlay (launcher_manager );
50+ overlay. add_overlay (item_manager );
5051
5152 var size_group = new Gtk .SizeGroup (Gtk . SizeGroupMode . BOTH );
5253 size_group. add_widget (dock_box);
53- size_group. add_widget (launcher_manager );
54+ size_group. add_widget (item_manager );
5455
5556 child = overlay;
5657
5758 remove_css_class (" background" );
5859
5960 // Fixes DnD reordering of launchers failing on a very small line between two launchers
6061 var drop_target_launcher = new Gtk .DropTarget (typeof (Launcher ), MOVE );
61- launcher_manager . add_controller (drop_target_launcher);
62+ item_manager . add_controller (drop_target_launcher);
6263
63- launcher_manager . realize. connect (init_panel);
64+ item_manager . realize. connect (init_panel);
6465
6566 settings. changed[" autohide-mode" ]. connect (() = > {
6667 if (panel != null ) {
@@ -112,7 +113,7 @@ public class Dock.MainWindow : Gtk.ApplicationWindow {
112113 surface. compute_size. connect ((surface, size) = > {
113114 // manually set shadow width since the additional margin we add to avoid icons clipping when
114115 // bouncing isn't added by default and instead counts to the frame
115- var item_manager_width = ItemManager . get_default () . get_width ();
116+ var item_manager_width = item_manager . get_width ();
116117 var shadow_size = (surface. width - item_manager_width) / 2 ;
117118 var top_margin = TOP_MARGIN + shadow_size - 1 ;
118119 size. set_shadow_width (shadow_size, shadow_size, top_margin, shadow_size);
@@ -121,7 +122,7 @@ public class Dock.MainWindow : Gtk.ApplicationWindow {
121122 surface. layout. connect ((surface, width, height) = > {
122123 // manually set input region since container's shadow are is the content of the window
123124 // and it still gets window events
124- var item_manager_width = ItemManager . get_default () . get_width ();
125+ var item_manager_width = item_manager . get_width ();
125126 var shadow_size = (width - item_manager_width) / 2 ;
126127 var top_margin = TOP_MARGIN + shadow_size;
127128 surface. set_input_region (new Cairo .Region .rectangle ({
0 commit comments