[E-devel] state of ecore_dbus

2007-02-26 Thread Hannes Janetzek
Hi,
I have started to make a module for e17 to control NetwokManager. I
would like to use ecore_dbus for that, but it seems
ecore_dbus_message_new_method_return doesn't work correctly. (I need
this function since NetworkManager gathers user preferences from the
client.) so when the return message is sent a
ECORE_DBUS_EVENT_SERVER_DEL is produced on the sending side and a dbus
timeout is recieved on the other (method calling side). 
Am i doing soemthing wrong or is this the expected behavior atm? If so,
do you have any hints what needs to be
done to fix this?

Regards,
Hannes 

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Remember Pinned state and toggle pinned state keybinding....

2007-02-26 Thread Eric Schuele
On 02/24/2007 17:27, Sebastian Dransfeld wrote:
 If pinned is actually just a combination of three other states, why not 
 just make an action which triggers these states and not add a lot of 
 duplicate code?

Yep... your right.

I assume you are referring to the code in the action, 
_e_border_menu_cb_pin, and _e_border_menu_cb_unpin.

Maybe another new func to set the pinned state (e_border_pinned_set() 
maybe)... and this would be called accordingly from all of the above. 
Thus providing one copy of the code.  That sound reasonable?

Thanks.

 
 Sebastian
 
 Ravenlock wrote:
 Hello,

 Attached is a patch which will allow a user to have borders remember 
 their pinned state.  Additionally, an action has been added to the 
 keybindings that allows a user to toggle this state via the keyboard.


 

 Index: e17/apps/e/src/bin/e_actions.c
 ===
 RCS file: /var/cvs/e/e17/apps/e/src/bin/e_actions.c,v
 retrieving revision 1.90
 diff -u -r1.90 e_actions.c
 --- e17/apps/e/src/bin/e_actions.c   10 Feb 2007 17:23:05 -  1.90
 +++ e17/apps/e/src/bin/e_actions.c   24 Feb 2007 16:09:01 -
 @@ -611,6 +611,48 @@
bd-borderless = 0;
  else
