[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] Showing icons on other desks and screens in the window list (or not).....



On Thu, Dec 14, 2006 at 08:36:35AM -0600, Ravenlock wrote:
> On 12/14/2006 03:43, Christopher Michael wrote:
> >Ravenlock wrote:
> >>On 12/13/2006 23:00, Ravenlock wrote:
> >>>Hello,
> >>>
> >>>I wanted a slightly different behavior than what was available, so 
> >>>I've changed it up a bit on my copy, and wanted others opinions as to 
> >>>whether the change might be suitable for the general population.
> >>>
> >I applaud the effort, but can you provide a patch that others can 
> >use/try ? Sometimes ideas have a better chance if they come with 
> >examples :)
> 
> K. Try the attached.  Do you (the e-developers) have a preferred diff 
> format?  If you have trouble with the diff let me know.

usually cvs diff -u is preferred.

> 
> >
> >>>Please excuse me if I am getting my terminology (screens vs desks) 
> >>>mixed up.
> >>>
> >>>Presently in e17.037...
> >>>when you iconify a window, you can choose whether you want to have 
> >>>them enumerated in the window list or not.  If you choose not to, 
> >>>then they are not present at all.  If you wish to see them, you see 
> >>>*all* iconified windows on the same screen.  Therefore, if you have 
> >>>only one screen like myself, and you switch to one of your other 
> >>>virtual desks... you see them *all* in the list.
> >>>
> >>>I would prefer them to not be there.  I prefer to use each virtual 
> >>>desk as entirely separate from the others.
> >>>
> >Others may also...
> >>>Presently in my patched version...
> >>>I have created options in the Configuration Panel -> Advanced -> 
> >>>Window List -> Window List Settings dialog which read:
> >>>  - Show iconified windows (<- This was already present)
> >>>  - Show iconified windows from other desks
> >>>  - Show iconified windows from other screens
> >>>
> >>>and modified the winlist_border_add function with the following rule:
> >>>    if (bd->iconic)
> >>>      {
> >>>    if (!e_config->winlist_list_show_iconified) ok = 0;
> >>>    if ((bd->zone != zone) &&
> >>>        (!e_config->winlist_list_show_other_screen_iconified)) ok = 
> >>>0;   
> >>>    if ((bd->desk != desk) &&
> >>>        (!e_config->winlist_list_show_other_desk_iconified)) ok = 0;
> >>>      }
> >>>
> >>>This allows me more flexibility over what I see in the window list.  
> >>>If I do not want to see those windows which are iconified on desk0 
> >>>*from* desk1, then I can uncheck the "Show iconified windows from 
> >>>other desks".
> >>
> >>[Forgot to mention]
> >>This matches (I think) the functionality of the ibox, in a sense.  The 
> >>icon boxes can show (!or not!) windows from other screens and desks.
> >>
> >>>I have given the following default values
> >>>    winlist_list_show_iconified = 1
> >>>    winlist_list_show_other_desk_iconified = 1
> >>>    winlist_list_show_other_screen_iconified = 0
> >>>as I think these represent the original behavior before the changes.
> >>>
> >>>One thing I am aware of that I *did not* do (which may need 
> >>>addressing)...  I did not modify the IPC_Handlers in any way.  I was 
> >>>hoping for comments on that.  Is it necessary?  Adding something to 
> >>>e_int_config_winlist.h looks, well.... painful.
> >>>
> >It's general practice that when new config properties get created, they 
> >should be put into enlightenment_remote ipc calls, yes. In the future, 
> >the ipc code is going to get a much-needed cleaning, but for now your 
> >option should go in.
> 
> ok.  I started down this road.  May have even completed it, though I 
> haven't built it yet.  So I backed it out for the diff attached.  How 
> would I go about testing them?  using enlightenment_remote?  I've never 
> used that nor do I have any idea what its for (aside from what the name 
> implies).  I'll look into it.
> 
> >
> >>>Your thoughts?  Would anyone be interested in this functionality?
> >>>
> >>>Regards,
> >>>-R
> >
> >Cheers,
> >dh
> >
> 

