[libdazzle] dock-bin: only unpin on panel dismissal



commit aa4ecb7c841eac328758edc29febe7570f107ea7
Author: Christian Hergert <chergert redhat com>
Date:   Thu Jul 6 12:55:43 2017 -0700

    dock-bin: only unpin on panel dismissal
    
    We can generally find ways to make widgets shrink in a somewhat
    fast fashion. But making them grow is often a challenge. Doubly
    so for when the content area contains textviews/treeviews/etc.

 src/panel/dzl-dock-bin.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/src/panel/dzl-dock-bin.c b/src/panel/dzl-dock-bin.c
index c30719f..d8e45f8 100644
--- a/src/panel/dzl-dock-bin.c
+++ b/src/panel/dzl-dock-bin.c
@@ -277,7 +277,14 @@ set_visible (DzlDockBin          *self,
           if (!dzl_dock_revealer_is_animating (DZL_DOCK_REVEALER (widget)))
             child->pre_anim_pinned = child->pinned;
 
-          child->pinned = FALSE;
+          /*
+           * We only want to "unpin" the panel when we animate out. Generally,
+           * shrinking widgets can be made fast by re-using their existing
+           * content, but making things bigger has very large performance
+           * costs.  Expecially with textviews/treeviews.
+           */
+          if (!visible)
+            child->pinned = FALSE;
 
           dzl_dock_revealer_set_reveal_child (DZL_DOCK_REVEALER (widget), visible);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]