bd-borderless = 1;
 +if (!bd-borderless)
 +  bd-pinned_to_desktop = 0;
 +
 +bd-client.border.changed = 1;
 +bd-changed = 1;
 + }
 +}
 +
 +/***/
 +ACT_FN_GO(window_pinned_toggle)
 +{
 +   if ((!obj) || (obj-type != E_BORDER_TYPE)) obj = 
 E_OBJECT(e_border_focused_get());
 +   if (!obj) return;
 +   if (!((E_Border *)obj)-lock_border)
 + {
 +E_Border *bd;
 +
 +bd = (E_Border *)obj;
 +if (bd-pinned_to_desktop)
 +  bd-pinned_to_desktop = 0;
 +else
 +  bd-pinned_to_desktop = 1;
 +bd-borderless = bd-pinned_to_desktop; 
 +bd-user_skip_winlist = bd-pinned_to_desktop;
 +if (bd-pinned_to_desktop)
 +  {
 + bd-client.netwm.state.stacking = E_STACKING_BELOW; 
 + if (bd-layer != 50) 
 +   { 
 +  e_border_layer_set(bd, 50); 
 +  e_hints_window_stacking_set(bd, E_STACKING_NONE); 
 +   }
 +  }
 +else
 +  {
 + bd-client.netwm.state.stacking = E_STACKING_NONE; 
 + if (bd-layer != 100) 
 +   { 
 +  e_border_layer_set(bd, 100); 
 +  e_hints_window_stacking_set(bd, E_STACKING_NONE); 
 +   }
 +  } 
  
  bd-client.border.changed = 1;
  bd-changed = 1;
 @@ -1949,7 +1991,12 @@
 ACT_GO(window_borderless_toggle);
 e_action_predef_name_set(_(Window : State), _(Toggle Borderless 
 State),
   window_borderless_toggle, NULL, NULL, 0);
 -   
 +  
 +   /* window_pinned_toggle */
 +   ACT_GO(window_pinned_toggle);
 +   e_action_predef_name_set(_(Window : State), _(Toggle Pinned State),
 + window_pinned_toggle, NULL, NULL, 0);
 +
 /* desk_flip_by */
 ACT_GO(desk_flip_by);
 e_action_predef_name_set(_(Desktop), _(Flip Desktop Left), 
 desk_flip_by, -1 0, NULL, 0);
 Index: e17/apps/e/src/bin/e_border.c
 ===
 RCS file: /var/cvs/e/e17/apps/e/src/bin/e_border.c,v
 retrieving revision 1.571
 diff -u -r1.571 e_border.c
 --- e17/apps/e/src/bin/e_border.c14 Feb 2007 02:43:34 -  1.571
 +++ e17/apps/e/src/bin/e_border.c24 Feb 2007 16:09:05 -
 @@ -5456,7 +5456,8 @@
bd-placed = 1;
bd-changes.pos = 1;
 }
 - if (rem-apply  E_REMEMBER_APPLY_LAYER)
 + if (rem-apply  E_REMEMBER_APPLY_LAYER ||
 + rem-apply  E_REMEMBER_APPLY_PIN)
 {
bd-layer = rem-prop.layer;
if (bd-layer == 100)
 @@ -5465,6 +5466,12 @@
  e_hints_window_stacking_set(bd, E_STACKING_ABOVE);
e_container_border_raise(bd);
 }
 + if (rem-apply  E_REMEMBER_APPLY_PIN)
 +   { 
 +  bd-pinned_to_desktop = 1; 
 +  bd-borderless = 1;
 +  bd-client.border.changed = 1; 
 +   }
   if (rem-apply  E_REMEMBER_APPLY_BORDER)
 {
if (rem-prop.border)
 @@ -5512,7 +5519,8 @@
bd-lock_focus_out = rem-prop.lock_focus_out;
bd-lock_life = rem-prop.lock_life;
 }
 - if (rem-apply  E_REMEMBER_APPLY_SKIP_WINLIST)
 + if (rem-apply  E_REMEMBER_APPLY_SKIP_WINLIST ||
 + rem-apply  E_REMEMBER_APPLY_PIN)
 bd-user_skip_winlist = rem-prop.skip_winlist;
}
   }
 @@ -5559,6 +5567,9 @@
  else 
bordername = e_config-theme_default_border_style;
  if (!bordername) bordername = default;
 +fprintf(stderr,BorderName: %s \n,bordername);
 +if (strcmp(borderless, bordername) != 0)
 +  bd-pinned_to_desktop = 0;
  

Re: [E-devel] Remember Pinned state and toggle pinned state keybinding....

2007-02-26 Thread Eric Schuele

On 02/24/2007 17:27, Sebastian Dransfeld wrote:
If pinned is actually just a combination of three other states, why not 
just make an action which triggers these states and not add a lot of 
duplicate code?


Sebastian


Attached is a modified patch which addresses Sebastian's concerns (I hope).

Thanks for pointing it out. :)



Ravenlock wrote:

Hello,

Attached is a patch which will allow a user to have borders remember 
their pinned state.  Additionally, an action has been added to the 
keybindings that allows a user to toggle this state via the keyboard.





Index: e17/apps/e/src/bin/e_actions.c



--
Regards,
Eric
Index: e17/apps/e/src/bin/e_actions.c
===
RCS file: /var/cvs/e/e17/apps/e/src/bin/e_actions.c,v
retrieving revision 1.90
diff -u -r1.90 e_actions.c
--- e17/apps/e/src/bin/e_actions.c  10 Feb 2007 17:23:05 -  1.90
+++ e17/apps/e/src/bin/e_actions.c  25 Feb 2007 05:53:19 -
@@ -611,6 +611,8 @@
  bd-borderless = 0;
