Modify softkey code to handle xinerama.

SVN revision: 44903
This commit is contained in:
Christopher Michael 2010-01-05 01:39:53 +00:00
parent 9d4f41fe94
commit 00a39733f9
3 changed files with 27 additions and 10 deletions

View File

@ -3,7 +3,8 @@
#include "e_mod_config.h"
#include "e_mod_win.h"
static Il_Sk_Win *swin = NULL;
/* local variables */
static Eina_List *swins = NULL;
EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume-Softkey" };
@ -11,11 +12,20 @@ EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume-Softkey" };
EAPI void *
e_modapi_init(E_Module *m)
{
E_Screen *screen;
const Eina_List *l;
if (!il_sk_config_init(m)) return NULL;
e_mod_sk_win_init();
swin = e_mod_sk_win_new();
EINA_LIST_FOREACH(e_xinerama_screens_get(), l, screen)
{
Il_Sk_Win *swin = NULL;
if (!(swin = e_mod_sk_win_new(screen))) continue;
swins = eina_list_append(swins, swin);
}
return m;
}
@ -23,8 +33,13 @@ e_modapi_init(E_Module *m)
EAPI int
e_modapi_shutdown(E_Module *m)
{
e_object_del(E_OBJECT(swin));
swin = NULL;
Il_Sk_Win *swin;
EINA_LIST_FREE(swins, swin)
{
e_object_del(E_OBJECT(swin));
swin = NULL;
}
e_mod_sk_win_shutdown();

View File

@ -22,9 +22,10 @@ e_mod_sk_win_shutdown(void)
}
Il_Sk_Win *
e_mod_sk_win_new(void)
e_mod_sk_win_new(E_Screen *screen)
{
Il_Sk_Win *swin;
E_Container *con;
E_Zone *zone;
Evas *evas;
Ecore_X_Window_State states[2];
@ -36,7 +37,10 @@ e_mod_sk_win_new(void)
snprintf(buff, sizeof(buff), "%s/e-module-illume-softkey.edj",
il_sk_cfg->mod_dir);
swin->win = e_win_new(e_util_container_number_get(0));
con = e_container_current_get(e_manager_current_get());
zone = e_util_container_zone_id_get(con->num, screen->escreen);
swin->win = e_win_new(con);
states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR;
states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER;
ecore_x_netwm_window_state_set(swin->win->evas_win, states, 2);
@ -52,8 +56,6 @@ e_mod_sk_win_new(void)
evas = e_win_evas_get(swin->win);
zone = e_util_container_zone_number_get(0, 0);
swin->o_base = edje_object_add(evas);
if (!e_theme_edje_object_set(swin->o_base, "base/theme/modules/illume-softkey",
"modules/illume-softkey/window"))
@ -75,7 +77,7 @@ e_mod_sk_win_new(void)
e_win_size_min_set(swin->win, zone->w, 32);
e_win_show(swin->win);
e_win_move_resize(swin->win, 0, (zone->h - 32), zone->w, 32);
e_win_move_resize(swin->win, zone->x, (zone->h - 32), zone->w, 32);
return swin;
}

View File

@ -3,6 +3,6 @@
int e_mod_sk_win_init(void);
int e_mod_sk_win_shutdown(void);
Il_Sk_Win *e_mod_sk_win_new(void);
Il_Sk_Win *e_mod_sk_win_new(E_Screen *screen);
#endif