If we are setting the window as a quickpanel, set some other properties also
(focus, window type, skip_pager, etc). Add function for setting quickpanel zone (zone integer being 0-based). SVN revision: 45529
This commit is contained in:
parent
5a719b953d
commit
708ca2cb9f
|
@ -282,6 +282,7 @@ extern "C" {
|
|||
EAPI int elm_win_quickpanel_priority_major_get(Evas_Object *obj);
|
||||
EAPI void elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority);
|
||||
EAPI int elm_win_quickpanel_priority_minor_get(Evas_Object *obj);
|
||||
EAPI void elm_win_quickpanel_zone_set(Evas_Object *obj, int zone);
|
||||
|
||||
/*...
|
||||
* ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
|
||||
|
|
|
@ -876,8 +876,20 @@ elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel)
|
|||
if (!win) return;
|
||||
_elm_win_xwindow_get(win);
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
if (win->xwin)
|
||||
ecore_x_e_illume_quickpanel_set(win->xwin, quickpanel);
|
||||
if (win->xwin)
|
||||
{
|
||||
ecore_x_e_illume_quickpanel_set(win->xwin, quickpanel);
|
||||
if (quickpanel)
|
||||
{
|
||||
Ecore_X_Window_State states[2];
|
||||
|
||||
ecore_x_netwm_window_type_set(win->xwin, ECORE_X_WINDOW_TYPE_DOCK);
|
||||
states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR;
|
||||
states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER;
|
||||
ecore_x_netwm_window_state_set(win->xwin, states, 2);
|
||||
ecore_x_icccm_hints_set(win->xwin, 0, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -954,6 +966,35 @@ elm_win_quickpanel_priority_minor_get(Evas_Object *obj)
|
|||
return -1;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_win_quickpanel_zone_set(Evas_Object *obj, int zone)
|
||||
{
|
||||
Elm_Win *win;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return;
|
||||
_elm_win_xwindow_get(win);
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
if (win->xwin)
|
||||
{
|
||||
Ecore_X_Window *zones;
|
||||
int zcount;
|
||||
|
||||
zcount =
|
||||
ecore_x_window_prop_window_list_get(ecore_x_window_root_first_get(),
|
||||
ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
|
||||
&zones);
|
||||
if ((zones) && (zcount >= (zone + 1)))
|
||||
{
|
||||
ecore_x_e_illume_quickpanel_zone_set(win->xwin, &zones[zone]);
|
||||
ecore_x_e_illume_quickpanel_zone_request_send(zones[zone],
|
||||
win->xwin);
|
||||
free(zones);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
typedef struct _Widget_Data Widget_Data;
|
||||
|
||||
struct _Widget_Data
|
||||
|
|
Loading…
Reference in New Issue