else
  bd-borderless = 1;
+   if (!bd-borderless)
+ bd-pinned_to_desktop = 0;
 
bd-client.border.changed = 1;
bd-changed = 1;
@@ -618,6 +620,22 @@
 }
 
 /***/
+ACT_FN_GO(window_pinned_toggle)
+{
+   if ((!obj) || (obj-type != E_BORDER_TYPE)) obj = 
E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (!((E_Border *)obj)-lock_border)
+ {
+   E_Border *bd;
+
+   bd = (E_Border *)obj;
+
+   bd-pinned_to_desktop = !bd-pinned_to_desktop;
+   e_border_pinned_set(bd, bd-pinned_to_desktop);
+ }
+}
+
+/***/
 ACT_FN_GO(window_move_by)
 {
if (!obj) obj = E_OBJECT(e_border_focused_get());
@@ -1949,7 +1967,12 @@
ACT_GO(window_borderless_toggle);
e_action_predef_name_set(_(Window : State), _(Toggle Borderless State),
 window_borderless_toggle, NULL, NULL, 0);
-   
+  
+   /* window_pinned_toggle */
+   ACT_GO(window_pinned_toggle);
+   e_action_predef_name_set(_(Window : State), _(Toggle Pinned State),
+window_pinned_toggle, NULL, NULL, 0);
+
/* desk_flip_by */
ACT_GO(desk_flip_by);
e_action_predef_name_set(_(Desktop), _(Flip Desktop Left), 
desk_flip_by, -1 0, NULL, 0);
Index: e17/apps/e/src/bin/e_border.c
===
RCS file: /var/cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.571
diff -u -r1.571 e_border.c
--- e17/apps/e/src/bin/e_border.c   14 Feb 2007 02:43:34 -  1.571
+++ e17/apps/e/src/bin/e_border.c   25 Feb 2007 05:53:22 -
@@ -2239,6 +2239,40 @@
  e_remember_update(bd-remember, bd);
 }
 
+EAPI void
+e_border_pinned_set(E_Border *bd, int set)
+{
+   if (bd)
+ {
+   bd-pinned_to_desktop = set;
+   bd-borderless = set;
+   bd-user_skip_winlist = set;
+
+   if (set)
+ { 
+bd-client.netwm.state.stacking = E_STACKING_BELOW; 
+if (bd-layer != 50) 
+  { 
+ e_border_layer_set(bd, 50); 
+ e_hints_window_stacking_set(bd, E_STACKING_BELOW); 
+  }
+ }
+   else
+ { 
+bd-client.netwm.state.stacking = E_STACKING_NONE; 
+if (bd-layer != 100) 
+  { 
+ e_border_layer_set(bd, 100); 
+ e_hints_window_stacking_set(bd, E_STACKING_NONE); 
+  }
+ }
+
+   bd-client.border.changed = 1;
+   bd-changed = 1;
+ }
+}
+
+
 EAPI E_Border *
 e_border_find_by_client_window(Ecore_X_Window win)
 {
@@ -5456,7 +5490,8 @@
  bd-placed = 1;
  bd-changes.pos = 1;
   }
-if (rem-apply  E_REMEMBER_APPLY_LAYER)
+if (rem-apply  E_REMEMBER_APPLY_LAYER ||
+rem-apply  E_REMEMBER_APPLY_PIN)
   {
  bd-layer = rem-prop.layer;
  if (bd-layer == 100)
@@ -5465,6 +5500,12 @@
e_hints_window_stacking_set(bd, E_STACKING_ABOVE);
  e_container_border_raise(bd);
   }
+if (rem-apply  E_REMEMBER_APPLY_PIN)
+  { 
+ bd-pinned_to_desktop = 1; 
+ bd-borderless = 1;
+ bd-client.border.changed = 1; 
+  }
 if (rem-apply  E_REMEMBER_APPLY_BORDER)
   {
  if (rem-prop.border)
@@ -5512,7 +5553,8 @@
  bd-lock_focus_out = rem-prop.lock_focus_out;
  bd-lock_life = rem-prop.lock_life;
   }
