WPrefs: fix key capture

This patch is used to fix the Debian bug #140181

It updates the NumLockMask function to report the mask and
call XFreeModifiermap when needed.
It also modifies capture_shortcut function to be able to use Super keys
and report numeric keypad when pressed (aka now detects correctly
if the numlock is enabled or not).
wmaker: update docked application balloon text

This patch is displaying the number of application instance
run directly in the balloon text (and I also run checkpatch.pl).
wmaker: fix src/dock.c code typo

This patch is renaming the colectIconsCallback name function.
wmaker: src/action.c merge duplicate code

This patch is merging some duplicate code related
to animation position.
WINGs: merge duplicate code from wtext

This patch is saving about 30 duplicate code lines from
WMPrependTextBlock and WMAppendTextBlock to create
a static fct called prepareTextBlock.
wmaker: fix deiconify window on double-click

This patch is fixing the RenderBadPicture X errors on deiconifying
window using double-click.

Background:

I also experienced this issue these days, after checking it was not
introduce with latest apercu feature I decided to dig into it.
As far as I saw in the archive it was first reported by Rodolfo in June 2012.

Each time a window is deiconify using double-click, the error below
is reported in the session error log:
wmaker(catchXError(startup.c:177)): warning: internal X error:
RenderBadPicture (invalid Picture parameter)
        Request code: 152
        Request minor code: 7
        Resource ID: 0x6000a4
        Error serial: 9269

So I decided to track when the issue is happening,
from src/action.c wDeiconifyWindow then in src/icon.c wIconDestroy
then in src/wcore.c wCoreDestroy.
At that stage, all the structures I checked are cleaned up properly
during the icon destroy process.

So I also checked when the issue is generated, I ended in
wrlib/xutil.c RCreateXImage (in the share memory extension code)

             XSync(context->dpy, False);
             oldErrorHandler = XSetErrorHandler(errorHandler);
             XShmAttach(context->dpy, &rximg->info);
             XSync(context->dpy, False);
             XSetErrorHandler(oldErrorHandler);

At this point I was quite lost, cause it means the error could
have been in the server error queue already.

Facts, seems the issue is appearing only on double-clicking the miniwindow,
but not when "Deminiaturize" is clicked from the right-click contextual menu.
I also checked the code from winmenu.c when the action MC_MINIATURIZE
is selected from execMenuCommand fct, but it was just calling
wDeiconifyWindow function. Hum.

So, after one full day of thought I tested to just change the focus before
double-clicking the miniwindow, and bingo it works.
That means when the icon is destroyed the X server still has a reference
on it that's generating the issue.
wmaker: fix control shortcut label in window menu

This patch is fixing the shortcut label used in window menu.
As now when a 'control' shortcut was used, the label displayed
was 'bug' cause GetShortcutString fct which is calling wXModifierFromKey
fct was waiting for a 'Control' static string not the default one
set to 'Ctrl' string.
wmaker: update src/action.c coding style

This patch is updating the coding style based on checkpatch output
and as suggested by Rodolfo it also inverts the condition test
in getAnimationGeometry fct to return earlier when possible.
wrlib: add merged code for xpm support in 2 distinct functions

This patch is adding some merged code in
create_rimage_from_xpm and is_xpm_error fonctions.
wrlib: remove duplicate code from xpm support

This patch is removing the duplicate code by
using functions create_rimage_xpm and is_xpm_error
previously created.
wmaker: add support for more mouse buttons

This patch is adding support for back/forward mouse buttons
and the left/right wheel tilt buttons.
WPrefs: add new mouse buttons configuration support

This patch is updating the mouse button configuration panel
to be able to set action to the new mouse buttons supported.
wmaker: make disable mouse actions a live set

This patch is allowing to enable or disable the 'disable mouse actions'
from the WPrefs app without requiring to restart the session.
wmaker: implement EWMH _NET_WORKAREA

This patch is adding the _NET_WORKAREA property
which according to EWMH spec MUST be implemented.
Some application like rdesktop or nautilus are using
it, that's maybe why you encountered some errors like these:

** (nautilus:6457): WARNING **: Can not get _NET_WORKAREA
** (nautilus:6457): WARNING **: Can not determine workarea, guessing at layout

For now, the property is only updated when a workarea is created or destroyed.
Window Maker 0.95.6
wmaker: improve key shortcut labelling

This patch is improving the key shortcut labelling in the root menu.
It modifies the GetShortcutString function to save some cycles
as wXModifierFromKey is already doing all the string comparisons.
This patch introduces a new function called wXModifierToShortcutLabel
that is checking the return value from wXModifierFromKey.
Not sure why Control was set as a special key, as keyboards could
have 2 controls but also 2 shift keys.
WINGs: merge hashtable duplicate code

This patch is adding a new static function hashGetItem to factorize some code.
WINGs: merge bagtree duplicate code

This patch is adding a new static function treeDeleteNode to factorize some code.
wmaker: merge reading menu duplicate code

This patch is adding a readMenu function to be called from
readMenuPipe and readMenuFile, saving about 20 lines of code.
Catch-up and some improvements of the Dutch .po files

Recently added msgid's were translated, and some existing translations
improved. As development is done in git 'next', strings from wmaker-0.95.6
will be remained at the end of the files, so they are backward compatible.