@@ -640,7 +640,19 @@ def check_occlusion_state(self):
640640 if self .integrated_mode :
641641 return False
642642
643- if self .is_mouse_over_dock_area or self ._drag_in_progress or self ._prevent_occlusion or self ._forced_occlusion :
643+ # When forced occlusion is active, only show on hover
644+ if self ._forced_occlusion :
645+ if self .is_mouse_over_dock_area :
646+ if not self .dock_revealer .get_reveal_child ():
647+ self .dock_revealer .set_reveal_child (True )
648+ self .dock_full .remove_style_class ("occluded" )
649+ else :
650+ if self .dock_revealer .get_reveal_child ():
651+ self .dock_revealer .set_reveal_child (False )
652+ self .dock_full .add_style_class ("occluded" )
653+ return True
654+
655+ if self .is_mouse_over_dock_area or self ._drag_in_progress or self ._prevent_occlusion :
644656 if not self .dock_revealer .get_reveal_child ():
645657 self .dock_revealer .set_reveal_child (True )
646658 if not self .always_show :
@@ -821,16 +833,24 @@ def update_visibility(visible):
821833 dock .dock_revealer .set_reveal_child (False )
822834
823835 def force_occlusion (self ):
824- """Force dock to occlusion mode (hidden but responds to hover) ."""
836+ """Force dock to hide and act as if always_show is False ."""
825837 if self .integrated_mode :
826838 return
839+ # Save current always_show state
840+ self ._saved_always_show = self .always_show
841+ # Set to False to enable hover behavior
842+ self .always_show = False
827843 self ._forced_occlusion = True
828844 if not self .is_mouse_over_dock_area :
829845 self .dock_revealer .set_reveal_child (False )
830846
831847 def restore_from_occlusion (self ):
832- """Restore dock from forced occlusion mode ."""
848+ """Restore dock to its previous always_show state ."""
833849 if self .integrated_mode :
834850 return
835851 self ._forced_occlusion = False
852+ # Restore saved always_show state
853+ if hasattr (self , '_saved_always_show' ):
854+ self .always_show = self ._saved_always_show
855+ delattr (self , '_saved_always_show' )
836856 self .check_occlusion_state ()
0 commit comments