const void *key __UNUSED__,
void *data, void *fdata __UNUSED__);
static E_Manager *_e_manager_get_for_root(Ecore_X_Window root);
+static Eina_Bool _e_manager_clear_timer(void *data);
#if 0 /* use later - maybe */
static int _e_manager_cb_window_destroy(void *data, int ev_type, void *ev);
static int _e_manager_cb_window_hide(void *data, int ev_type, void *ev);
E_Manager *man;
if (!ecore_x_window_manage(root)) return NULL;
- ecore_x_window_background_color_set(root, 0, 0, 0);
man = E_OBJECT_ALLOC(E_Manager, E_MANAGER_TYPE, _e_manager_free);
if (!man) return NULL;
managers = eina_list_append(managers, man);
man->root = root;
man->num = num;
ecore_x_window_size_get(man->root, &(man->w), &(man->h));
- if (e_config->use_virtual_roots)
- {
- man->win = ecore_x_window_override_new(man->root, man->x, man->y, man->w, man->h);
- ecore_x_icccm_title_set(man->win, "Enlightenment Manager");
- ecore_x_netwm_name_set(man->win, "Enlightenment Manager");
- ecore_x_window_raise(man->win);
- }
- else
- {
- man->win = man->root;
- }
+ man->win = man->root;
man->handlers =
eina_list_append(man->handlers,
man->pointer = e_pointer_window_new(man->root, 1);
+ ecore_x_window_background_color_set(man->root, 0, 0, 0);
+
+ man->clear_timer = ecore_timer_add(10.0, _e_manager_clear_timer, man);
return man;
}
}
#endif
+#ifdef _F_COMP_COMPOSITE_MODE_
+EAPI void
+e_manager_comp_composite_mode_set(E_Manager *man, E_Zone *zone, Eina_Bool set)
+{
+ E_OBJECT_CHECK(man);
+ E_OBJECT_CHECK(zone);
+ E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE);
+ E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
+ if (!man->comp) return;
+ man->comp->func.composite_mode_set(man->comp->data, man, zone, set);
+}
+
+EAPI Eina_Bool
+e_manager_comp_composite_mode_get(E_Manager *man, E_Zone *zone)
+{
+ E_OBJECT_CHECK_RETURN(man, EINA_FALSE);
+ E_OBJECT_CHECK_RETURN(zone, EINA_FALSE);
+ E_OBJECT_TYPE_CHECK_RETURN(man, E_MANAGER_TYPE, EINA_FALSE);
+ E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, EINA_FALSE);
+ if (!man->comp) return EINA_FALSE;
+ return man->comp->func.composite_mode_get(man->comp->data, man, zone);
+}
+#endif /* _F_COMP_COMPOSITE_MODE_ */
+
EAPI void
e_manager_comp_event_resize_send(E_Manager *man)
{
}
if (man->pointer) e_object_del(E_OBJECT(man->pointer));
managers = eina_list_remove(managers, man);
+ if (man->clear_timer) ecore_timer_del(man->clear_timer);
free(man);
}
leader_win = bd->client.icccm.client_leader;
if (leader_win)
{
- Eina_List* border_list;
Eina_List* restack_list;
- Eina_List *l;
E_Border *temp_bd;
E_Border *top_bd;
E_Border_List *bl;
e_border_focus_set(bd, 1, 1);
else
{
- Eina_List* l = NULL;
E_Border* temp_bd = NULL;
E_Border_List *bl;
bl = e_container_border_list_last(bd->zone->container);
while ((temp_bd = e_container_border_list_prev(bl)))
{
+ if ((temp_bd->x >= bd->zone->w) || (temp_bd->y >= bd->zone->h)) continue;
+ if (((temp_bd->x + temp_bd->w) <= 0) || ((temp_bd->y + temp_bd->h) <= 0)) continue;
+ if (temp_bd->client.illume.win_state.state == ECORE_X_ILLUME_WINDOW_STATE_FLOATING) continue;
+
if ((!temp_bd->iconic) && (temp_bd->visible) && (temp_bd->desk == bd->desk) &&
(temp_bd->client.icccm.accepts_focus || temp_bd->client.icccm.take_focus) &&
(temp_bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DOCK) &&
(temp_bd->client.netwm.type != ECORE_X_WINDOW_TYPE_SPLASH) &&
(temp_bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DESKTOP))
{
- if (bd == temp_bd)
- {
- e_border_focus_set(bd, 1, 1);
- }
+ e_border_focus_set(temp_bd, 1, 1);
break;
}
}
return eina_list_data_get(managers);
}
+static Eina_Bool
+_e_manager_clear_timer(void *data)
+{
+ E_Manager *man = data;
+ ecore_x_window_background_color_set(man->root, 0, 0, 0);
+ man->clear_timer = NULL;
+ return EINA_FALSE;
+}
#if 0 /* use later - maybe */
static int _e_manager_cb_window_destroy(void *data, int ev_type, void *ev){return 1;}