Enlightenment CVS committal
Author : azundris
Project : e17
Module : apps/e
Dir : e17/apps/e/src
Modified Files:
Tag: SPLIT
desktops.c
Log Message:
PROBLEM
e_desktop_file_event_handler() pointlessly tried to printf a NULL to a
buffer that would then be discarded without ever being used, anyway.
MEASURES
a) more debug in e_desktop_file_event_handler()
b) desk-names are initialized to "Desk N", where N is the index of the
desktop
c) nonetheless, e_desktop_file_event_handler() will no longer crash when
a lambda-desk is to be processed
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/desktops.c,v
retrieving revision 1.46.2.10
retrieving revision 1.46.2.11
diff -u -3 -r1.46.2.10 -r1.46.2.11
--- desktops.c 11 Jan 2003 13:38:47 -0000 1.46.2.10
+++ desktops.c 11 Jan 2003 14:15:07 -0000 1.46.2.11
@@ -245,27 +245,28 @@
e_desktop_file_event_handler(E_Observer *obs, E_Observee *o, E_Event_Type event, void
*data)
{
E_Desktop_Adaptor *a = (E_Desktop_Adaptor *) obs;
- char buf[PATH_MAX];
D_ENTER;
- if(a&&a->desktop&&a->desktop->name) {
+ if(a&&a->desktop) {
+ char *mn=a->desktop->name?a->desktop->name:"";
if (event & E_EVENT_BG_CHANGED) {
- snprintf(buf, PATH_MAX, "background_reload:%s", a->desktop->name);
+ D("background_reload: %s\n",mn);
e_desktop_bg_reload(a->desktop); }
else if (event & E_EVENT_ICB_CHANGED) {
- snprintf(buf, PATH_MAX, "iconbar_reload:%s", a->desktop->name);
+ D("iconbar_reload: %s\n",mn);
e_desktop_ib_reload(a->desktop); }
else if (event & E_EVENT_LAYOUT_CHANGED) {
- snprintf(buf, PATH_MAX, "layout_reload:%s", a->desktop->name);
+ D("layout_reload: %s\n",mn);
e_desktop_layout_reload(a->desktop); }}
#ifdef DEBUG
- else {
+ else { /* add'l debug foo. technically, a, a->desktop should always be
+ set, it's only a->desktop->name that we really worry about.
+ Azundris 2003/01/11 */
if(a) {
- if(a->desktop) {
- D("e_desktop_file_event_handler: E_Desktop_Adaptor->desktop->name not set,
"); }
- else { D("e_desktop_file_event_handler: E_Desktop_Adaptor->desktop not set,
"); }}
- else { D("e_desktop_file_event_handler: E_Desktop_Adaptor not set, "); }
+ D("e_desktop_file_event_handler: E_Desktop_Adaptor->desktop not set, "); }
+ else {
+ D("e_desktop_file_event_handler: E_Desktop_Adaptor not set, "); }
if (event & E_EVENT_BG_CHANGED) {
D("BG_CHANGED\n"); }
@@ -293,8 +294,6 @@
* <[EMAIL PROTECTED]> and Michael Jennings <[EMAIL PROTECTED]>). raster
* intensely dislikes the pseudo-transparency hacks, so don't go to him
* if you need to discuss them. : )
- *
- * THIS CODE IS CONSIDERED EXPERIMENTAL (alpha).
* */
static void
@@ -547,12 +546,23 @@
e_view_look_set_dir(desk->look, buf);
+ /* experimental, Azundris 2003/01/11 */
+ if(!desk->name) {
+ size_t l=0;
+ int j=10,k=1;
+ while(i>=j) {
+ j*=10;
+ k++; }
+#define DESK_DFLT_NAME "Desk "
+ if((desk->name=malloc(l=sizeof(DESK_DFLT_NAME)+k)))
+ snprintf(desk->name,l,"%s%d",DESK_DFLT_NAME,i); }
+
/* The adaptor allows us to watch the look for events, while keeping the
* desktop an observable object */
desk->adaptor = NEW(E_Desktop_Adaptor, 1);
- e_observer_init(E_OBSERVER(desk->adaptor), E_EVENT_BG_CHANGED |
E_EVENT_ICB_CHANGED |
- E_EVENT_LAYOUT_CHANGED, e_desktop_file_event_handler,
- e_desktop_adaptor_cleanup);
+ e_observer_init(E_OBSERVER(desk->adaptor),
+ E_EVENT_BG_CHANGED | E_EVENT_ICB_CHANGED | E_EVENT_LAYOUT_CHANGED,
+ e_desktop_file_event_handler, e_desktop_adaptor_cleanup);
desk->adaptor->desktop = desk;
e_observer_register_observee(E_OBSERVER(desk->adaptor),
E_OBSERVEE(desk->look->obj));
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs