ecore_evas-x11: unset withdrawn state when window is mapped
authorMike Blumenkrantz <zmike@osg.samsung.com>
Sat, 26 Sep 2015 01:19:12 +0000 (21:19 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Sat, 26 Sep 2015 01:57:37 +0000 (21:57 -0400)
according to ICCCM 4.1.4:
Newly created top-level windows are in the Withdrawn state.
Once the window has been provided with suitable properties,
the client is free to change its state...
...
Only the client can effect a transition into or out of the Withdrawn state

given that no external force can (according to spec) transition a
window out of the withdrawn state, this must be done at a reasonable
point. mapping the window seems like a reasonable point to me.

fix T2745
ref 5954289c6ce1cd55ff212428291604b981438439

@fix

src/modules/ecore_evas/engines/x/ecore_evas_x.c

index 40f538c..465d8f5 100644 (file)
@@ -1706,10 +1706,11 @@ _ecore_evas_x_event_window_show(void *data EINA_UNUSED, int type EINA_UNUSED, vo
      }
    if ((first_map_bug) && (!strcmp(ee->driver, "opengl_x11")))
      evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
-   if (ee->prop.override)
+   if (ee->prop.withdrawn)
      {
         ee->prop.withdrawn = EINA_FALSE;
         if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+        _ecore_evas_x_hints_update(ee);
      }
    if (ee->visible) return ECORE_CALLBACK_PASS_ON;
 //   if (ee->visible) return ECORE_CALLBACK_DONE;