several defects and enhacement-wishes

samo samo at altern.org
Tue Oct 10 00:43:42 CEST 2006


> You were so kind and ask for that feature soooo nicely that I
> couldn't resist and I have now added the feature in SVN. Of course,
> I count on you for translating the new strings added by this
> feature in the 46 languages within the following couple of days
> (oh, and no need to send the french translation, I took care of
> that myself). Yes, as you know, localization is part of usability,
> and since we are so bad at that, I have to count on people like you
> who are so knowledgeable.
no, you are not bad, you are just not systematic. not that it 
matters...
and i don't think insulting helps any-direction.

> > so u think it is ubuntu packaging making the troubles? mmmh. i
> > think it's something else.
> > i'll checkout svn-head next.
>
> If you are talking about Ctrl+Fn shortcuts to switch workspaces
> (sorry, I have to guess, because you "forgot" to properly
> characterize the problem as there are different ways to switch
> workspaces using the keyboard, and I searched our bugzilla database
> but could not find your relevant detailed bug report yet), then
> yes, it's a bug that has been fixed last Saturday (10/06) and yet
> to be included in Xubuntu package. I've created a Lauchpad report
> for that, it's #64918.
thank you for your effort.

i found it myself:
 - build xfwm4_4.3.99.1svn+r23289-0ubuntu1_i386.deb is broken
 - build xfwm4_4.3.99.1svn+r23137-0ubuntu1_i386.deb is ok
 - build 4.3.99.2 (revision 23328) compiled from from svn-head is ok

actualy, them keys are working, but sending/switching to workspace 
3+number; that is key1->ws1, key2->ws5, key3->ws6, ... and i have 
only 3 workspaces.

i've diff'ed the sources:
--- settings.h	(revision 23289)
+++ settings.h	(working copy)
@@ -82,43 +82,44 @@
-#define KEY_MOVE_WORKSPACE_10           23
-#define KEY_MOVE_WORKSPACE_11           24
-#define KEY_MOVE_WORKSPACE_12           25
-#define KEY_MOVE_WORKSPACE_2            26
-#define KEY_MOVE_WORKSPACE_3            27
-#define KEY_MOVE_WORKSPACE_4            28
-#define KEY_MOVE_WORKSPACE_5            29
-#define KEY_MOVE_WORKSPACE_6            30
-#define KEY_MOVE_WORKSPACE_7            31
-#define KEY_MOVE_WORKSPACE_8            32
-#define KEY_MOVE_WORKSPACE_9            33
+#define KEY_MOVE_WORKSPACE_2            23
+#define KEY_MOVE_WORKSPACE_3            24
+#define KEY_MOVE_WORKSPACE_4            25
+#define KEY_MOVE_WORKSPACE_5            26
+#define KEY_MOVE_WORKSPACE_6            27
+#define KEY_MOVE_WORKSPACE_7            28
+#define KEY_MOVE_WORKSPACE_8            29
+#define KEY_MOVE_WORKSPACE_9            30
+#define KEY_MOVE_WORKSPACE_10           31
+#define KEY_MOVE_WORKSPACE_11           32
+#define KEY_MOVE_WORKSPACE_12           33

you rely on ordering of these items - as in the handleKeyPress() 
switch(). Why not make them enum? And put a comment-warning about 
that order being important? i guess there are other similar ones..
Or just remove them as direct names, and always use key_1 + index...

Also, i noticed a lot of repeating things like: (for example)
...
 parseKeyString (dpy,&screen_info->params->keys[KEY_PREV_WORKSPACE], 
	getValue ("prev_workspace_key", rc));
 parseKeyString (dpy, &screen_info->params->keys[KEY_RAISE_WINDOW],
 	getValue ("raise_window_key", rc));
 parseKeyString (dpy, &screen_info->params->keys[KEY_RESIZE_DOWN],
	getValue ("resize_window_down_key", rc));
... 20 lines like these ...
Most xfwm keybrd management is like this.

These could go into a table (key-attributes) + a loop over it.
This would minimize maintenance issues - u'll have all them keys + 
their attributes in one table, and different loops/"methods" to do 
different things about them. Instead of having many copies of "same" 
list of keys doing slightly different (but repeating) things over and 
over and over.

oh, if u don't want me to comment about maintenability/quality of 
code, bad-practices etc, just say so.

==============
more defects/misbehaviour:
 - panel: something about saving the panel configuration is very 
wrong.
if panel is being killed, and then the session is restarted (no 
session saving), next time there is just empty panel - all it's 
config is gone: the panels.xml file is being freshly overwritten.
similar thing happens if one of the panel items got killed (e.g. 
killall xfce-weather, or SEGV or whatever). Next time it would not 
start at all - it is being removed from panels.xml. Seems someone 
always overwrites this file at eo-session.

 ~- desktop: rm -rf .cache will remove positions of desktop icons.

To me, any user preference should not be put in cache-like place nor  
overwritten / removed without user's will.

  - Desktop/*.desktop files: if u specify Enconding != UTF8, the item 
becomes un-editable and the reported-before misbehaviour.

 - mousepad: the yes-no-cancel dialog, appearing at closing, allows 
focusing on its label (e.g. using [tab]). dunno if this is a common 
dialog or just for mousepad.

ciao
samo



More information about the Xfce mailing list