Always the same thing.... patch is up to date, cleaner and override previous ones.
-- Sébastien HOUZE [EMAIL PROTECTED]
--- e/data/themes/default_border.edc 2005-07-13 11:25:22.000000000 +0200 +++ e.fun/data/themes/default_border.edc 2005-07-18 16:09:44.000000000 +0200 @@ -213,33 +213,39 @@ image: "e17_border5.png" COMP; image: "e17_border6.png" COMP; image: "e17_border7.png" COMP; - image: "e17_titlebar_outline.png" COMP; - image: "e17_titlebar.png" COMP; - image: "e17_titlebar_hung.png" COMP; - image: "e17_titlebar_shadow1.png" COMP; - image: "e17_titlebar_shadow2.png" COMP; - image: "e17_titlebar_glint1.png" COMP; - image: "e17_titlebar_glint2.png" COMP; - image: "e17_titlebar_glint3.png" COMP; + image: "e17_button_detail_application.png" COMP; + image: "e17_button_detail_borderless.png" COMP; image: "e17_button_detail_close.png" COMP; + image: "e17_button_detail_desktop.png" COMP; + image: "e17_button_detail_fullscreen.png" COMP; + image: "e17_button_detail_kill.png" COMP; + image: "e17_button_detail_life.png" COMP; + image: "e17_button_detail_locks.png" COMP; image: "e17_button_detail_maximize.png" COMP; image: "e17_button_detail_minimize.png" COMP; - image: "e17_button_detail_shade.png" COMP; - image: "e17_button_detail_stick.png" COMP; - image: "e17_button_detail_locks.png" COMP; - image: "e17_button_detail_borderless.png" COMP; + image: "e17_button_detail_position.png" COMP; image: "e17_button_detail_remember.png" COMP; - image: "e17_button_detail_skip_winlist.png" COMP; - image: "e17_button_detail_fullscreen.png" COMP; image: "e17_button_detail_sendto.png" COMP; - image: "e17_button_detail_kill.png" COMP; - image: "e17_button_detail_stacking.png" COMP; + image: "e17_button_detail_shade.png" COMP; + image: "e17_button_detail_size.png" COMP; + image: "e17_button_detail_skip_winlist.png" COMP; image: "e17_button_detail_stack_below.png" COMP; + image: "e17_button_detail_stacking.png" COMP; image: "e17_button_detail_stack_normal.png" COMP; image: "e17_button_detail_stack_on_top.png" COMP; + image: "e17_button_detail_stick.png" COMP; + image: "e17_button_detail_user.png" COMP; image: "e17_mini_button.png" COMP; image: "e17_mini_button_shadow1.png" COMP; image: "e17_mini_button_shadow2.png" COMP; + image: "e17_titlebar_glint1.png" COMP; + image: "e17_titlebar_glint2.png" COMP; + image: "e17_titlebar_glint3.png" COMP; + image: "e17_titlebar_hung.png" COMP; + image: "e17_titlebar_outline.png" COMP; + image: "e17_titlebar.png" COMP; + image: "e17_titlebar_shadow1.png" COMP; + image: "e17_titlebar_shadow2.png" COMP; } group { name: "widgets/border/default/border"; @@ -1296,6 +1302,18 @@ action: SIGNAL_EMIT "action" "maximize"; } program { + name: "maximize_horizontal_action"; + signal: "mouse,clicked,2"; + source: "button_1"; + action: SIGNAL_EMIT "action" "maximize,horizontal"; + } + program { + name: "maximize_vertical_action"; + signal: "mouse,clicked,3"; + source: "button_1"; + action: SIGNAL_EMIT "action" "maximize,vertical"; + } + program { name: "iconify_action"; signal: "mouse,clicked,1"; source: "button_2"; @@ -1670,20 +1688,25 @@ } } +FULL_SIZE_BORDER_BUTTON("application") +FULL_SIZE_BORDER_BUTTON("borderless") FULL_SIZE_BORDER_BUTTON("close") -FULL_SIZE_BORDER_BUTTON("minimize") -FULL_SIZE_BORDER_BUTTON("maximize") -FULL_SIZE_BORDER_BUTTON("shade") -FULL_SIZE_BORDER_BUTTON("stick") +FULL_SIZE_BORDER_BUTTON("desktop") +FULL_SIZE_BORDER_BUTTON("fullscreen") FULL_SIZE_BORDER_BUTTON("kill") +FULL_SIZE_BORDER_BUTTON("life") FULL_SIZE_BORDER_BUTTON("locks") -FULL_SIZE_BORDER_BUTTON("borderless") -FULL_SIZE_BORDER_BUTTON("fullscreen") +FULL_SIZE_BORDER_BUTTON("maximize") +FULL_SIZE_BORDER_BUTTON("minimize") +FULL_SIZE_BORDER_BUTTON("position") FULL_SIZE_BORDER_BUTTON("remember") -FULL_SIZE_BORDER_BUTTON("skip_winlist") FULL_SIZE_BORDER_BUTTON("sendto") +FULL_SIZE_BORDER_BUTTON("shade") +FULL_SIZE_BORDER_BUTTON("size") +FULL_SIZE_BORDER_BUTTON("skip_winlist") +FULL_SIZE_BORDER_BUTTON("stack_below") FULL_SIZE_BORDER_BUTTON("stacking") -FULL_SIZE_BORDER_BUTTON("stack_on_top") FULL_SIZE_BORDER_BUTTON("stack_normal") -FULL_SIZE_BORDER_BUTTON("stack_below") - +FULL_SIZE_BORDER_BUTTON("stack_on_top") +FULL_SIZE_BORDER_BUTTON("stick") +FULL_SIZE_BORDER_BUTTON("user") --- e/src/bin/e_actions.c 2005-07-07 14:02:36.000000000 +0200 +++ e.fun/src/bin/e_actions.c 2005-07-15 01:10:53.000000000 +0200 @@ -248,6 +248,8 @@ } /***************************************************************************/ +//#define ACT_FN_GO(act) \ +// static void _e_actions_act_##act##_go(E_Object *obj, char *params) ACT_FN_GO(window_maximized_toggle) { if (!obj) obj = E_OBJECT(e_border_focused_get()); @@ -263,7 +265,7 @@ bd = (E_Border *)obj; if (bd->maximized) e_border_unmaximize(bd); - else e_border_maximize(bd, e_config->maximize_policy); + else e_border_maximize(bd, 0, e_config->maximize_policy); } } --- e/src/bin/e_border.c 2005-07-13 17:02:08.000000000 +0200 +++ e.fun/src/bin/e_border.c 2005-07-18 19:22:12.000000000 +0200 @@ -18,9 +18,20 @@ #define MOVE 8 #define RESIZE_NONE 11 +/* FIXME: must find if compatible with netwm */ +#define MAXIMIZE 12 +#define MAXIMIZE_H 13 +#define MAXIMIZE_V 14 + +#define MI_ACTION_CLASS 1 +#define MI_CHECK_CLASS 2 +#define MI_RADIO_CLASS 3 +#define MI_SEPARATOR_CLASS 4 + /* local subsystem functions */ static void _e_border_free(E_Border *bd); static void _e_border_del(E_Border *bd); +static void _e_border_menu_free(E_Border *bd); /* FIXME: these likely belong in a separate icccm/client handler */ /* and the border needs to become a dumb object that just does what its */ @@ -77,6 +88,9 @@ static void _e_border_cb_border_menu_end(void *data, E_Menu *m); static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key); +static void _e_border_menu_item_new(E_Border *bd, E_Menu *m, const char *label, const unsigned int class, + unsigned int statement, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), const char *edj); +static void _e_border_submenu_item_new(E_Menu *m, E_Menu *sm, const char *label, const char *edj); 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); @@ -1119,7 +1133,7 @@ } void -e_border_maximize(E_Border *bd, E_Maximize max) +e_border_maximize(E_Border *bd, unsigned int mode, E_Maximize max) { E_OBJECT_CHECK(bd); E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); @@ -1168,20 +1182,53 @@ bd->client_inset.l, bd->client_inset.r, bd->client_inset.t, bd->client_inset.b); } - w = bd->zone->w; - h = bd->zone->h; - /* center x-direction */ + switch (mode) + { + case MAXIMIZE_H: + h = bd->h; + w = bd->zone->w; + y1 = bd->y; + x1 = bd->zone->x + (bd->zone->w - w) / 2; + break; + case MAXIMIZE_V: + h = bd->zone->h; + w = bd->w; + x1 = bd->x; + y1 = bd->zone->y + (bd->zone->h - h) / 2; + break; + case MAXIMIZE: + default: + h = bd->zone->h; + w = bd->zone->w; + /* center x-direction */ + x1 = bd->zone->x + (bd->zone->w - w) / 2; + /* center y-direction */ + y1 = bd->zone->y + (bd->zone->h - h) / 2; + break; + } + _e_border_resize_limit(bd, &w, &h); - x1 = bd->zone->x + (bd->zone->w - w) / 2; - /* center y-direction */ - y1 = bd->zone->y + (bd->zone->h - h) / 2; e_border_move_resize(bd, x1, y1, w, h); bd->maximized = E_MAXIMIZE_FULLSCREEN; break; case E_MAXIMIZE_SMART: case E_MAXIMIZE_EXPAND: - x1 = bd->zone->x; - y1 = bd->zone->y; + if (mode==MAXIMIZE_V) + { + x1 = bd->x; + } + else + { + x1 = bd->zone->x; + } + if (mode==MAXIMIZE_H) + { + y1 = bd->y; + } + else + { + y1 = bd->zone->y; + } x2 = bd->zone->x + bd->zone->w; y2 = bd->zone->y + bd->zone->h; @@ -1191,8 +1238,23 @@ /* walk through docks and toolbars */ e_maximize_border_dock_fit(bd, &x1, &y1, &x2, &y2); - w = x2 - x1; - h = y2 - y1; + switch (mode) + { + case MAXIMIZE_H: + h = bd->h; + w = x2 - x1; + break; + case MAXIMIZE_V: + h = y2 - y1; + w = bd->w; + break; + case MAXIMIZE: + default: + h = y2 - y1; + w = x2 - x1; + break; + } + _e_border_resize_limit(bd, &w, &h); e_border_move_resize(bd, x1, y1, w, h); /* Don't set bd->maximized if E_MAXIMIZE_EXPAND, no need to return from this state */ @@ -1200,8 +1262,22 @@ bd->maximized = e_config->maximize_policy; break; case E_MAXIMIZE_FILL: - x1 = bd->zone->x; - y1 = bd->zone->y; + if (mode==MAXIMIZE_V) + { + x1 = bd->x; + } + else + { + x1 = bd->zone->x; + } + if (mode==MAXIMIZE_H) + { + y1 = bd->y; + } + else + { + y1 = bd->zone->y; + } x2 = bd->zone->x + bd->zone->w; y2 = bd->zone->y + bd->zone->h; @@ -1211,8 +1287,22 @@ /* walk through all windows */ e_maximize_border_border_fill(bd, &x1, &y1, &x2, &y2); - w = x2 - x1; - h = y2 - y1; + switch (mode) + { + case MAXIMIZE_H: + h = bd->h; + w = x2 - x1; + break; + case MAXIMIZE_V: + h = y2 - y1; + w = bd->w; + break; + case MAXIMIZE: + default: + h = y2 - y1; + w = x2 - x1; + break; + } _e_border_resize_limit(bd, &w, &h); e_border_move_resize(bd, x1, y1, w, h); /* Don't set bd->maximized, no need to return from this state */ @@ -1965,26 +2055,9 @@ free(bd->pending_move_resize->data); bd->pending_move_resize = evas_list_remove_list(bd->pending_move_resize, bd->pending_move_resize); } - if (bd->border_menu) - { - e_object_del(E_OBJECT(bd->border_menu)); - bd->border_menu = NULL; - } - if (bd->border_locks_menu) - { - e_object_del(E_OBJECT(bd->border_locks_menu)); - bd->border_locks_menu = NULL; - } - if (bd->border_remember_menu) - { - e_object_del(E_OBJECT(bd->border_remember_menu)); - bd->border_remember_menu = NULL; - } - if (bd->border_stacking_menu) - { - e_object_del(E_OBJECT(bd->border_stacking_menu)); - bd->border_stacking_menu = NULL; - } + + _e_border_menu_free(bd); + if (focused == bd) { // ecore_x_window_focus(bd->zone->container->manager->root); @@ -2041,6 +2114,61 @@ free(bd); } +static void +_e_border_menu_free(E_Border *bd) +{ + if (bd->border_remember_what_menu) + { + e_object_del(E_OBJECT(bd->border_remember_what_menu)); + bd->border_remember_what_menu = NULL; + } + if (bd->border_remember_for_menu) + { + e_object_del(E_OBJECT(bd->border_remember_for_menu)); + bd->border_remember_for_menu = NULL; + } + if (bd->border_remember_match_menu) + { + e_object_del(E_OBJECT(bd->border_remember_match_menu)); + bd->border_remember_match_menu = NULL; + } + if (bd->border_remember_menu) + { + e_object_del(E_OBJECT(bd->border_remember_menu)); + bd->border_remember_menu = NULL; + } + if (bd->border_application_locks_menu) + { + e_object_del(E_OBJECT(bd->border_application_locks_menu)); + bd->border_application_locks_menu = NULL; + } + if (bd->border_common_locks_menu) + { + e_object_del(E_OBJECT(bd->border_common_locks_menu)); + bd->border_common_locks_menu = NULL; + } + if (bd->border_user_locks_menu) + { + e_object_del(E_OBJECT(bd->border_user_locks_menu)); + bd->border_user_locks_menu = NULL; + } + if (bd->border_locks_menu) + { + e_object_del(E_OBJECT(bd->border_locks_menu)); + bd->border_locks_menu = NULL; + } + if (bd->border_stacking_menu) + { + e_object_del(E_OBJECT(bd->border_stacking_menu)); + bd->border_stacking_menu = NULL; + } + if (bd->border_menu) + { + e_object_del(E_OBJECT(bd->border_menu)); + bd->border_menu = NULL; + } +} + static int _e_border_del_dangling_ref_check(void *data) { @@ -3144,7 +3272,23 @@ if (!bd->lock_user_maximize) { if (bd->maximized) e_border_unmaximize(bd); - else e_border_maximize(bd, e_config->maximize_policy); + else e_border_maximize(bd, MAXIMIZE, e_config->maximize_policy); + } + } + else if (!strcmp(source, "maximize,horizontal")) + { + if (!bd->lock_user_maximize) + { + if (bd->maximized) e_border_unmaximize(bd); + else e_border_maximize(bd, MAXIMIZE_H, e_config->maximize_policy); + } + } + else if (!strcmp(source, "maximize,vertical")) + { + if (!bd->lock_user_maximize) + { + if (bd->maximized) e_border_unmaximize(bd); + else e_border_maximize(bd, MAXIMIZE_V, e_config->maximize_policy); } } else if (!strcmp(source, "iconify")) @@ -4125,7 +4269,7 @@ bd->lock_user_shade = rem->prop.lock_user_shade; bd->lock_client_shade = rem->prop.lock_client_shade; bd->lock_user_maximize = rem->prop.lock_user_maximize; - bd->lock_client_mazimize = rem->prop.lock_client_mazimize; + bd->lock_client_maximize = rem->prop.lock_client_maximize; bd->lock_user_fullscreen = rem->prop.lock_user_fullscreen; bd->lock_client_fullscreen = rem->prop.lock_client_fullscreen; bd->lock_border = rem->prop.lock_border; @@ -5077,22 +5221,7 @@ bd = e_object_data_get(E_OBJECT(m)); if (bd) { - if (bd->border_locks_menu) - { - e_object_del(E_OBJECT(bd->border_locks_menu)); - bd->border_locks_menu = NULL; - } - if (bd->border_remember_menu) - { - e_object_del(E_OBJECT(bd->border_remember_menu)); - bd->border_remember_menu = NULL; - } - if (bd->border_stacking_menu) - { - e_object_del(E_OBJECT(bd->border_stacking_menu)); - bd->border_stacking_menu = NULL; - } - bd->border_menu = NULL; + _e_border_menu_free(bd); } e_object_del(E_OBJECT(m)); } @@ -5122,7 +5251,7 @@ NEW_LOCK_FN(lock_user_shade) NEW_LOCK_FN(lock_client_shade) NEW_LOCK_FN(lock_user_maximize) -NEW_LOCK_FN(lock_client_mazimize) +NEW_LOCK_FN(lock_client_maximize) NEW_LOCK_FN(lock_user_fullscreen) NEW_LOCK_FN(lock_client_fullscreen) NEW_LOCK_FN(lock_border) @@ -5573,6 +5702,71 @@ bd->remember->apply &= ~E_REMEMBER_APPLY_RUN; e_config_save_queue(); } + +/* + _e_border_menu_item_new(bd, m, _("Kill"), MI_ACTION_CLASS, 0, + _e_border_menu_cb_kill, "kill"); + */ +static void +_e_border_menu_item_new(E_Border *bd, E_Menu *m, const char *label, const unsigned int class, unsigned int statement, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), const char *edj) +{ + E_Menu_Item *mi; + char icon[128]; + char key[128]; + + mi = e_menu_item_new(m); + if (class != MI_SEPARATOR_CLASS) + { + e_menu_item_label_set(mi, label); + } + + switch(class) + { + case MI_CHECK_CLASS: + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, statement); + break; + case MI_RADIO_CLASS: + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 2); + e_menu_item_toggle_set(mi, statement); + break; + case MI_SEPARATOR_CLASS: + e_menu_item_separator_set(mi, 1); + break; + case MI_ACTION_CLASS: + default: + break; + } + if (class != MI_SEPARATOR_CLASS) + { + e_menu_item_callback_set(mi, func, bd); + } + if (class != MI_SEPARATOR_CLASS && strcmp(edj, "")) + { + sprintf(icon, "widgets/border/default/%s", edj); + sprintf(key, "widgets/border/default/%s", edj); + e_menu_item_icon_edje_set(mi, (char *)e_theme_edje_file_get("base/theme/borders", icon), key); + } +} + +static void +_e_border_submenu_item_new(E_Menu *m, E_Menu *sm, const char *label, const char *edj) +{ + E_Menu_Item *mi; + char icon[128]; + char key[128]; + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, label); + e_menu_item_submenu_set(mi, sm); + if (strcmp(edj, "")) + { + sprintf(icon, "widgets/border/default/%s", edj); + sprintf(key, "widgets/border/default/%s", edj); + e_menu_item_icon_edje_set(mi, (char *)e_theme_edje_file_get("base/theme/borders", icon), key); + } +} static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key) @@ -5582,160 +5776,173 @@ E_App *a; if (bd->border_menu) return; + m = e_menu_new(); + bd->border_user_locks_menu = m; + _e_border_menu_item_new(bd, m, _("Position"), MI_CHECK_CLASS, (bd->lock_user_location ? 1 : 0), + _e_border_menu_cb_lock_user_location, "position"); + _e_border_menu_item_new(bd, m, _("Size"), MI_CHECK_CLASS, (bd->lock_user_size ? 1: 0), + _e_border_menu_cb_lock_user_size, "size"); + _e_border_menu_item_new(bd, m, _("Iconify"), MI_CHECK_CLASS, (bd->lock_user_iconify ? 1: 0), + _e_border_menu_cb_lock_user_iconify, "minimize"); + _e_border_menu_item_new(bd, m, _("Shade"), MI_CHECK_CLASS, (bd->lock_user_shade ? 1: 0), + _e_border_menu_cb_lock_user_shade, "shade"); + _e_border_menu_item_new(bd, m, _("Maximize"), MI_CHECK_CLASS, (bd->lock_user_maximize ? 1: 0), + _e_border_menu_cb_lock_user_maximize, "maximize"); + _e_border_menu_item_new(bd, m, _("Sticky"), MI_CHECK_CLASS, (bd->lock_user_sticky ? 1: 0), + _e_border_menu_cb_lock_user_sticky, "stick"); + _e_border_menu_item_new(bd, m, _("Virtual Desktop"), MI_CHECK_CLASS, (bd->lock_user_desk ? 1: 0), + _e_border_menu_cb_lock_user_desk, "desktop"); + _e_border_menu_item_new(bd, m, _("Fullscreen"), MI_CHECK_CLASS, (bd->lock_user_fullscreen ? 1: 0), + _e_border_menu_cb_lock_user_fullscreen, "fullscreen"); + _e_border_menu_item_new(bd, m, _("Stacking"), MI_CHECK_CLASS, (bd->lock_user_stacking ? 1: 0), + _e_border_menu_cb_lock_user_stacking, "stacking"); + + m = e_menu_new(); + bd->border_application_locks_menu = m; + _e_border_menu_item_new(bd, m, _("Position"), MI_CHECK_CLASS, (bd->lock_client_location ? 1 : 0), + _e_border_menu_cb_lock_client_location, "position"); + _e_border_menu_item_new(bd, m, _("Size"), MI_CHECK_CLASS, (bd->lock_client_size ? 1: 0), + _e_border_menu_cb_lock_client_size, "size"); + _e_border_menu_item_new(bd, m, _("Iconify"), MI_CHECK_CLASS, (bd->lock_client_iconify ? 1: 0), + _e_border_menu_cb_lock_client_iconify, "minimize"); + _e_border_menu_item_new(bd, m, _("Shade"), MI_CHECK_CLASS, (bd->lock_client_shade ? 1: 0), + _e_border_menu_cb_lock_client_shade, "shade"); + _e_border_menu_item_new(bd, m, _("Maximize"), MI_CHECK_CLASS, (bd->lock_client_maximize ? 1: 0), + _e_border_menu_cb_lock_client_maximize, "maximize"); + _e_border_menu_item_new(bd, m, _("Sticky"), MI_CHECK_CLASS, (bd->lock_client_sticky ? 1: 0), + _e_border_menu_cb_lock_client_sticky, "stick"); + _e_border_menu_item_new(bd, m, _("Virtual Desktop"), MI_CHECK_CLASS, (bd->lock_client_desk ? 1: 0), + _e_border_menu_cb_lock_client_desk, "desktop"); + _e_border_menu_item_new(bd, m, _("Fullscreen"), MI_CHECK_CLASS, (bd->lock_client_fullscreen ? 1: 0), + _e_border_menu_cb_lock_client_fullscreen, "fullscreen"); + _e_border_menu_item_new(bd, m, _("Stacking"), MI_CHECK_CLASS, (bd->lock_client_stacking ? 1: 0), + _e_border_menu_cb_lock_client_stacking, "stacking"); m = e_menu_new(); - bd->border_locks_menu = m; + bd->border_common_locks_menu = m; + _e_border_menu_item_new(bd, m, _("Border"), MI_CHECK_CLASS, (bd->lock_border ? 1: 0), + _e_border_menu_cb_lock_border, "borderless"); + _e_border_menu_item_new(bd, m, _("Close"), MI_CHECK_CLASS, (bd->lock_close ? 1: 0), + _e_border_menu_cb_lock_close, "close"); + /* + e_border_in_menu_item_new(bd, m, _("Focus In"), MI_CHECK_CLASS, (bd->lock_focus_in ? 1: 0), + _e_border_menu_cb_lock_focus_in, "focus_in"); + e_border_menu_item_new(bd, m, _("Focus Out"), MI_CHECK_CLASS, (bd->lock_focus_out ? 1: 0), + _e_focus_out_menu_cb_lock_focus_out, "focus_out"); + */ + _e_border_menu_item_new(bd, m, _("Lifespan"), MI_CHECK_CLASS, (bd->lock_life ? 1: 0), + _e_border_menu_cb_lock_life, "life"); -#define NEW_LOCK_MI(txt, var) \ - mi = e_menu_item_new(m); \ - e_menu_item_label_set(mi, txt); \ - e_menu_item_check_set(mi, 1); \ - e_menu_item_toggle_set(mi, bd->var); \ - e_menu_item_callback_set(mi, _e_border_menu_cb_##var, bd); - - /* FIXME: 1 big menu right now - mayeb layer make it 3 submenus? */ - NEW_LOCK_MI(_("Position (User)"), lock_user_location); - NEW_LOCK_MI(_("Size (User)"), lock_user_size); - NEW_LOCK_MI(_("Stacking (User)"), lock_user_stacking); - NEW_LOCK_MI(_("Iconify (User)"), lock_user_iconify); -/* NEW_LOCK_MI(_("Virtual Desktop (User)"), lock_user_desk);*/ - NEW_LOCK_MI(_("Sticky (User)"), lock_user_sticky); - NEW_LOCK_MI(_("Shade (User)"), lock_user_shade); - NEW_LOCK_MI(_("Maximize (User)"), lock_user_maximize); - NEW_LOCK_MI(_("Fullscreen (User)"), lock_user_fullscreen); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_LOCK_MI(_("Position (Application)"), lock_client_location); - NEW_LOCK_MI(_("Size (Application)"), lock_client_size); - NEW_LOCK_MI(_("Stacking (Application)"), lock_client_stacking); - NEW_LOCK_MI(_("Iconify (Application)"), lock_client_iconify); -/* NEW_LOCK_MI(_("Virtual Desktop (Application)"), lock_client_desk);*/ - NEW_LOCK_MI(_("Sticky (Application)"), lock_client_sticky); - NEW_LOCK_MI(_("Shade (Application)"), lock_client_shade); - NEW_LOCK_MI(_("Maximize (Application)"), lock_client_mazimize); - NEW_LOCK_MI(_("Fullscreen (Application)"), lock_client_fullscreen); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_LOCK_MI(_("Border"), lock_border); - NEW_LOCK_MI(_("Close"), lock_close); -/* NEW_LOCK_MI(_("Focus In"), lock_focus_in);*/ -/* NEW_LOCK_MI(_("Focus Out"), lock_focus_out);*/ - NEW_LOCK_MI(_("Lifespan"), lock_life); + m = e_menu_new(); + bd->border_locks_menu = m; + _e_border_submenu_item_new(m, bd->border_user_locks_menu, _("User"), "user"); + _e_border_submenu_item_new(m, bd->border_application_locks_menu, _("Application"), "application"); + _e_border_submenu_item_new(m, bd->border_common_locks_menu, _("Common"), "common"); m = e_menu_new(); - bd->border_remember_menu = m; + bd->border_remember_what_menu = m; + + _e_border_menu_item_new(bd, m, _("Position"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_POS)) ? 1: 0), + _e_border_menu_cb_remember_apply_pos, "position"); + _e_border_menu_item_new(bd, m, _("Size"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_SIZE)) ? 1: 0), + _e_border_menu_cb_remember_apply_size, "size"); + _e_border_menu_item_new(bd, m, _("Stickiness"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_STICKY)) ? 1: 0), + _e_border_menu_cb_remember_apply_sticky, "stick"); + _e_border_menu_item_new(bd, m, _("Shaded State"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_SHADE)) ? 1: 0), + _e_border_menu_cb_remember_apply_shade, "shade"); + _e_border_menu_item_new(bd, m, _("Border"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_BORDER)) ? 1: 0), + _e_border_menu_cb_remember_apply_border, "borderless"); + _e_border_menu_item_new(bd, m, _("Skip Window List"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_SKIP_WINLIST)) ? 1: 0), + _e_border_menu_cb_remember_apply_skip_winlist, "skip_winlist"); + _e_border_menu_item_new(bd, m, _("Stacking"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_LAYER)) ? 1: 0), + _e_border_menu_cb_remember_apply_layer, "stacking"); + _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, ""); + _e_border_menu_item_new(bd, m, _("Locks"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_LOCKS)) ? 1: 0), + _e_border_menu_cb_remember_apply_locks, "locks"); + _e_border_menu_item_new(bd, m, _("Desktop"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_DESKTOP)) ? 1: 0), + _e_border_menu_cb_remember_apply_desktop, "position"); + _e_border_menu_item_new(bd, m, _("Zone"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_ZONE)) ? 1: 0), + _e_border_menu_cb_remember_apply_zone, "zone"); + /* + _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, ""); + _e_border_menu_item_new(bd, m, _("Run this porgram on login"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_RUN)) ? 1: 0), + _e_border_menu_cb_remember_apply_run, "run"); + */ -#define NEW_REMEMBER_MI(txt, flag, var, cb) \ - mi = e_menu_item_new(m); \ - e_menu_item_label_set(mi, txt); \ - e_menu_item_check_set(mi, 1); \ - if ((bd->remember) && (bd->remember->flag & var)) \ - e_menu_item_toggle_set(mi, 1); \ - e_menu_item_callback_set(mi, cb, bd); + m = e_menu_new(); + bd->border_remember_for_menu = m; + _e_border_menu_item_new(bd, m, _("This Window"), MI_CHECK_CLASS, (bd->remember ? 1: 0), + _e_border_menu_cb_remember, ""); + _e_border_menu_item_new(bd, m, _("This Instance Only"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->apply_first_only & 1)) ? 1: 0), _e_border_menu_cb_remember_first, ""); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Remember This Window")); \ - e_menu_item_check_set(mi, 1); - if (bd->remember) - e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _e_border_menu_cb_remember, bd); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Remember This Instance Only"), apply_first_only, 1, _e_border_menu_cb_remember_first); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Match by Name"), match, E_REMEMBER_MATCH_NAME, _e_border_menu_cb_remember_match_name); - NEW_REMEMBER_MI(_("Match by Class"), match, E_REMEMBER_MATCH_CLASS, _e_border_menu_cb_remember_match_class); - NEW_REMEMBER_MI(_("Match by Title"), match, E_REMEMBER_MATCH_TITLE, _e_border_menu_cb_remember_match_title); - NEW_REMEMBER_MI(_("Match by Role"), match, E_REMEMBER_MATCH_ROLE, _e_border_menu_cb_remember_match_role); - NEW_REMEMBER_MI(_("Match by Window Type"), match, E_REMEMBER_MATCH_TYPE, _e_border_menu_cb_remember_match_type); - NEW_REMEMBER_MI(_("Match by Transient Status"), match, E_REMEMBER_MATCH_TRANSIENT, _e_border_menu_cb_remember_match_transient); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Remember Position"), apply, E_REMEMBER_APPLY_POS, _e_border_menu_cb_remember_apply_pos); - NEW_REMEMBER_MI(_("Remember Size"), apply, E_REMEMBER_APPLY_SIZE, _e_border_menu_cb_remember_apply_size); - NEW_REMEMBER_MI(_("Remember Stacking"), apply, E_REMEMBER_APPLY_LAYER, _e_border_menu_cb_remember_apply_layer); - NEW_REMEMBER_MI(_("Remember Locks"), apply, E_REMEMBER_APPLY_LOCKS, _e_border_menu_cb_remember_apply_locks); - NEW_REMEMBER_MI(_("Remember Border"), apply, E_REMEMBER_APPLY_BORDER, _e_border_menu_cb_remember_apply_border); - NEW_REMEMBER_MI(_("Remember Stickiness"), apply, E_REMEMBER_APPLY_STICKY, _e_border_menu_cb_remember_apply_sticky); - NEW_REMEMBER_MI(_("Remember Desktop"), apply, E_REMEMBER_APPLY_DESKTOP, _e_border_menu_cb_remember_apply_desktop); - NEW_REMEMBER_MI(_("Remember Shaded State"), apply, E_REMEMBER_APPLY_SHADE, _e_border_menu_cb_remember_apply_shade); - NEW_REMEMBER_MI(_("Remember Zone"), apply, E_REMEMBER_APPLY_ZONE, _e_border_menu_cb_remember_apply_zone); - NEW_REMEMBER_MI(_("Remember Skip Window List"), apply, E_REMEMBER_APPLY_SKIP_WINLIST, _e_border_menu_cb_remember_apply_skip_winlist); -/* - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Run this porgram on login"), apply, E_REMEMBER_APPLY_RUN, _e_border_menu_cb_remember_apply_run); - */ + + m = e_menu_new(); + bd->border_remember_match_menu = m; + _e_border_menu_item_new(bd, m, _("Name"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_NAME)) ? 1: 0), + _e_border_menu_cb_remember_match_name, ""); + _e_border_menu_item_new(bd, m, _("Class"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_CLASS)) ? 1: 0), + _e_border_menu_cb_remember_match_class, ""); + _e_border_menu_item_new(bd, m, _("Title"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_TITLE)) ? 1: 0), + _e_border_menu_cb_remember_match_title, ""); + _e_border_menu_item_new(bd, m, _("Role"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_ROLE)) ? 1: 0), + _e_border_menu_cb_remember_match_role, ""); + _e_border_menu_item_new(bd, m, _("Window Type"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_TYPE)) ? 1: 0), + _e_border_menu_cb_remember_match_type, ""); + _e_border_menu_item_new(bd, m, _("Transient Status"), MI_CHECK_CLASS, + (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_TRANSIENT)) ? 1: 0), + _e_border_menu_cb_remember_match_transient, ""); + m = e_menu_new(); - bd->border_stacking_menu = m; + bd->border_remember_menu = m; + _e_border_submenu_item_new(m, bd->border_remember_what_menu, _("What"), ""); + _e_border_submenu_item_new(m, bd->border_remember_for_menu, _("For"), ""); + _e_border_submenu_item_new(m, bd->border_remember_match_menu, _("Match By"), ""); + if (!bd->lock_user_stacking) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Always On Top")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 2); - e_menu_item_toggle_set(mi, (bd->layer == 150 ? 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/stack_on_top"), - "widgets/border/default/stack_on_top"); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Normal")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 2); - e_menu_item_toggle_set(mi, (bd->layer == 100 ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_normal, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stack_normal"), - "widgets/border/default/stack_normal"); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Always Below")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 2); - e_menu_item_toggle_set(mi, (bd->layer == 50 ? 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/stack_below"), - "widgets/border/default/stack_below"); + m = e_menu_new(); + bd->border_stacking_menu = m; + _e_border_menu_item_new(bd, m, _("Always On Top"), MI_RADIO_CLASS, (bd->layer == 150 ? 1: 0), + _e_border_menu_cb_on_top, "stack_on_top"); + _e_border_menu_item_new(bd, m, _("Normal"), MI_RADIO_CLASS, (bd->layer == 100 ? 1: 0), + _e_border_menu_cb_normal, "stack_normal"); + _e_border_menu_item_new(bd, m, _("Always Below"), MI_RADIO_CLASS, (bd->layer == 50 ? 1: 0), + _e_border_menu_cb_below, "stack_below"); } - + m = e_menu_new(); e_object_data_set(E_OBJECT(m), bd); bd->border_menu = m; e_menu_post_deactivate_callback_set(m, _e_border_cb_border_menu_end, NULL); - if (!bd->lock_close) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Close")); - e_menu_item_callback_set(mi, _e_border_menu_cb_close, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/close"), - "widgets/border/default/close"); + _e_border_menu_item_new(bd, m, _("Close"), MI_ACTION_CLASS, 0, + _e_border_menu_cb_close, "close"); } - - if (!bd->lock_user_iconify) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Iconify")); - e_menu_item_callback_set(mi, _e_border_menu_cb_iconify, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/minimize"), - "widgets/border/default/minimize"); - } - - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - if ((!bd->lock_close) && (!bd->internal)) { + /* + _e_border_menu_item_new(bd, m, _("Kill"), MI_ACTION_CLASS, 0, + _e_border_menu_cb_kill, "kill"); + */ mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Kill")); e_menu_item_callback_set(mi, _e_border_menu_cb_kill, bd); @@ -5743,124 +5950,59 @@ (char *)e_theme_edje_file_get("base/theme/borders", "widgets/border/default/kill"), "widgets/border/default/kill"); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); } - - if (!bd->lock_user_shade) + _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, ""); + if (!bd->lock_user_iconify) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Shaded")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->shaded ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_shade, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/shade"), - "widgets/border/default/shade"); + _e_border_menu_item_new(bd, m, _("Iconify"), MI_ACTION_CLASS, 0, + _e_border_menu_cb_iconify, "minimize"); } - if (!bd->lock_user_maximize) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Maximized")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/maximize"), - "widgets/border/default/maximize"); + _e_border_menu_item_new(bd, m, _("Maximized"), MI_CHECK_CLASS, (bd->maximized ? 1 : 0), + _e_border_menu_cb_maximize, "maximize"); + } + if (!bd->lock_user_shade) + { + _e_border_menu_item_new(bd, m, _("Shaded"), MI_CHECK_CLASS, (bd->shaded ? 1 : 0), + _e_border_menu_cb_shade, "shade"); } - if (!bd->lock_user_sticky) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Sticky")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->sticky ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_stick, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stick"), - "widgets/border/default/stick"); + _e_border_menu_item_new(bd, m, _("Sticky"), MI_CHECK_CLASS, (bd->sticky ? 1 : 0), + _e_border_menu_cb_stick, "stick"); } - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Stacking")); - e_menu_item_submenu_set(mi, bd->border_stacking_menu); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stacking"), - "widgets/border/default/stacking"); - if (!bd->lock_border) { - 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, !strcmp("borderless", bd->client.border.name)); - e_menu_item_callback_set(mi, _e_border_menu_cb_borderless, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/borderless"), - "widgets/border/default/borderless"); + _e_border_menu_item_new(bd, m, _("Borderless"), MI_CHECK_CLASS, (!strcmp("borderless", bd->client.border.name)), + _e_border_menu_cb_borderless, "borderless"); } - if (!bd->lock_user_fullscreen) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Fullscreen")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, bd->fullscreen); - e_menu_item_callback_set(mi, _e_border_menu_cb_fullscreen, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/fullscreen"), - "widgets/border/default/fullscreen"); + _e_border_menu_item_new(bd, m, _("Fullscreen"), MI_CHECK_CLASS, (bd->fullscreen ? 1: 0), + _e_border_menu_cb_fullscreen, "fullscreen"); } - if ((bd->client.icccm.accepts_focus) && - (!bd->client.netwm.state.skip_taskbar)) + (!bd->client.netwm.state.skip_taskbar)) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Skip Window List")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, bd->user_skip_winlist); - e_menu_item_callback_set(mi, _e_border_menu_cb_skip_winlist, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/skip_winlist"), - "widgets/border/default/skip_winlist"); + _e_border_menu_item_new(bd, m, _("Skip Window List"), MI_CHECK_CLASS, (bd->user_skip_winlist ? 1: 0), + _e_border_menu_cb_skip_winlist, "skip_winlist"); } - - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Locks")); - e_menu_item_submenu_set(mi, bd->border_locks_menu); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/locks"), - "widgets/border/default/locks"); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Remember")); - e_menu_item_submenu_set(mi, bd->border_remember_menu); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/remember"), - "widgets/border/default/remember"); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - + if (!bd->lock_user_stacking) + { + _e_border_submenu_item_new(m, bd->border_stacking_menu, _("Stacking"), "stacking"); + } + _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, ""); + _e_border_submenu_item_new(m, bd->border_locks_menu, _("Locks"), "locks"); + _e_border_submenu_item_new(m, bd->border_remember_menu, _("Remember"), "remember"); + _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, ""); + /* FIXME: ACTION_CLASS below (pre_callback is the pb) ? */ mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Send To")); e_menu_item_submenu_pre_callback_set(mi, _e_border_menu_cb_sendto_pre, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/sendto"), - "widgets/border/default/sendto"); + e_menu_item_icon_edje_set(mi, (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/sendto"), + "widgets/border/default/sendto"); if (ecore_file_app_installed("e_util_eapp_edit")) { @@ -5915,7 +6057,6 @@ e_menu_activate_mouse(m, bd->zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN); } - static void _e_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi) { @@ -5958,7 +6099,7 @@ if (!bd->lock_user_maximize) { if (bd->maximized) e_border_unmaximize(bd); - else e_border_maximize(bd, e_config->maximize_policy); + else e_border_maximize(bd, MAXIMIZE, e_config->maximize_policy); } } --- e/src/bin/e_border.h 2005-07-13 11:25:28.000000000 +0200 +++ e.fun/src/bin/e_border.h 2005-07-15 01:08:00.000000000 +0200 @@ -304,7 +304,7 @@ unsigned int lock_user_shade : 1; /*DONE*/ unsigned int lock_client_shade : 1; /*DONE*/ unsigned int lock_user_maximize : 1; /*DONE*/ - unsigned int lock_client_mazimize : 1; /*DONE*/ + unsigned int lock_client_maximize : 1; /*DONE*/ unsigned int lock_user_fullscreen : 1; /*DONE*/ unsigned int lock_client_fullscreen : 1; /*DONE*/ unsigned int lock_border : 1; /*DONE*/ @@ -336,7 +336,13 @@ Evas_List *stick_desks; E_Menu *border_menu; E_Menu *border_locks_menu; + E_Menu *border_user_locks_menu; + E_Menu *border_application_locks_menu; + E_Menu *border_common_locks_menu; E_Menu *border_remember_menu; + E_Menu *border_remember_what_menu; + E_Menu *border_remember_for_menu; + E_Menu *border_remember_match_menu; E_Menu *border_stacking_menu; Evas_List *pending_move_resize; @@ -478,7 +484,7 @@ EAPI void e_border_focus_set(E_Border *bd, int focus, int set); EAPI void e_border_shade(E_Border *bd, E_Direction dir); EAPI void e_border_unshade(E_Border *bd, E_Direction dir); -EAPI void e_border_maximize(E_Border *bd, E_Maximize max); +EAPI void e_border_maximize(E_Border *bd, unsigned int mode, E_Maximize max); EAPI void e_border_unmaximize(E_Border *bd); EAPI void e_border_fullscreen(E_Border *bd); EAPI void e_border_unfullscreen(E_Border *bd); --- e/src/bin/e_config.c 2005-07-13 11:25:28.000000000 +0200 +++ e.fun/src/bin/e_config.c 2005-07-14 13:08:26.000000000 +0200 @@ -148,7 +148,7 @@ E_CONFIG_VAL(D, T, prop.lock_user_shade, UCHAR); E_CONFIG_VAL(D, T, prop.lock_client_shade, UCHAR); E_CONFIG_VAL(D, T, prop.lock_user_maximize, UCHAR); - E_CONFIG_VAL(D, T, prop.lock_client_mazimize, UCHAR); + E_CONFIG_VAL(D, T, prop.lock_client_maximize, UCHAR); E_CONFIG_VAL(D, T, prop.lock_user_fullscreen, UCHAR); E_CONFIG_VAL(D, T, prop.lock_client_fullscreen, UCHAR); E_CONFIG_VAL(D, T, prop.lock_border, UCHAR); --- e/src/bin/e_hints.c 2005-07-11 09:59:48.000000000 +0200 +++ e.fun/src/bin/e_hints.c 2005-07-15 01:11:15.000000000 +0200 @@ -400,7 +400,7 @@ if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h)) { e_hints_window_saved_size_get(bd, &bd->saved.x, &bd->saved.y, &bd->saved.w, &bd->saved.h); - e_border_maximize(bd, e_config->maximize_policy); + e_border_maximize(bd, 0, e_config->maximize_policy); } if (bd->client.netwm.state.fullscreen) e_border_fullscreen(bd); @@ -574,7 +574,7 @@ bd->changed = 1; if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h)) - e_border_maximize(bd, e_config->maximize_policy); + e_border_maximize(bd, 0, e_config->maximize_policy); else if ((!bd->client.netwm.state.maximized_v) && (!bd->client.netwm.state.maximized_h)) e_border_unmaximize(bd); @@ -609,7 +609,7 @@ bd->changed = 1; if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h)) - e_border_maximize(bd, e_config->maximize_policy); + e_border_maximize(bd, 0, e_config->maximize_policy); else if ((!bd->client.netwm.state.maximized_v) && (!bd->client.netwm.state.maximized_h)) e_border_unmaximize(bd); --- e/src/bin/e_remember.c 2005-07-10 14:42:47.000000000 +0200 +++ e.fun/src/bin/e_remember.c 2005-07-14 09:18:37.000000000 +0200 @@ -189,7 +189,7 @@ rem->prop.lock_user_shade = bd->lock_user_shade; rem->prop.lock_client_shade = bd->lock_client_shade; rem->prop.lock_user_maximize = bd->lock_user_maximize; - rem->prop.lock_client_mazimize = bd->lock_client_mazimize; + rem->prop.lock_client_maximize = bd->lock_client_maximize; rem->prop.lock_user_fullscreen = bd->lock_user_fullscreen; rem->prop.lock_client_fullscreen = bd->lock_client_fullscreen; rem->prop.lock_border = bd->lock_border; --- e/src/bin/e_remember.h 2005-07-10 14:42:48.000000000 +0200 +++ e.fun/src/bin/e_remember.h 2005-07-14 09:18:37.000000000 +0200 @@ -62,7 +62,7 @@ unsigned char lock_user_shade; unsigned char lock_client_shade; unsigned char lock_user_maximize; - unsigned char lock_client_mazimize; + unsigned char lock_client_maximize; unsigned char lock_user_fullscreen; unsigned char lock_client_fullscreen; unsigned char lock_border; --- e/data/themes/images/Makefile.in 2005-07-13 11:29:46.000000000 +0200 +++ e.fun/data/themes/images/Makefile.in 2005-07-18 16:09:43.000000000 +0200 @@ -191,22 +191,28 @@ e17_border7.png \ e17_button.png \ e17_button2.png \ +e17_button_detail_application.png \ e17_button_detail_borderless.png \ e17_button_detail_close.png \ +e17_button_detail_desktop.png \ e17_button_detail_fullscreen.png \ e17_button_detail_kill.png \ +e17_button_detail_life.png \ e17_button_detail_locks.png \ e17_button_detail_maximize.png \ e17_button_detail_minimize.png \ +e17_button_detail_position.png \ e17_button_detail_remember.png \ e17_button_detail_sendto.png \ e17_button_detail_shade.png \ +e17_button_detail_size.png \ e17_button_detail_skip_winlist.png \ e17_button_detail_stack_below.png \ e17_button_detail_stacking.png \ e17_button_detail_stack_normal.png \ e17_button_detail_stack_on_top.png \ e17_button_detail_stick.png \ +e17_button_detail_user.png \ e17_menu_arrow.png \ e17_menu_bg.png \ e17_menu_bg_border.png \
e17_button_details.tgz
Description: application/compressed-tar