okra pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e41dfc7d5b6d67bd66ad5eec10fe0c1e6510f668

commit e41dfc7d5b6d67bd66ad5eec10fe0c1e6510f668
Author: Stephen 'Okra' Houston <smhousto...@gmail.com>
Date:   Mon Feb 6 11:12:43 2017 -0600

    Luncher: Remove closed clients from the preview popup if visible, and close 
the popup if no more clients are active.
    
    This fixes T5097
---
 src/modules/luncher/bar.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index 7e32f13..fe008bc 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -1159,9 +1159,15 @@ _bar_cb_client_remove(void *data EINA_UNUSED, int type 
EINA_UNUSED, E_Event_Clie
                {
                   snprintf(ori, sizeof(ori), "e,state,off,%s", 
_bar_location_get(inst));
                   elm_layout_signal_emit(ic->o_layout, ori, "e");
+                  if (ic->preview)
+                    _bar_icon_preview_hide(ic);
                   if (!ic->in_order)
                     _bar_icon_del(inst, ic);
                }
+             else if (ic->preview)
+               {
+                  _bar_icon_preview_show(ic);
+               }
           }
      }
    return ECORE_CALLBACK_RENEW;
@@ -1202,9 +1208,15 @@ _bar_cb_exec_del(void *data EINA_UNUSED, int type 
EINA_UNUSED, E_Exec_Instance *
                {
                   snprintf(ori, sizeof(ori), "e,state,off,%s", 
_bar_location_get(inst));
                   elm_layout_signal_emit(ic->o_layout, ori, "e");
+                  if (ic->preview)
+                    _bar_icon_preview_hide(ic);
                   if (!ic->in_order)
                     _bar_icon_del(inst, ic);
                }
+             else if (ic->preview)
+               {
+                  _bar_icon_preview_show(ic);
+               }
           }
      }
    return ECORE_CALLBACK_RENEW;
@@ -1303,6 +1315,8 @@ _bar_cb_exec_client_prop(void *data EINA_UNUSED, int type 
EINA_UNUSED, E_Event_C
                ic->clients = eina_list_remove(ic->clients, ev->ec);
              if (!eina_list_count(ic->execs) && !eina_list_count(ic->clients))
                {
+                  if (ic->preview)
+                    _bar_icon_preview_hide(ic);
                   if (!ic->in_order)
                     _bar_icon_del(inst, ic);
                   else
@@ -1311,6 +1325,10 @@ _bar_cb_exec_client_prop(void *data EINA_UNUSED, int 
type EINA_UNUSED, E_Event_C
                        elm_layout_signal_emit(ic->o_layout, ori, "e");
                     }
                }
+             else if (ic->preview)
+               {
+                  _bar_icon_preview_show(ic);
+               }
           }
      }
    return ECORE_CALLBACK_RENEW;

-- 


Reply via email to