Enlightenment CVS committal Author : devilhorns Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.h e_int_border_menu.c Log Message: Ravenlock's "Pin to desktop" patch which adds a menu item to the border menu for "pinning" an app to the desktop. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.153 retrieving revision 1.154 diff -u -3 -r1.153 -r1.154 --- e_border.h 30 Nov 2006 17:42:41 -0000 1.153 +++ e_border.h 22 Feb 2007 05:17:44 -0000 1.154 @@ -351,6 +351,7 @@ unsigned int need_maximize : 1; E_Maximize maximized; unsigned int borderless : 1; + unsigned int pinned_to_desktop : 1; const char *bordername; unsigned int lock_user_location : 1; /*DONE*/ =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -3 -r1.55 -r1.56 --- e_int_border_menu.c 28 Dec 2006 14:05:07 -0000 1.55 +++ e_int_border_menu.c 22 Feb 2007 05:17:44 -0000 1.56 @@ -27,6 +27,8 @@ static void _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_pin(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_unpin(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_raise(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_lower(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_state_pre(void *data, E_Menu *m, E_Menu_Item *mi); @@ -182,6 +184,28 @@ "e/widgets/border/default/sendto"); } + if (!bd->pinned_to_desktop) + { + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Pin to Desktop")); + e_menu_item_callback_set(mi, _e_border_menu_cb_pin, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/stick"), + "e/widgets/border/default/stick"); + } + + if (bd->pinned_to_desktop) + { + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Unpin from Desktop")); + e_menu_item_callback_set(mi, _e_border_menu_cb_unpin, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/stick"), + "e/widgets/border/default/stick"); + } + mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); @@ -792,6 +816,54 @@ if ((bd) && (desk)) { e_border_desk_set(bd, desk); + } +} + +static void +_e_border_menu_cb_pin(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + + bd = e_object_data_get(E_OBJECT(m)); + if (bd) + { + bd->pinned_to_desktop = 1; + bd->borderless = 1; + bd->user_skip_winlist = 1; + 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); + } + + bd->client.border.changed = 1; + bd->changed = 1; + } +} + +static void +_e_border_menu_cb_unpin(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + + bd = e_object_data_get(E_OBJECT(m)); + if (bd) + { + bd->pinned_to_desktop = 0; + bd->borderless = 0; + bd->user_skip_winlist = 0; + 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; } } ------------------------------------------------------------------------- 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.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs