_e_calc_visibility = EINA_TRUE;
}
+E_API void
+e_client_post_raise_lower_set(E_Client *ec, Eina_Bool raise_set, Eina_Bool lower_set)
+{
+ if (!ec) return;
+
+ if (!ec->first_mapped)
+ {
+ ec->post_raise = raise_set;
+ ec->post_lower = lower_set;
+ }
+}
+
+E_API Eina_Bool
+e_client_first_mapped_get(E_Client *ec)
+{
+ if (!ec) return EINA_FALSE;
+
+ return ec->first_mapped;
+}
+
////////////////////////////////////////////////
EINTERN void
e_client_idler_before(void)
e_pixmap_client_set(cp, ec);
ec->resize_mode = E_POINTER_RESIZE_NONE;
ec->layer = E_LAYER_CLIENT_NORMAL;
+ ec->first_mapped = EINA_FALSE;
+ ec->post_raise = EINA_TRUE;
+ ec->post_lower = EINA_FALSE;
/* FIXME: if first_map is 1 then we should ignore the first hide event
* or ensure the window is already hidden and events flushed before we
Eina_Bool keyboard_resizing : 1;
Eina_Bool gesture_disable : 1;
Eina_Bool floating : 1; //client is set as floating mode
+ Eina_Bool first_mapped : 1;
+ Eina_Bool post_raise : 1;
+ Eina_Bool post_lower : 1;
Eina_Bool on_post_updates : 1; // client is on the post update list
#ifdef HAVE_WAYLAND
E_API void e_client_desk_window_profile_wait_desk_set(E_Client *ec, E_Desk *desk);
E_API void e_client_layout_cb_set(E_Client_Layout_Cb cb);
E_API void e_client_visibility_calculate(void);
+E_API void e_client_post_raise_lower_set(E_Client *ec, Eina_Bool raise_set, Eina_Bool lower_set);
+E_API Eina_Bool e_client_first_mapped_get(E_Client *ec);
E_API void e_client_transform_update(E_Client *ec);
E_API void e_client_transform_apply(E_Client *ec, double degree, double zoom, int cx, int cy);
evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h);
evas_object_show(ec->frame);
ec->comp_data->mapped = EINA_TRUE;
+
+ if ((!ec->first_mapped) && (!ec->iconic) && (!e_client_util_ignored_get(ec)))
+ {
+ if (!ec->comp_data->sub.data)
+ {
+ if (ec->post_lower)
+ evas_object_lower(ec->frame);
+ else if (ec->post_raise)
+ evas_object_raise(ec->frame);
+ }
+ }
+
+ ec->first_mapped = 1;
}
}
* respective parents... */
/* if (ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) */
/* e_client_raise_latest_set(ec); */
+
+ if ((!ec->first_mapped) && (!ec->iconic) && (!e_client_util_ignored_get(ec)))
+ {
+ if (!ec->comp_data->sub.data)
+ {
+ if (ec->post_lower)
+ evas_object_lower(ec->frame);
+ else if (ec->post_raise)
+ evas_object_raise(ec->frame);
+ }
+ }
+
+ ec->first_mapped = 1;
}
ec->map_timer = NULL;
return ECORE_CALLBACK_CANCEL;
* respective parents... */
/* if (ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) */
/* e_client_raise_latest_set(ec); */
+
+ if ((!ec->first_mapped) && (!ec->iconic) && (!e_client_util_ignored_get(ec)))
+ {
+ if (!ec->comp_data->sub.data)
+ {
+ if (ec->post_lower)
+ evas_object_lower(ec->frame);
+ else if (ec->post_raise)
+ evas_object_raise(ec->frame);
+ }
+ }
+
+ ec->first_mapped = 1;
}
TRACE_DS_END();