From 9605a4fb85bf37f277929dd23e4b0aa381943aad Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 10 Dec 2012 08:20:52 +0000 Subject: [PATCH] resizable dialogs are now compatible with the maximize action and maximize options in border menu ticket #1950 SVN revision: 80581 --- src/bin/e_actions.c | 6 +++++- src/bin/e_int_border_menu.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c index f623d90bf..390d0461e 100644 --- a/src/bin/e_actions.c +++ b/src/bin/e_actions.c @@ -543,6 +543,7 @@ ACT_FN_GO(window_fullscreen, ) ACT_FN_GO(window_maximized_toggle, ) { E_Border *bd; + Eina_Bool resize = EINA_FALSE; if (!obj) obj = E_OBJECT(e_border_focused_get()); if (!obj) return; @@ -553,8 +554,11 @@ ACT_FN_GO(window_maximized_toggle, ) } bd = (E_Border *)obj; + /* internal dialog which is resizable */ + if (bd->internal && (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)) + resize = (bd->client.icccm.max_w != bd->client.icccm.min_w); if ((!bd->lock_user_maximize) && (!bd->fullscreen) && - ((bd->client.netwm.type == ECORE_X_WINDOW_TYPE_NORMAL) || + (resize || (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_NORMAL) || (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_UNKNOWN))) { if ((bd->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE) diff --git a/src/bin/e_int_border_menu.c b/src/bin/e_int_border_menu.c index 717d35e53..d0b9cb46a 100644 --- a/src/bin/e_int_border_menu.c +++ b/src/bin/e_int_border_menu.c @@ -619,6 +619,7 @@ _e_border_menu_cb_window_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi) E_Menu *subm; E_Menu_Item *submi; E_Border *bd; + Eina_Bool resize = EINA_FALSE; if (!(bd = data)) return; @@ -627,7 +628,10 @@ _e_border_menu_cb_window_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi) e_menu_item_submenu_set(mi, subm); e_object_unref(E_OBJECT(subm)); - if ((bd->client.netwm.type == ECORE_X_WINDOW_TYPE_NORMAL) || + /* internal dialog which is resizable */ + if (bd->internal && (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)) + resize = (bd->client.icccm.max_w != bd->client.icccm.min_w); + if (resize || (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_NORMAL) || (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_UNKNOWN)) { if (!(((bd->client.icccm.min_w == bd->client.icccm.max_w) &&