pagers, desktops and zones seem to work just fine on first start. though

"primary zone" is not known so it keeps querying the mouse - fix that and
only use the first zone when startng the first time.


SVN revision: 14866
This commit is contained in:
Carsten Haitzler 2005-05-20 06:30:26 +00:00
parent 8562273299
commit 18d40fac35
6 changed files with 21 additions and 19 deletions

2
TODO
View File

@ -63,8 +63,6 @@ These are in no particular order:
border stays around - something is keeping extra references maybe?
* fix action delete (can segv if action is stored for "long runing actions"
like move/resize)
* multiple zones and a pager per zone doesnt flip desktops in that zone alone
- they affect both zones only the first time u run e...
* drop on ibar for re-ordering, removal seems broken (drop location is the
wrong spot)
* break out desks x/y size config so you can have a different desktop size

View File

@ -97,5 +97,8 @@ extern EAPI E_Path *path_init;
extern EAPI E_Path *path_modules;
extern EAPI E_Path *path_backgrounds;
extern EAPI int restart;
extern EAPI int good;
extern EAPI int evil;
extern EAPI int starting;
#endif

View File

@ -315,7 +315,6 @@ e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win)
{
Evas_List *l;
printf("GRAB KEYS %p\n", key_bindings);
for (l = key_bindings; l; l = l->next)
{
E_Binding_Key *bind;
@ -330,7 +329,6 @@ e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win)
if (bind->mod & E_BINDING_MODIFIER_CTRL) mod |= ECORE_X_MODIFIER_CTRL;
if (bind->mod & E_BINDING_MODIFIER_ALT) mod |= ECORE_X_MODIFIER_ALT;
if (bind->mod & E_BINDING_MODIFIER_WIN) mod |= ECORE_X_MODIFIER_WIN;
printf("BIND %x %s %x %i\n", win, bind->key, mod, bind->any_mod);
ecore_x_window_key_grab(win, bind->key,
mod, bind->any_mod);
}

View File

@ -38,6 +38,7 @@ E_Path *path_backgrounds = NULL;
int restart = 0;
int good = 0;
int evil = 0;
int starting = 1;
/* local subsystem globals */
#define MAX_LEVEL 32
@ -443,6 +444,8 @@ main(int argc, char **argv)
/* run any testing code now we are set up */
e_test();
/* no longer starting up */
starting = 0;
/* start our main loop */
ecore_main_loop_begin();

View File

@ -2056,14 +2056,14 @@ _e_menu_auto_place(E_Menu *m, int x, int y, int w, int h)
*
* quadrants... which one
*/
if (w != m->zone->container->w)
xr = (double)(x - m->zone->container->x) /
(double)(m->zone->container->w - w);
if (w != m->zone->w)
xr = (double)(x - m->zone->x) /
(double)(m->zone->w - w);
else
xr = 0.0;
if (h != m->zone->container->h)
yr = (double)(y - m->zone->container->y) /
(double)(m->zone->container->h - h);
if (h != m->zone->h)
yr = (double)(y - m->zone->y) /
(double)(m->zone->h - h);
else
yr = 0.0;
if ((xr + yr) < 0.99) /* top or left */
@ -2072,9 +2072,9 @@ _e_menu_auto_place(E_Menu *m, int x, int y, int w, int h)
/* L */
{
m->cur.x = x + w;
if (y < (m->zone->container->y + ((m->zone->container->h * 1) / 3)))
if (y < (m->zone->y + ((m->zone->h * 1) / 3)))
m->cur.y = y;
else if (y < (m->zone->container->y + ((m->zone->container->h * 2) / 3)))
else if (y < (m->zone->y + ((m->zone->h * 2) / 3)))
m->cur.y = y + ((h - m->cur.h) / 2);
else
m->cur.y = y + h - m->cur.h;
@ -2084,9 +2084,9 @@ _e_menu_auto_place(E_Menu *m, int x, int y, int w, int h)
/* T */
{
m->cur.y = y + h;
if (x < (m->zone->container->x + ((m->zone->container->w * 1) / 3)))
if (x < (m->zone->x + ((m->zone->w * 1) / 3)))
m->cur.x = x;
else if (x < (m->zone->container->x + ((m->zone->container->w * 2) / 3)))
else if (x < (m->zone->x + ((m->zone->w * 2) / 3)))
m->cur.x = x + ((w - m->cur.w) / 2);
else
m->cur.x = x + w - m->cur.w;
@ -2099,9 +2099,9 @@ _e_menu_auto_place(E_Menu *m, int x, int y, int w, int h)
/* B */
{
m->cur.y = y - m->cur.h;
if (x < (m->zone->container->x + ((m->zone->container->w * 1) / 3)))
if (x < (m->zone->x + ((m->zone->w * 1) / 3)))
m->cur.x = x;
else if (x < (m->zone->container->x + ((m->zone->container->w * 2) / 3)))
else if (x < (m->zone->x + ((m->zone->w * 2) / 3)))
m->cur.x = x + ((w - m->cur.w) / 2);
else
m->cur.x = x + w - m->cur.w;
@ -2111,9 +2111,9 @@ _e_menu_auto_place(E_Menu *m, int x, int y, int w, int h)
/* R */
{
m->cur.x = x - m->cur.w;
if (y < (m->zone->container->y + ((m->zone->container->h * 1) / 3)))
if (y < (m->zone->y + ((m->zone->h * 1) / 3)))
m->cur.y = y;
else if (y < (m->zone->container->y + ((m->zone->container->h * 2) / 3)))
else if (y < (m->zone->y + ((m->zone->h * 2) / 3)))
m->cur.y = y + ((h - m->cur.h) / 2);
else
m->cur.y = y + h - m->cur.h;

View File

@ -212,7 +212,7 @@ e_zone_current_get(E_Container *con)
/* the current zone is whatever zone has the focused window */
return bd->zone;
}
else
else if (!starting)
{
int x, y;