Пример #1
0
EAPI void
e_focus_event_mouse_down(E_Border* bd)
{
   if (e_config->focus_policy == E_FOCUS_CLICK)
     {
	e_border_focus_set(bd, 1, 1);

	if (!bd->lock_user_stacking)
	  {
	     if (e_config->border_raise_on_focus)
	       e_border_raise(bd);
	  }
     }
   else if (e_config->always_click_to_raise)
     {
	if (!bd->lock_user_stacking)
	  {
	     if (e_config->border_raise_on_focus)
	       e_border_raise(bd);
	  }
     }
   else if (e_config->always_click_to_focus)
     {
	e_border_focus_set(bd, 1, 1);
     }
}
Пример #2
0
EAPI void
e_focus_event_mouse_out(E_Border* bd)
{
   if (e_config->focus_policy == E_FOCUS_MOUSE)
     {
        /* FIXME: this is such a hack. its a big hack around x's async events
	 * as we dont know always exactly what action causes what event
	 * so by waiting more than 0.2 secs before reverting focus to nothing
	 * since we entered root, we are ignoring mouse in's on the root
	 * container for a bit after the mosue may have entered it
	 */
	if ((ecore_loop_time_get() - e_grabinput_last_focus_time_get()) > 0.2)
	  {
	     if (!bd->lock_focus_in)
               {
                  if (bd->focused)
                    e_border_focus_set(bd, 0, 1);
               }
	  }
     }
   if (bd->raise_timer)
     {
	ecore_timer_del(bd->raise_timer);
	bd->raise_timer = NULL;
     }
}
Пример #3
0
EAPI void
e_focus_event_mouse_down(E_Border *bd)
{
   if (!bd->focused)
     {
		if (e_border_focus_policy_click(bd))
          e_border_focus_set(bd, 1, 1);
        else if (e_config->always_click_to_focus)
          e_border_focus_set(bd, 1, 1);
     }
   if (e_config->always_click_to_raise)
     {
        if (!bd->lock_user_stacking)
            e_border_raise(bd);
     }
}
Пример #4
0
static void
_itask_item_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   Evas_Event_Mouse_Up *ev;
   Itask_Item *ic;
   E_Desk *current_desk;

   ev = event_info;
   ic = data;

   ic->drag.start = 0;
   
   if ((ev->button == 1) && (!ic->drag.dnd))
     {
	if (ic->time_press + 0.3 < ecore_loop_time_get())
	  return;
	
	current_desk = e_desk_current_get(ic->border->zone);
       
	if ((ic->itask->ci->iconify_focused) &&
	    (ic->border == e_border_focused_get()))
	  {	     
	     e_border_iconify(ic->border);
	  }
	else
   	  {
	     if ((e_desk_current_get(ic->border->zone) != ic->border->desk) &&
		 (!ic->border->sticky))
	       e_desk_show(ic->border->desk);

	     if (ic->border->shaded)
	       e_border_unshade(ic->border, E_DIRECTION_UP);

	     if (ic->border->iconic)
	       e_border_uniconify(ic->border);
	     else
	       e_border_raise(ic->border);

	     e_border_focus_set(ic->border, 1, 1);
   	  }
     }
}
Пример #5
0
EAPI void
e_focus_event_mouse_in(E_Border* bd)
{
   if ((e_config->focus_policy == E_FOCUS_MOUSE) ||
       (e_config->focus_policy == E_FOCUS_SLOPPY))
     {
	e_border_focus_set(bd, 1, 1);
     }
   if (bd->raise_timer) ecore_timer_del(bd->raise_timer);
   bd->raise_timer = NULL;
   if (e_config->use_auto_raise)
     {
	if (e_config->auto_raise_delay == 0.0)
	  {
	     if (!bd->lock_user_stacking)
	       {
		  if (e_config->border_raise_on_focus)
		    e_border_raise(bd);
	       }
	  }
	else
	  bd->raise_timer = ecore_timer_add(e_config->auto_raise_delay, _e_focus_raise_timer, bd);
     }
}