resizable dialogs are now compatible with the maximize action and maximize options...
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 10 Dec 2012 08:20:52 +0000 (08:20 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 10 Dec 2012 08:20:52 +0000 (08:20 +0000)
ticket #1950

SVN revision: 80581

src/bin/e_actions.c
src/bin/e_int_border_menu.c

index f623d90bf216b51d267dfa88231a7823d34f204a..390d0461ea51c97699fd88300589d35725c3b285 100644 (file)
@@ -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)
index 717d35e53f4263d8cde5b5971dddc486b64ee8a5..d0b9cb46aa1a2f9d8092c8461e0648462187339a 100644 (file)
@@ -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) &&