Hey !

Attached a patch for e_shelf that changes the behavior of
windows witch are moved on shelf unhide : 
it moves the windows just near the shelf, instead of moving them of the
shelf size offset.

Also fixed missing brackets.

If it seems ok, just tell me and i'll commit.

laurent
? src/bin/e_shelf.patch
Index: src/bin/e_shelf.c
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.68
diff -u -r1.68 e_shelf.c
--- src/bin/e_shelf.c	10 Jun 2007 11:01:41 -0000	1.68
+++ src/bin/e_shelf.c	8 Jul 2007 18:43:00 -0000
@@ -949,6 +949,8 @@
 	bd = l->data;
 	if ((bd->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_NONE)
 	  {
+	     int screen_w, screen_h;
+
 	     if (bd->lock_client_location)
 	       continue;
 	     if (es->hidden)
@@ -969,35 +971,40 @@
 	     if (!es->hidden)
 	       {
 		  if (!bd->shelf_fix.modified++)
-		    bd->shelf_fix.x = bd->x;
-		    bd->shelf_fix.y = bd->y;
+		    {
+		       bd->shelf_fix.x = bd->x;
+		       bd->shelf_fix.y = bd->y;
+		    }
 	       }
 
+             evas_output_viewport_get(bd->zone->container->bg_evas,
+	                              NULL, NULL, &screen_w, &screen_h);
+
 	     switch (es->gadcon->orient)
 	       {
 		case E_GADCON_ORIENT_TOP:
 		case E_GADCON_ORIENT_CORNER_TL:
 		case E_GADCON_ORIENT_CORNER_TR:
 		   if (!es->hidden)
-		     e_border_move(bd, bd->x, bd->y + es->h);
+		     e_border_move(bd, bd->x, es->h);
 		   break;
 		case E_GADCON_ORIENT_BOTTOM:
 		case E_GADCON_ORIENT_CORNER_BL:
 		case E_GADCON_ORIENT_CORNER_BR:
 		   if (!es->hidden)
-		     e_border_move(bd, bd->x, bd->y - es->h);
+		     e_border_move(bd, bd->x, (screen_h - es->h) - bd->h);
 		   break;
 		case E_GADCON_ORIENT_LEFT:
 		case E_GADCON_ORIENT_CORNER_LB:
 		case E_GADCON_ORIENT_CORNER_LT:
 		   if (!es->hidden)
-		     e_border_move(bd, bd->x + es->w, bd->y);
+		     e_border_move(bd, es->w, bd->y);
 		   break; 
 		case E_GADCON_ORIENT_RIGHT:
 		case E_GADCON_ORIENT_CORNER_RB:
 		case E_GADCON_ORIENT_CORNER_RT:
 		   if (!es->hidden)
-		     e_border_move(bd, bd->x - es->w, bd->y);
+		     e_border_move(bd, (screen_w - es->w) - bd->w, bd->y);
 		   break; 
 		default:
 		   break;
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to