> diff -u /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_config.c ./e_config.c
> --- /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_config.c	Mon Nov 13 01:26:14 2006
> +++ ./e_config.c	Wed Dec 13 19:48:38 2006
> @@ -397,6 +397,8 @@
>     E_CONFIG_VAL(D, T, winlist_scroll_animate, INT); /**/
>     E_CONFIG_VAL(D, T, winlist_scroll_speed, DOUBLE); /**/
>     E_CONFIG_VAL(D, T, winlist_list_show_iconified, INT); /**/
> +   E_CONFIG_VAL(D, T, winlist_list_show_other_desk_iconified, INT); /**/
> +   E_CONFIG_VAL(D, T, winlist_list_show_other_screen_iconified, INT); /**/
>     E_CONFIG_VAL(D, T, winlist_list_show_other_desk_windows, INT); /**/
>     E_CONFIG_VAL(D, T, winlist_list_show_other_screen_windows, INT); /**/
>     E_CONFIG_VAL(D, T, winlist_list_uncover_while_selecting, INT); /**/
> @@ -601,6 +603,8 @@
>     e_config->winlist_scroll_animate = 1;
>     e_config->winlist_scroll_speed = 0.1;
>     e_config->winlist_list_show_iconified = 1;
> +   e_config->winlist_list_show_other_desk_iconified = 1;
> +   e_config->winlist_list_show_other_screen_iconified = 0;
>     e_config->winlist_list_show_other_desk_windows = 0;
>     e_config->winlist_list_show_other_screen_windows = 0;
>     e_config->winlist_list_uncover_while_selecting = 0;
> @@ -1314,6 +1318,8 @@
>     E_CONFIG_LIMIT(e_config->winlist_scroll_animate, 0, 1);
>     E_CONFIG_LIMIT(e_config->winlist_scroll_speed, 0.0, 1.0);
>     E_CONFIG_LIMIT(e_config->winlist_list_show_iconified, 0, 1);
> +   E_CONFIG_LIMIT(e_config->winlist_list_show_other_desk_iconified, 0, 1);
> +   E_CONFIG_LIMIT(e_config->winlist_list_show_other_screen_iconified, 0, 1);
>     E_CONFIG_LIMIT(e_config->winlist_list_show_other_desk_windows, 0, 1);
>     E_CONFIG_LIMIT(e_config->winlist_list_show_other_screen_windows, 0, 1);
>     E_CONFIG_LIMIT(e_config->winlist_list_uncover_while_selecting, 0, 1);
> diff -u /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_config.h ./e_config.h
> --- /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_config.h	Wed Nov 15 05:40:27 2006
> +++ ./e_config.h	Wed Dec 13 19:37:06 2006
> @@ -148,6 +148,8 @@
>     int         winlist_scroll_animate; // GUI
>     double      winlist_scroll_speed; // GUI
>     int         winlist_list_show_iconified; // GUI
> +   int         winlist_list_show_other_desk_iconified; // GUI
> +   int         winlist_list_show_other_screen_iconified; // GUI
>     int         winlist_list_show_other_desk_windows; // GUI
>     int         winlist_list_show_other_screen_windows; // GUI
>     int         winlist_list_uncover_while_selecting; // GUI
> diff -u /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_int_config_winlist.c ./e_int_config_winlist.c
> --- /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_int_config_winlist.c	Sun Oct  8 03:04:18 2006
> +++ ./e_int_config_winlist.c	Wed Dec 13 21:04:31 2006
> @@ -13,6 +13,8 @@
>     int warp_at_end;
>     int scroll_animate;
>     int list_show_iconified;
> +   int list_show_other_desk_iconified;
> +   int list_show_other_screen_iconified;
>     int list_show_other_desk_windows;
>     int list_show_other_screen_windows;
>     int list_uncover_while_selecting;
> @@ -65,6 +67,8 @@
>     cfdata->scroll_animate = e_config->winlist_scroll_animate;
>     cfdata->scroll_speed = e_config->winlist_scroll_speed;
>     cfdata->list_show_iconified = e_config->winlist_list_show_iconified;
> +   cfdata->list_show_other_desk_iconified = e_config->winlist_list_show_other_desk_iconified;
> +   cfdata->list_show_other_screen_iconified = e_config->winlist_list_show_other_screen_iconified;
>     cfdata->list_show_other_desk_windows = e_config->winlist_list_show_other_desk_windows;
>     cfdata->list_show_other_screen_windows = e_config->winlist_list_show_other_screen_windows;
>     cfdata->list_uncover_while_selecting = e_config->winlist_list_uncover_while_selecting;
> @@ -101,6 +105,8 @@
>  _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
>  {
>     e_config->winlist_list_show_iconified = cfdata->list_show_iconified;
> +   e_config->winlist_list_show_other_desk_iconified = cfdata->list_show_other_desk_iconified;
> +   e_config->winlist_list_show_other_screen_iconified = cfdata->list_show_other_screen_iconified;
>     e_config->winlist_list_show_other_desk_windows = cfdata->list_show_other_desk_windows;
>     e_config->winlist_list_show_other_screen_windows = cfdata->list_show_other_screen_windows;
>     e_config->winlist_list_uncover_while_selecting = cfdata->list_uncover_while_selecting;
> @@ -125,6 +131,10 @@
>     of = e_widget_framelist_add(evas, _("General Settings"), 0);
>     ob = e_widget_check_add(evas, _("Show iconified windows"), &(cfdata->list_show_iconified));
>     e_widget_framelist_object_append(of, ob);
> +   ob = e_widget_check_add(evas, _("Show iconified windows from other desks"), &(cfdata->list_show_other_desk_iconified));
> +   e_widget_framelist_object_append(of, ob);
> +   ob = e_widget_check_add(evas, _("Show iconified windows from other screens"), &(cfdata->list_show_other_screen_iconified));
> +   e_widget_framelist_object_append(of, ob);	
>     ob = e_widget_check_add(evas, _("Show windows from other desks"), &(cfdata->list_show_other_desk_windows));
>     e_widget_framelist_object_append(of, ob);
>     ob = e_widget_check_add(evas, _("Show windows from other screens"), &(cfdata->list_show_other_screen_windows));
> @@ -161,6 +171,8 @@
>  _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
>  {
>     e_config->winlist_list_show_iconified = cfdata->list_show_iconified;
> +   e_config->winlist_list_show_other_desk_iconified = cfdata->list_show_other_desk_iconified;
> +   e_config->winlist_list_show_other_screen_iconified = cfdata->list_show_other_screen_iconified;
>     e_config->winlist_list_show_other_desk_windows = cfdata->list_show_other_desk_windows;
>     e_config->winlist_list_show_other_screen_windows = cfdata->list_show_other_screen_windows;
>     e_config->winlist_list_uncover_while_selecting = cfdata->list_uncover_while_selecting;
> diff -u /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_winlist.c ./e_winlist.c
> --- /home/ravenlock/MyDocs/MyProjects/E/e17.0/apps/e/src/bin/e_winlist.c	Thu Oct 26 21:49:05 2006
> +++ ./e_winlist.c	Wed Dec 13 20:53:51 2006
> @@ -401,7 +401,9 @@
>       {
>  	if (!e_config->winlist_list_show_iconified) ok = 0;
>  	if ((bd->zone != zone) &&
> -	    (!e_config->winlist_list_show_other_screen_windows)) ok = 0;
> +	    (!e_config->winlist_list_show_other_screen_iconified)) ok = 0;	
> +	if ((bd->desk != desk) &&
> +	    (!e_config->winlist_list_show_other_desk_iconified)) ok = 0;
>       }
>     else
>       {
> @@ -948,4 +950,3 @@
>     _e_winlist_show_active();
>     _e_winlist_activate();
>  }
> -

> -------------------------------------------------------------------------
> 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-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


-- 

Aleksej Struk
Master Degree Student
Free University of Bozen-Bolzano
Faculty of Computer Science
phone: +39-0471-061749
cell phone: +39-3204627049 +370-61278908
astruk@gmail.com alstruk@unibz.it - http://astruk.googlepages.com/home