-if (rem-apply  E_REMEMBER_APPLY_SKIP_WINLIST)
+if (rem-apply  E_REMEMBER_APPLY_SKIP_WINLIST ||
+rem-apply  E_REMEMBER_APPLY_PIN)
   bd-user_skip_winlist = 

Re: [E-devel] state of ecore_dbus

2007-02-26 Thread Sebastian Dransfeld
Hannes Janetzek wrote:
 Hi,
 I have started to make a module for e17 to control NetwokManager. I
 would like to use ecore_dbus for that, but it seems
 ecore_dbus_message_new_method_return doesn't work correctly. (I need
 this function since NetworkManager gathers user preferences from the
 client.) so when the return message is sent a
 ECORE_DBUS_EVENT_SERVER_DEL is produced on the sending side and a dbus
 timeout is recieved on the other (method calling side). 
 Am i doing soemthing wrong or is this the expected behavior atm? If so,
 do you have any hints what needs to be
 done to fix this?

Can you show some sample code? And check whether the dbus samples work.

Sebastian

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Patch for e_modules to add support to gettext with automake-1.10

2007-02-26 Thread Michael Jennings
On Wednesday, 14 February 2007, at 19:45:11 (+0100),
Kim Woelders wrote:

 Yeah, I'm a sneaky bastard. I even sent a stealth message to the
 e-devel list about it to make sure nobody noticed:
 http://sourceforge.net/mailarchive/message.php?msg_id=37464062
 my devious plan failed and somebody who was obviously impersonating
 you responded:
 http://sourceforge.net/mailarchive/message.php?msg_id=37464063

Re-reading that, now I remember.  And remembering, now I revisit my
previous suggestion:  Why not just check config.rpath in and be done
with this whole mess?

And raster deserves a kick in the teeth for causing the mess by
removing it in the first place.

Bad raster.  No beer.

 We are already far from basic unix utils + m4 as autotools require
 perl.  Adding cvs is just another drop in the ocean.

CVS, in my opinion, is inherently non-local.  Local CVS is called
RCS.  But I can think of worse ways to distribute and extract
versioned sources.

That said, the fact that they HAVE to do such a thing speaks to the
complete and utter fiasco that is gettext.

 I don't think this is true, please correct me if I'm
 wrong. autopoint will copy in ABOUT-NLS which contains information
 about the gettext package, including licensensing, but it does not
 sneak in anything or otherwise impose licensing that isn't already
 implied by using gettext in the first place.

It does some sneaky stuff, but I seriously doubt it would have any
legal validity given its clear and blatant sneakitude.

 Downgrading say automake-1.10 to automake-1.9.6 is in my opinion not
 an option as non-e packages may require 1.10.

 Or is the message that if I'm too stupid to figure it all out by
 myself I should go play elsewhere?  But I don't. I want E. I goto
 get-e, edevelop, #e, the mailing lists where you will waste your
 time giving me bad advice wasting my time.

Use automake 1.9.6 is not bad advice.  It may not be convenient
advice, but it's not bad advice either.  In any event, many distros
already have ways of having multiple versions of the tools installed
at once due to the exceedingly long history of this kind of nonsense
from the autoFUCK Powers That Be.

Michael

-- 
Michael Jennings (a.k.a. KainX)  http://www.kainx.org/  [EMAIL PROTECTED]
n + 1, Inc., http://www.nplus1.net/   Author, Eterm (www.eterm.org)
---
 I now cry streams of blood because I had to take my stand.  I crush
  my eyes beneath my heel as my heart pulses in my hand.
 -- Forsaken

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] state of ecore_dbus

