Submit again, the pending of always on top ;)

--
Sébastien HOUZE
[EMAIL PROTECTED]
--- e/src/bin/e_border.c	2005-07-11 09:59:47.000000000 +0200
+++ e.fun/src/bin/e_border.c	2005-07-11 14:21:20.726928030 +0200
@@ -85,6 +85,7 @@
 static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_border_menu_cb_below(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi);
@@ -5729,6 +5730,19 @@
 				  "widgets/border/default/on_top");
      }
    
+   if (!bd->lock_user_stacking)
+     {
+	mi = e_menu_item_new(m);
+	e_menu_item_label_set(mi, _("Always Below"));
+	e_menu_item_check_set(mi, 1);
+	e_menu_item_toggle_set(mi, (bd->layer == 0 ? 1 : 0));
+	e_menu_item_callback_set(mi, _e_border_menu_cb_below, bd);
+	e_menu_item_icon_edje_set(mi,
+				  (char *)e_theme_edje_file_get("base/theme/borders",
+								"widgets/border/default/below"),
+				  "widgets/border/default/below");
+     }
+   
    if (!bd->lock_border)
      {
 	mi = e_menu_item_new(m);
@@ -5968,6 +5982,28 @@
 }
 
 static void
+_e_border_menu_cb_below(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   /* FIXME:
+    * - Remember old layer
+    */
+   E_Border *bd;
+
+   bd = data;
+   if (bd->layer == 0)
+     {
+	bd->layer = 100;
+	e_hints_window_stacking_set(bd, E_STACKING_NONE);
+     }
+   else
+     {
+	bd->layer = 0;
+	e_hints_window_stacking_set(bd, E_STACKING_BELOW);
+     }
+   e_container_border_raise(bd);
+}
+
+static void
 _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    E_Border *bd;

Reply via email to