[E-devel] state of ecore_dbus
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....
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....
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
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
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
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
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
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
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....
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 ---