2007-02-26 Thread Brian Mattern
On Mon, Feb 26, 2007 at 08:10:48PM +0100, Sebastian Dransfeld wrote:
 Hannes Janetzek wrote:
  Hi,
  I have started to make a module for e17 to control NetwokManager. I
  would like to use ecore_dbus for that, but it seems
  ecore_dbus_message_new_method_return doesn't work correctly. (I need
  this function since NetworkManager gathers user preferences from the
  client.) so when the return message is sent a
  ECORE_DBUS_EVENT_SERVER_DEL is produced on the sending side and a dbus
  timeout is recieved on the other (method calling side). 
  Am i doing soemthing wrong or is this the expected behavior atm? If so,
  do you have any hints what needs to be
  done to fix this?
 
 Can you show some sample code? And check whether the dbus samples work.
 
 Sebastian
 

The ecore_dbus_receive_test sample (in test/orig/ecore) doesn't actually
send a reply. (Which would definitely cause the other end to eventually
time out if it was expecting one). So, the method_return code probably
has never been tested.

Ecore_DBus is pretty young, and still missing some functionality. If you
want to use it, you'll probably want to get familiar with its code so
you can fix any bugs you run across and implement any missing
functionality you need.

As an alternative approach, I started a simple wrapper around dbus that
hooks it into e's main loop. It provides a few convenience functions for
setting up method receivers, etc, but requires using the lowlevel
libdbus api for many things. 

I probably won't have any time in the next couple months to work on
this, so I've put up a tarball at:
  http://rephorm.com/files/code/e_dbus-0.0.1.tar.gz

It includes part of the hal dbus api wrapped up into a lib and a demo
ewl app using that.

I would love to see someone take this and ecore_dbus and do some
benchmarks. In my opinion, unless we can get some significant
speed/memory gain from ecore_dbus as opposed to libdbus, I don't see the
point of having an independant implementation of the spec.

rephorm


-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] winlist escape patch

2007-02-26 Thread Stark, Thomas
Hi,

attached a patch which restores the last focused border, mouseposition
and desktop when you press escape while selecting through the winlist.

Bye,
Thomas


-- 
 Stark, Thomas [EMAIL PROTECTED]
--- cvs/e17/apps/e/src/bin/e_winlist.c		28 Dec 2006 14:15:10 -	1.49
+++ build/e17/apps/e/src/bin/e_winlist.c	26 Feb 2007 22:35:27 -
@@ -45,6 +45,10 @@
 static Evas_Object *icon_object = NULL;
 static Evas_List *wins = NULL;
 static Evas_List *win_selected = NULL;
+static E_Desk *last_desk = NULL;
+static int last_pointer_x = 0;
+static int last_pointer_y = 0;
+static E_Border *last_border = NULL;
 static int hold_count = 0;
 static int hold_mod = 0;
 static Evas_List *handlers = NULL;
@@ -82,7 +86,6 @@
Evas_Object *o;
Evas_List *l;
E_Desk *desk;
-   E_Border *bd;

E_OBJECT_CHECK_RETURN(zone, 0);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
@@ -152,12 +155,20 @@
 	e_winlist_hide();
 	return 1;
  }
-   
-   bd = e_border_focused_get();
-   if (bd)
- {
-	if (!bd-lock_focus_out)
-	  e_border_focus_set(bd, 0, 0);
+
+   if (e_config-winlist_list_show_other_desk_windows ||
+   e_config-winlist_list_show_other_screen_windows)
+ last_desk = e_desk_current_get(winlist-zone);
+   if (e_config-winlist_warp_while_selecting)
+ ecore_x_pointer_xy_get(winlist-zone-container-win,
+last_pointer_x, last_pointer_y);
+   last_border = e_border_focused_get();
+   if (last_border)
+ {
+if (!last_border-lock_focus_out)
+	   e_border_focus_set(last_border, 0, 0);
+else
+  last_border = NULL;
  }
_e_winlist_activate_nth(1);
evas_event_thaw(winlist-evas);
@@ -694,6 +705,26 @@
  }
 }
 
