Always On Top

SVN revision: 14686
This commit is contained in:
sebastid 2005-05-09 16:55:14 +00:00 committed by sebastid
parent 215ae06744
commit 1b4589e4b9
1 changed files with 28 additions and 0 deletions

View File

@ -75,6 +75,7 @@ static void _e_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi);
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_sendto_pre_cb(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_sendto_cb(void *data, E_Menu *m, E_Menu_Item *mi);
@ -3685,6 +3686,16 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
"widgets/border/default/stick"),
"widgets/border/default/stick");
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Always On Top"));
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, (bd->layer == 175 ? 1 : 0));
e_menu_item_callback_set(mi, _e_border_menu_cb_on_top, bd);
e_menu_item_icon_edje_set(mi,
(char *)e_theme_edje_file_get("base/theme/borders",
"widgets/border/default/on_top"),
"widgets/border/default/on_top");
mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1);
@ -3823,6 +3834,23 @@ _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi)
else e_border_stick(bd);
}
static void
_e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi)
{
/* FIXME:
* - Remember old layer
* - update netwm hints
*/
E_Border *bd;
bd = data;
if (bd->layer == 175)
bd->layer = 100;
else
bd->layer = 175;
e_container_window_raise(bd->zone->container, bd->win, bd->layer);
}
static void
_e_border_menu_sendto_pre_cb(void *data, E_Menu *m, E_Menu_Item *mi)
{