From 1c2ba52eb45b40db6b885bf4e6e3957f3278110e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Briano?= Date: Thu, 31 Dec 2009 03:34:27 +0000 Subject: [PATCH] Add Move and Resize to the border menu. SVN revision: 44820 --- data/themes/default.edc | 2 ++ src/bin/e_int_border_menu.c | 48 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/data/themes/default.edc b/data/themes/default.edc index ad3fac8da..cc2b5dce1 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -24301,6 +24301,8 @@ BORDERICON("stacking","icon_border_stack_norm.png") BORDERICON("stack_on_top","icon_border_stack_top.png") BORDERICON("stack_normal","icon_border_stack_norm.png") BORDERICON("stack_below","icon_border_stack_bot.png") +BORDERICON("move_icon", "move.png") +BORDERICON("resize_icon", "resize.png"); BORDERICON("maximize","icon_border_maximize.png") BORDERICON("fullscreen","icon_border_maximize.png") BORDERICON("minimize","icon_border_minimize.png") diff --git a/src/bin/e_int_border_menu.c b/src/bin/e_int_border_menu.c index 66d50bb93..784ab0e6b 100644 --- a/src/bin/e_int_border_menu.c +++ b/src/bin/e_int_border_menu.c @@ -10,6 +10,8 @@ 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); static void _e_border_menu_cb_kill(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_move(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_resize(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_maximize_pre(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_maximize_vertically(void *data, E_Menu *m, E_Menu_Item *mi); @@ -139,6 +141,30 @@ e_int_border_menu_create(E_Border *bd) e_menu_item_separator_set(mi, 1); separator = 1; + if ((!bd->lock_user_location) && (!bd->maximized || e_config->allow_manip)) + { + separator = 0; + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Move")); + e_menu_item_callback_set(mi, _e_border_menu_cb_move, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/move_icon"), + "e/widgets/border/default/move_icon"); + } + + if ((!bd->lock_user_size) && (!bd->maximized || e_config->allow_manip)) + { + separator = 0; + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Resize")); + e_menu_item_callback_set(mi, _e_border_menu_cb_resize, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/resize_icon"), + "e/widgets/border/default/resize_icon"); + } + if (!(((bd->client.icccm.min_w == bd->client.icccm.max_w) && (bd->client.icccm.min_h == bd->client.icccm.max_h)) || (bd->lock_user_maximize))) @@ -340,6 +366,28 @@ _e_border_menu_cb_kill(void *data, E_Menu *m, E_Menu_Item *mi) if ((a) && (a->func.go)) a->func.go(NULL, NULL); } +static void +_e_border_menu_cb_move(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + + bd = data; + + if (!bd->lock_user_location) + e_border_act_move_keyboard(bd); +} + +static void +_e_border_menu_cb_resize(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + + bd = data; + + if (!bd->lock_user_size) + e_border_act_resize_keyboard(bd); +} + static void _e_border_menu_cb_maximize_pre(void *data, E_Menu *m, E_Menu_Item *mi) {