+static void
+_e_winlist_restore_desktop(void)
+{
+   if (last_desk 
+   (e_config-winlist_list_show_other_desk_windows ||
+e_config-winlist_list_show_other_screen_windows))
+ e_desk_show(last_desk);
+   if (e_config-winlist_warp_while_selecting)
+ ecore_x_pointer_warp(winlist-zone-container-win,
+  last_pointer_x, last_pointer_y);
+   _e_winlist_deactivate();
+   win_selected = NULL;
+   e_winlist_hide();
+   if (last_border)
+ {
+e_border_focus_set(last_border, 1, 1);
+last_border = NULL;
+ }
+}
+
 static int
 _e_winlist_cb_event_border_add(void *data, int type,  void *event)
 {
@@ -737,7 +768,7 @@
else if (!strcmp(ev-keysymbol, space))
  e_winlist_hide();
else if (!strcmp(ev-keysymbol, Escape))
- e_winlist_hide();
+ _e_winlist_restore_desktop();
else if (!strcmp(ev-keysymbol, 1))
  _e_winlist_activate_nth(0);
else if (!strcmp(ev-keysymbol, 2))
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Forecasts font overlapping

2007-02-26 Thread Landry, Marc-Andre
I have just install the newly add forecasts e-modules to see a little
bug. Nothing that much anoying else that I can't read is beginning.

http://picasaweb.google.fr/lma1980/EnlightenmentDR17Screenshot/photo#5035991375881178274

Keep on good work,
LMA

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Enlightenment crashes when openening icon-less application menu property page

2007-02-26 Thread Sam Bobroff
Carsten Haitzler (The Rasterman) wrote:

  On Sat, 20 Jan 2007 01:32:41 +1100 Sam Bobroff [EMAIL PROTECTED] babbled:

   
[snip]

  unfortunately the real problem is that someone is calling 
  e_widget_sub_object_add
  () on an object that isnt an e_widget - and thats bad. can you get a 
  backtrace?

   
I've tracked this back as follows:

_basic_create_widgets calls e_fm2_icon_get (with the file path 
pointing to a .desktop file that won't produce an icon).
e_fm2_icon_get returns null, with ret_type DESKTOP.
_basic_create_widgets calls e_widget_button_icon_set with oi = NULL.
   e_widget_button_icon_set calls e_widget_sub_object_add with icon 
= NULL.
  e_widget_sub_object_add calls evas_object_type_get on NULL.
 evas_object_type_get returns NULL.
  e_widget_sub_object_add does a strcmp on NULL and crashes.

I add an if (oi) before the call to e_widget_button_icon_set it stops 
the crash.

I don't know the e code at all, but from the if (itype) clause right 
below this, it looks like having itype set implies an icon exists so 
perhaps a fix would be to change e_fm2_icon_get to return a NULL 
ret_type if it's going to return a NULL icon and change 
_basic_create_widgets to move the e_widget_button_icon_set call (and 
e_widget_frametable_object_append call?) inside the if (itype) clause. 
I suppose it all depends on what callers of e_fm2_icon_get expect, and I 
really don't know what that is  ;-) 

As I said I'm just guessing but I hope this is useful anyway,

Sam.




-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Remember Pinned state and toggle pinned state keybinding....

2007-02-26 Thread Ravenlock

On 02/24/2007 23:05, Ravenlock wrote:

On 02/24/2007 17:27, Sebastian Dransfeld wrote:
If pinned is actually just a combination of three other states, why 
not just make an action which triggers these states and not add a lot 
of duplicate code?


Sebastian


[Sorry if this double posts.  Sent originally from wrong e-mail address]

Attached is a modified patch which addresses Sebastian's concerns (I hope).

Thanks for pointing it out. :)



OK.  Per discussions on irc... I have attempted to address some concerns.

 - I cleaned up the code a tad.
 - removed the pinned_to_desktop state of the border.
 - No config panel changes whatsoever

I have attached two patches.  One that does the above, and a second 
which will add an action to the keybindings dialog to allow a user to 
create a binding to toggle the... uh... no longer existing state.  Well, 
again, it just seems convenient.  I realize this may not be desired, 
hence the separate patch.


The 'cleanup' patch is more on the necessary side.  The action is just 
for convenience (as are most actions I think).


-Ravenlock



Ravenlock wrote:

Hello,

Attached is a patch which will allow a user to have borders remember 
their pinned state.  Additionally, an action has been added to the 
keybindings that allows a user to toggle this state via the keyboard.












-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV




___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



--
Regards,
Ravenlock
Index: e17/apps/e/src/bin/e_actions.c
===
RCS file: /var/cvs/e/e17/apps/e/src/bin/e_actions.c,v
retrieving revision 1.90
diff -u -r1.90 e_actions.c
--- e17/apps/e/src/bin/e_actions.c  10 Feb 2007 17:23:05 -  1.90
+++ e17/apps/e/src/bin/e_actions.c  27 Feb 2007 06:23:26 -
@@ -617,6 +617,27 @@
  }
 }
 
