add toggle for borderless window state to top-level of border menu

This commit is contained in:
Mike Blumenkrantz 2013-05-08 08:55:54 +01:00
parent ddaa6013c6
commit 219b40545b
3 changed files with 29 additions and 1 deletions

View File

@ -2,6 +2,7 @@
* e_fm2_optimal_size_calc returns bool to indicate whether the returned size can be used
* filemanager windows no longer resize to 0x0 when double clicked with no icons present
* border menu now has top-level item to set borderless state
2013-04-26 Mike Blumenkrantz

1
NEWS
View File

@ -137,6 +137,7 @@ Improvements:
* added new modes for notification display on multiple monitors
* improve efm mouse movement detection for icons
* add check for vmware window in another spot to disable key remapping
* border menu now has top-level item to set borderless state
Fixes:
* IBar menu didn't allow to configure different icon sources, show contents menu even on empty IBar.

View File

@ -3,6 +3,7 @@
static void _e_border_cb_border_menu_end(void *data, E_Menu *m);
static void _e_border_menu_cb_locks(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_remember(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_border(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi);
@ -99,6 +100,7 @@ e_int_border_menu_create(E_Border *bd)
Eina_List *l;
E_Border_Menu_Hook *h;
char buf[128];
Eina_Bool borderless;
if (bd->border_menu) return;
@ -121,6 +123,7 @@ e_int_border_menu_create(E_Border *bd)
if (bd->desktop)
e_util_desktop_menu_item_icon_add(bd->desktop, 16, mi);
}
borderless = bd->borderless || (!bd->client.border.name) || (!e_util_strcmp("borderless", bd->client.border.name));
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Window"));
@ -171,7 +174,7 @@ e_int_border_menu_create(E_Border *bd)
}
if ((!bd->lock_user_shade) && (!bd->fullscreen) && (!bd->maximized) &&
((!bd->client.border.name) || (strcmp("borderless", bd->client.border.name))))
((!bd->client.border.name) || (!borderless)))
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Shade"));
@ -184,6 +187,19 @@ e_int_border_menu_create(E_Border *bd)
"e/widgets/border/default/shade");
}
if ((!bd->fullscreen) && (!bd->lock_border) && (!bd->shading) && (!bd->shaded))
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Borderless"));
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, borderless);
e_menu_item_callback_set(mi, _e_border_menu_cb_borderless, bd);
e_menu_item_icon_edje_set(mi,
e_theme_edje_file_get("base/theme/borders",
"e/widgets/border/default/borderless"),
"e/widgets/border/default/borderless");
}
if (!bd->lock_close)
{
mi = e_menu_item_new(m);
@ -291,6 +307,16 @@ _e_border_menu_cb_border(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNU
e_configure_registry_call("internal/borders_border", bd->zone->container, buf);
}
static void
_e_border_menu_cb_borderless(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
{
E_Border *bd = data;
BD_CHANGED(bd);
bd->client.border.changed = 1;
bd->borderless = mi->toggle;
}
static void
_e_border_menu_cb_close(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
{