if (e_config->transient.raise && ec->transients)
{
Eina_List *list = eina_list_clone(ec->transients);
- E_Client *child, *below = NULL;
+ E_Client *child, *below = NULL, *above = NULL;
E_LIST_REVERSE_FREE(list, child)
{
* thats another option.
*/
if (child->iconic) continue;
- if (below)
- evas_object_stack_below(child->frame, below->frame);
- else
- evas_object_stack_above(child->frame, ec->frame);
- below = child;
+ if (child->transient_policy == E_TRANSIENT_ABOVE)
+ {
+ if (below)
+ evas_object_stack_below(child->frame, below->frame);
+ else
+ evas_object_stack_above(child->frame, ec->frame);
+ below = child;
+ }
+ else if (child->transient_policy == E_TRANSIENT_BELOW)
+ {
+ if (above)
+ evas_object_stack_above(child->frame, above->frame);
+ else
+ evas_object_stack_below(child->frame, ec->frame);
+ above = child;
+ }
+
}
}
if (ec->unredirected_single) return;
E_FULLSCREEN_ZOOM
} E_Fullscreen;
+typedef enum _E_Transient
+{
+ E_TRANSIENT_ABOVE,
+ E_TRANSIENT_BELOW,
+} E_Transient;
+
typedef enum _E_Window_Placement
{
E_WINDOW_PLACEMENT_SMART,
unsigned int user_skip_winlist : 1;
E_Maximize maximized;
E_Fullscreen fullscreen_policy;
+ E_Transient transient_policy;
unsigned int borderless : 1;
unsigned char offer_resistance : 1;
Eina_Stringshare *bordername;