+ /***/
+ACT_FN_GO(window_pinned_toggle) 
+{ 
+   if ((!obj) || (obj-type != E_BORDER_TYPE)) obj = 
E_OBJECT(e_border_focused_get()); 
+   if (!obj) return; 
+   if (!((E_Border *)obj)-lock_border) 
+ {
+   E_Border *bd; 
+   
+   bd = (E_Border *)obj;
+
+   if ((bd-client.netwm.state.stacking == E_STACKING_BELOW)  
+ (bd-user_skip_winlist)  
+ (bd-borderless))
+   e_border_pinned_set(bd, 0);
+   else
+   e_border_pinned_set(bd, 1);
+ } 
+}
+   
+
 /***/
 ACT_FN_GO(window_move_by)
 {
@@ -1949,7 +1970,12 @@
ACT_GO(window_borderless_toggle);
e_action_predef_name_set(_(Window : State), _(Toggle Borderless State),
 window_borderless_toggle, NULL, NULL, 0);
-   
+  
+   /* window_pinned_toggle */
+   ACT_GO(window_pinned_toggle);
+   e_action_predef_name_set(_(Window : State), _(Toggle Pinned State),
+  window_pinned_toggle, NULL, NULL, 0);
+
/* desk_flip_by */
ACT_GO(desk_flip_by);
e_action_predef_name_set(_(Desktop), _(Flip Desktop Left), 
desk_flip_by, -1 0, NULL, 0);
Index: e17/apps/e/src/bin/e_border.c
===
RCS file: /var/cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.571
diff -u -r1.571 e_border.c
--- e17/apps/e/src/bin/e_border.c   14 Feb 2007 02:43:34 -  1.571
+++ e17/apps/e/src/bin/e_border.c   27 Feb 2007 06:23:30 -
@@ -2239,6 +2239,35 @@
  e_remember_update(bd-remember, bd);
 }
 
+EAPI void
+e_border_pinned_set(E_Border *bd, int set) 
+{
+  int layer;
+  int stacking; 
+
+   if (bd) 
+ { 
+   bd-borderless = set; 
+   bd-user_skip_winlist = set; 
+   if (set) 
+ { 
+layer = 50;
+stacking = E_STACKING_BELOW;
+ } 
+   else 
+ { 
+layer = 100;
+stacking = E_STACKING_NONE;
+ } 
+   
+   e_border_layer_set(bd, layer); 
+   e_hints_window_stacking_set(bd, stacking); 
+
+   bd-client.border.changed = 1; 
+   bd-changed = 1; 
+ } 
+} 
+
 EAPI E_Border *
 e_border_find_by_client_window(Ecore_X_Window win)
 {
Index: e17/apps/e/src/bin/e_border.h
===
RCS file: /var/cvs/e/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.154
diff -u -r1.154 e_border.h
---