43 hours agoWindow Maker 0.95.6masternextwmaker-0.95.6
Carlos R. Mafra [Sat, 30 Aug 2014 12:29:09 +0000]
Window Maker 0.95.6

2 days agowmaker: implement EWMH _NET_WORKAREA
David Maciejak [Fri, 29 Aug 2014 10:33:10 +0000]
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.

2 days agowmaker: make disable mouse actions a live set
David Maciejak [Thu, 28 Aug 2014 04:07:05 +0000]
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.

4 days agoWPrefs: add new mouse buttons configuration support
David Maciejak [Wed, 27 Aug 2014 09:19:45 +0000]
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.

4 days agowmaker: add support for more mouse buttons
David Maciejak [Wed, 27 Aug 2014 09:17:10 +0000]
wmaker: add support for more mouse buttons

This patch is adding support for back/forward mouse buttons
and the left/right wheel tilt buttons.

5 days agowrlib: remove duplicate code from xpm support
David Maciejak [Tue, 26 Aug 2014 15:02:35 +0000]
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.

5 days agowrlib: add merged code for xpm support in 2 distinct functions
David Maciejak [Tue, 26 Aug 2014 14:58:57 +0000]
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.

6 days agowmaker: update src/action.c coding style
David Maciejak [Mon, 25 Aug 2014 04:42:39 +0000]
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.

6 days agowmaker: fix control shortcut label in window menu
David Maciejak [Mon, 25 Aug 2014 06:14:34 +0000]
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.

6 days agowmaker: fix deiconify window on double-click
David Maciejak [Sat, 23 Aug 2014 11:14:09 +0000]
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.

8 days agoWINGs: merge duplicate code from wtext
David Maciejak [Sun, 24 Aug 2014 00:55:59 +0000]
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.

9 days agowmaker: src/action.c merge duplicate code
David Maciejak [Fri, 22 Aug 2014 11:29:19 +0000]
wmaker: src/action.c merge duplicate code

This patch is merging some duplicate code related
to animation position.

11 days agowmaker: fix src/dock.c code typo
David Maciejak [Wed, 20 Aug 2014 23:44:15 +0000]
wmaker: fix src/dock.c code typo

This patch is renaming the colectIconsCallback name function.

11 days agowmaker: update docked application balloon text
David Maciejak [Wed, 20 Aug 2014 23:26:49 +0000]
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).

11 days agoWPrefs: fix key capture
David Maciejak [Tue, 19 Aug 2014 12:15:44 +0000]
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).

11 days agowmaker: change default app icon
David Maciejak [Tue, 19 Aug 2014 23:34:23 +0000]
wmaker: change default app icon

This patch is changing the default application icon to
a one that reminds the NeXTcube but also a blackbox of
something we don't know about.

It's from LuBu OpenMagic 1.0 for Sparc project at
www.alge.no/index.php/OpenMagic_1.0

According to the license,
"LuBu OpenMagic 1.0 is put into the public domain"

11 days agoapercu: Make preview size a configuration option
Carlos R. Mafra [Wed, 20 Aug 2014 14:54:24 +0000]
apercu: Make preview size a configuration option

Since the resolution of the Retina display tends to make everything small,
the default apercu preview size (twice the icon size) couldn't be used to
distinguish the window contents without tiring too much my eyes.

Therefore, let's make the apercu size a configurable option. You can set
it through the ApercuSize variable with

$ wdwrite WindowMaker ApercuSize 4

in multiples of the icon size (in this case the apercu size will be four
times the icon size).

The default size remains 2 (twice the icon size).

11 days agowmaker: add miniwindow apercu
David Maciejak [Wed, 20 Aug 2014 04:25:56 +0000]
wmaker: add miniwindow apercu

This patch is adding miniwindow apercu when the mouse
is over the miniwindows.

To enable it you have to run WPref, in Miscellaneous Ergonomic
Preferences, check miniwindow apercus.
Then, you will be able to see a screenshot of the app when the mouse
is over the miniwindow.

11 days agowmaker: src/dialog cosmetic code change
David Maciejak [Sun, 17 Aug 2014 02:12:15 +0000]
wmaker: src/dialog cosmetic code change

This patch is just renaming the variable used for the info panel
from 'thePanel' to 'infoPanel'.

11 days agowmaker: update drag-nd-drop label related
David Maciejak [Sat, 16 Aug 2014 15:52:05 +0000]
wmaker: update drag-nd-drop label related

This patch is updating the drag and drop labels
from docked app settings window. As i am not sure common users
are aware of what 'DND' means.

11 days agowmaker: unset default app logo size
David Maciejak [Sat, 16 Aug 2014 15:57:56 +0000]
wmaker: unset default app logo size

This patch is setting the app logo max size to 128 as what can
be found in the rest of the code, so the logo is not restricted
anymore to the icon size defined by WPrefs.
The goal is to solve the resize issue that appears when the logo
is used in Info and Exit panel.

11 days agowmaker: switch back icon name to the window name when needed
David Maciejak [Sat, 16 Aug 2014 16:03:27 +0000]
wmaker: switch back icon name to the window name when needed

This patch is setting the icon name to the window name when
_NET_WM_ICON_NAME is not provided by the app.

11 days agowmaker: fix moveres.c compilation warning
David Maciejak [Thu, 14 Aug 2014 23:46:34 +0000]
wmaker: fix moveres.c compilation warning

This patch is fixing compilation issue:

moveres.c:1801:65: warning: unused parameter 'dx' [-Wunused-parameter]

by removing variable 'dx' from getResizeDirection function.

2 weeks agowmaker: Add drag-nd-drop support
David Maciejak [Thu, 14 Aug 2014 05:30:17 +0000]
wmaker: Add drag-nd-drop support

This patch is removing the experimental status of
drag-nd-drop support on the dock and adding an option
to disable the feature from the configure step.

2 weeks agowmaker: Add drag-nd-drop support in info panel
David Maciejak [Thu, 14 Aug 2014 05:28:53 +0000]
wmaker: Add drag-nd-drop support in info panel

This patch is adding a message in the info panel
if drag-nd-drop was compiled in.

2 weeks agowmaker: Improve drag-nd-drop support
David Maciejak [Thu, 14 Aug 2014 05:27:37 +0000]
wmaker: Improve drag-nd-drop support

This patch is cleaning the previous DnD support,
and adds the get type list protocol negociation.
Currently only supporting uri-list type.

3 weeks agowmaker: fix xdnd accepted type
David Maciejak [Thu, 7 Aug 2014 04:44:35 +0000]
wmaker: fix xdnd accepted type

This patch is ensuring that the data dropped is a file format URI
and converting it as stated by XDND specs.
It solves:
*crash in my env when arbitrary stuff is dropped
*correct handling of non ascii chars

5 weeks agowrlib: fix RCreateImageFromDrawable error log msg
David Maciejak [Thu, 24 Jul 2014 04:31:27 +0000]
wrlib: fix RCreateImageFromDrawable error log msg

This patch is fixing the name of the function from the log message.

5 weeks agoWINGs: correct possible null pointer dereference
David Maciejak [Sun, 27 Jul 2014 06:15:51 +0000]
WINGs: correct possible null pointer dereference

As reported by cppcheck:

[WINGs/array.c:129] -> [WINGs/array.c:131]: (warning) Possible null pointer dereference: array - otherwise it is redundant to check it against null.
[WINGs/array.c:151] -> [WINGs/array.c:153]: (warning) Possible null pointer dereference: array - otherwise it is redundant to check it against null.
[WINGs/array.c:170] -> [WINGs/array.c:172]: (warning) Possible null pointer dereference: array - otherwise it is redundant to check it against null.

This patch is checking that the var name 'array' exists.

5 weeks agowmaker: main.c fix realloc mistake
David Maciejak [Sun, 27 Jul 2014 06:25:24 +0000]
wmaker: main.c fix realloc mistake

As reported by cppcheck:
[src/main.c:141]: (error) Common realloc mistake: 'wVisualID' nulled but not freed upon failure

The patch is using wrealloc instead of the standard realloc().

5 weeks agowmaker: superfluous.c possible null pointer dereference
David Maciejak [Sun, 27 Jul 2014 06:23:49 +0000]
wmaker: superfluous.c possible null pointer dereference

As reported by cppcheck:
[src/superfluous.c:238] -> [src/superfluous.c:199]: (warning) Possible null pointer dereference: aicon - otherwise it is redundant to check it against null.
[src/superfluous.c:239] -> [src/superfluous.c:199]: (warning) Possible null pointer dereference: aicon - otherwise it is redundant to check it against null.
[src/superfluous.c:240] -> [src/superfluous.c:199]: (warning) Possible null pointer dereference: aicon - otherwise it is redundant to check it against null.

The patch is adding a test to check if variable aicon exists.

5 weeks agowmaker: dock.c possible null pointer dereference
David Maciejak [Sun, 27 Jul 2014 06:22:31 +0000]
wmaker: dock.c possible null pointer dereference

As reported by cppcheck:
[src/dock.c:568] -> [src/dock.c:571]: (warning) Possible null pointer dereference: aicon - otherwise it is redundant to check it against null.

The aicon test is useless, the patch is removing it.

5 weeks agoWINGs/Tests: make them compile again
David Maciejak [Sun, 27 Jul 2014 02:41:12 +0000]
WINGs/Tests: make them compile again

This patch is adding the missing X11 libs reference.

5 weeks agowrlib/tests: fix testgrad memory leak
David Maciejak [Sun, 27 Jul 2014 02:46:10 +0000]
wrlib/tests: fix testgrad memory leak

cppcheck is reporting:
[wrlib/tests/testgrad.c:148]: (error) Memory leak: color_name

but seems some other variables were never freed.
This patch is cleaning them property.

6 weeks agoIncrement versions of libraries for next release due to public API Changes
Christophe CURIS [Sat, 19 Jul 2014 16:50:45 +0000]
Increment versions of libraries for next release due to public API Changes

WRaster:
- new function 'RShutdown'
- removed flag 'optimize_for_speed' from RContext
- new functions '...(operate_xxx)', '...(flip_image)'

WUtil:
- new function 'wutil_shutdown'
- new macro 'wlengthof'

WINGs:
- new function 'WMReleaseApplication'
- new function 'WMCreateScaledBlendedPixmapFromFile'

(And maybe a few more I missed)

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

6 weeks agowrlib: re-introduce the optimize_for_speed flag for binary compatibility
Christophe CURIS [Sat, 19 Jul 2014 16:50:44 +0000]
wrlib: re-introduce the optimize_for_speed flag for binary compatibility

The commit #d1f9b801 removed it because the code behind it is actually
useless, unfortunately removing the flag itself from the structure is
breaking the compatibility of the API.

To avoid problems, this patch re-introduces the flag in the structure, but
not the code behind it so it is useless, and adds an attribute so that gcc
will report its use as deprecated, to help application migration.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

6 weeks agowmaker: improve the behaviour of window resizing by user
Ioan Moldovan [Sat, 19 Jul 2014 16:50:43 +0000]
wmaker: improve the behaviour of window resizing by user

The original behaviour was a bit frustrating because it used the first
small mouse move to deduce the user's wished direction, but that is a bit
imprecise.

This patch divides the window in 9 rectangles:
 - 4 for corners, used for diagonal resizing
 - 4 for middles of sides, for resizing Up, Down, Left and Right
 - 1 useless in the middle of the the window, which falls back on diagonal
resizing
This leads to a more predictive behaviour.

8 weeks agodoc: add a few more suggestions for people willing to contribute
Christophe CURIS [Fri, 4 Jul 2014 21:28:49 +0000]
doc: add a few more suggestions for people willing to contribute

Recommend usage for the configure flag 'enable-debug' when testing code and
invite to make use the the checkpatch.pl script.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoutil: add explicit types for calback functions definitions
Christophe CURIS [Fri, 4 Jul 2014 21:28:48 +0000]
util: add explicit types for calback functions definitions

It makes the code easier to read to explicitly define a type for the
functions that are used for callbacks, so this patch does this for the
wmmenugen tool.

It was an opportunity to highlight some variable definitions that looked
like function prototypes, and were as such misplaced in the code, being a
source of confusion.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoutil: clarify a bit of the code for parsing commands in wmgenmenu
Christophe CURIS [Fri, 4 Jul 2014 21:28:47 +0000]
util: clarify a bit of the code for parsing commands in wmgenmenu

When a command is given for a menu to be run through a terminal, there is
a piece of code that removes everything from a '!' to the end of the line.

The original code was too dense and not really optimal, so this patch
proposes a more explicit code, mainly for maintainability.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoutil: update wmiv after the RFlipImage API change in wrlib
Christophe CURIS [Fri, 4 Jul 2014 21:28:46 +0000]
util: update wmiv after the RFlipImage API change in wrlib

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoWPrefs: grouped items related to the texture selection in a single place
Christophe CURIS [Fri, 4 Jul 2014 21:28:45 +0000]
WPrefs: grouped items related to the texture selection in a single place

Having all these information spread in different places makes it error
prone when wanting to add/remove/change something in the list are there are
many unrelated places to keep in sync.

By merging everything in a single struct array it is a lot easier to
maintain this list.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoWPrefs: grouped items related to the color selection in a single place
Christophe CURIS [Fri, 4 Jul 2014 21:28:44 +0000]
WPrefs: grouped items related to the color selection in a single place

Having all these information spread in different places makes it error
prone when wanting to add/remove/change something in the list are there are
many unrelated places to keep in sync.

By merging everything in a single struct array it is a lot easier to
maintain this list.

Took the opportunity to properly document a little hack which is used to
avoid complex handling for a special case.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoWPrefs: replaced NULL terminated lists by 'wlengthof' usages
Christophe CURIS [Fri, 4 Jul 2014 21:28:43 +0000]
WPrefs: replaced NULL terminated lists by 'wlengthof' usages

When a list has a fixed size, it is better to use the size of the list
instead of an end-of-list mark because it avoid unnecessary memory usage
and ease compiler's optimisation task.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowmaker: simplify the code for the Xkb event handler
Christophe CURIS [Fri, 4 Jul 2014 21:28:42 +0000]
wmaker: simplify the code for the Xkb event handler

The code uses an extra variable that is specific the the Xkb code but it
is not really needed, removing it makes the code simpler, thus easier to
maintain.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowmaker: remove checks on variables that have already been checked
Christophe CURIS [Fri, 4 Jul 2014 21:28:41 +0000]
wmaker: remove checks on variables that have already been checked

In the function that creates the background image for the switch panel
there are a number of checks on the size of the image, but this has
already been checked at the beginning of the function with an early return
in this case.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowmaker: removed variable whose value never changed
Christophe CURIS [Fri, 4 Jul 2014 21:28:40 +0000]
wmaker: removed variable whose value never changed

In the function wHandleAppIconMove there is an event handling loop
which was supposed to be finished with the variable 'done'.

As the code is using 'return' inside the loop, which is both more
convenient and easier to read, this variable was never set, making
the loop an infinite looking loop.

This patch removes the variable so it will be clear how it behaves.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowmaker: fixed flag to avoid reloading config multiple times
Christophe CURIS [Fri, 4 Jul 2014 21:28:39 +0000]
wmaker: fixed flag to avoid reloading config multiple times

The code includes a check whose goal is to avoid reloading more than once
the configuration, in case Inotify would report more than one change during
the event processing.

But the flag was not set so mechanism was ineffective, which is probably
ok anyway but as it is here let's make it work.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agoWINGs: optimisations to 'WMReadPropListFromPipe'
Christophe CURIS [Fri, 4 Jul 2014 21:28:38 +0000]
WINGs: optimisations to 'WMReadPropListFromPipe'

The function did spend its time re-copying data and searching the
end of the read buffer, which is not really efficient.

The new code reads directly from file to the end of previous data,
avoiding unneccesary duplication, and keeps track of the end of
data to avoid searching it for next read.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowrlib: merged both R*FlipImage function into one for the public API
Christophe CURIS [Fri, 4 Jul 2014 21:28:37 +0000]
wrlib: merged both R*FlipImage function into one for the public API

It is generally not a good idea to have an API with a high number of
functions because it adds complexity for user and for maintainability,
so both function have been "merged" into a single RFlipImage with
a parameter to specify what flip is expected.

As a bonus, the function can perform both flips at once if wanted.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowrlib: do not create an alpha channel if the original image did not have it in RFlipImage
Christophe CURIS [Fri, 4 Jul 2014 21:28:36 +0000]
wrlib: do not create an alpha channel if the original image did not have it in RFlipImage

As it does not cost anything in the current code to not add this channel,
it is then probably a good idea to keep the output image with the same
format as the input image, this avoid wasting +33% of memory for something
that may be at best unused and at worst will induce extra cost when
manipulating the image.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowrlib: code refactoring in RFlipImage functions
Christophe CURIS [Fri, 4 Jul 2014 21:28:35 +0000]
wrlib: code refactoring in RFlipImage functions

Instead of calling all variables with variants of 'image', changed
the name to reflect what image it is about for clarity.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

8 weeks agowrlib: move fixed angle rotation code to dedicated functions
Christophe CURIS [Fri, 4 Jul 2014 21:28:34 +0000]
wrlib: move fixed angle rotation code to dedicated functions

The function RRotateImage contains code to handle efficiently the 4 simple
angles 0, 90, 180 and 270 degrees, which makes it a long function.

This patch separate the code for the different cases into dedicated
functions so the main function's code ends up being simple (aka: easier to
understand/review/maintain).

As a side effect, the function for the 180 degree function is not static
because it can be reused to flip an image both horizontally and vertically.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoCatch-up with new strings, and overall improvements of the Dutch language files
Alwin [Fri, 20 Jun 2014 09:52:03 +0000]
Catch-up with new strings, and overall improvements of the Dutch language files

Catch-up with new strings, and overall improvements of the Dutch language files

2 months agoutil: cosmetic updates to the list of terminals for wmmenugen
Christophe CURIS [Mon, 16 Jun 2014 18:15:31 +0000]
util: cosmetic updates to the list of terminals for wmmenugen

Added a comment to describe each terminal, so it will be easier to maintain
the list in the future; added const attributes to help compiler generate
better code; changed list parsing to use the size of the array instead of
a null pointer mark for better compiled result.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoRemoved definitions of dangerous macro RETRY that does not work as expected
Christophe CURIS [Mon, 16 Jun 2014 18:15:30 +0000]
Removed definitions of dangerous macro RETRY that does not work as expected

This macro supposes that the called lib function clears the 'errno'
variable on success which is not the case. The macro was (luckily) not
used in these file yet, by removing it we make sure it won't happen.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: rewrote path building in makeThemePack
Christophe CURIS [Mon, 16 Jun 2014 18:15:29 +0000]
util: rewrote path building in makeThemePack

Use a better name for local variable and allocate the (almost) correct
number of characters for the path instead of a fixed offset that could be
a problem if the constant part of the path were to be updated.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: add check for size validity (Coverity #50224)
Christophe CURIS [Mon, 16 Jun 2014 18:15:28 +0000]
util: add check for size validity (Coverity #50224)

As pointed by Coverity, when reading the size of data using 'readmsg' that
size cannot be fully trusted (possibly in case of bugs in present case),
so this patch adds a check to ensure it is valid before continuing.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: replaced sprintf with snprintf to avoid buffer overflow (Coverity #50220)
Christophe CURIS [Mon, 16 Jun 2014 18:15:27 +0000]
util: replaced sprintf with snprintf to avoid buffer overflow (Coverity #50220)

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fix possible buffer overrun in the function that create L2 menus (Coverity...
Christophe CURIS [Mon, 16 Jun 2014 18:15:26 +0000]
util: fix possible buffer overrun in the function that create L2 menus (Coverity #50219)

As pointed by Coverity, the buffer used to store the command for the menu
has a fixed size, so a check is welcome to avoid buffer overflow.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: add proper check for null pointer in wmsetbg (Coverity #50198)
Christophe CURIS [Mon, 16 Jun 2014 18:15:25 +0000]
util: add proper check for null pointer in wmsetbg (Coverity #50198)

As pointed by Coverity, it is possible that the variable 'image' remains
NULL in the function parseTexture, so this case must be checked
appropriately where it is used.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fix leaks in wmsetbg's changeTextureForWorkspace (Coverity #50169)
Christophe CURIS [Mon, 16 Jun 2014 18:15:24 +0000]
util: fix leaks in wmsetbg's changeTextureForWorkspace (Coverity #50169)

As pointed by Coverity, some locally created PropList objects are not freed
when the function returns. The truth is their refCount is 1 more than what
they should be, but that's more than what Coverity can detect today.

This patch adds the appropriate release calls when they are not needed
anymore, which will actually not free them but get their refCount right so
they will be freed as soon as the PropList in which they are used are
released.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fixed memleak in wmsetbg's updateDomain (Coverity #50167)
Christophe CURIS [Mon, 16 Jun 2014 18:15:23 +0000]
util: fixed memleak in wmsetbg's updateDomain (Coverity #50167)

As pointed by Coverity, the function wstrconcat is allocating memory to
return its result, which is not freed in old coding of the function.

This patch uses a local storage buffer to have a simpler code to generate
the command to bu run with 'system' without leak.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fix image leak in wmsebg's parseTexture (Coverity #50166)
Christophe CURIS [Mon, 16 Jun 2014 18:15:22 +0000]
util: fix image leak in wmsebg's parseTexture (Coverity #50166)

As pointed by Coverity, in some case of texture with image that needs to
be scaled the temporary scaled image would be leaked if and error occured
during its conversion.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fix leak in getstyle's makeThemePack (Coverity #50164)
Christophe CURIS [Mon, 16 Jun 2014 18:15:21 +0000]
util: fix leak in getstyle's makeThemePack (Coverity #50164)

As pointed by Coverity, the function is creating a temporary array with
the list of keys of the Style dictionnary, but it was not freed in the end.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: remove unnecesary allocation in addWMMenuEntryCallback (Coverity #50161)
Christophe CURIS [Mon, 16 Jun 2014 18:15:20 +0000]
util: remove unnecesary allocation in addWMMenuEntryCallback (Coverity #50161)

As pointed by Coverity, the string passed to 'findPositionInMenu' is not
freed, and as the function does not modify it it is not necessary to
allocate a new storage for the argument.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fix leak in setstyle (Coverity #50151+#50152)
Christophe CURIS [Mon, 16 Jun 2014 18:15:19 +0000]
util: fix leak in setstyle (Coverity #50151+#50152)

As pointed by Coverity, there are a few cases where the list of the keys
of a dictionary is being requested, but at the end the array that was
created to hold these keys was not freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: fix misleading indentation in assemblePLMenuFunc (Coverity #50094)
Christophe CURIS [Mon, 16 Jun 2014 18:15:18 +0000]
util: fix misleading indentation in assemblePLMenuFunc (Coverity #50094)

As pointed by Coverity, the indentation for a block of code could lead to
misinterpretation on when it is executed. To make code safer, re-indented
the code properly and added some blank lines for clarity.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: removed unnecessary RReleaseImage in wmsetbg (Coverity #50077)
Christophe CURIS [Mon, 16 Jun 2014 18:15:17 +0000]
util: removed unnecessary RReleaseImage in wmsetbg (Coverity #50077)

As pointed by Coverity, it is not useful to call RReleaseImage if we are in
the branch of code where we know that the image for which it is being
called is NULL.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agoutil: simplify the code for 'find_terminal_emulator' (Coverity #50076)
Christophe CURIS [Mon, 16 Jun 2014 18:15:16 +0000]
util: simplify the code for 'find_terminal_emulator' (Coverity #50076)

As pointed by Coverity, the code was making an explicit use of a null
pointer, which is certainly not what was initially expected. The code was
simplified to fix the case and to make it easier to understand and
maintain.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowmaker: redo logo
David Maciejak [Sun, 15 Jun 2014 11:05:40 +0000]
wmaker: redo logo

This patch is providing the logo still in 48x48 size
but with a better definition.

2 months agoConsistent terms for switch panel cycling.
Iain Patterson [Sun, 15 Jun 2014 07:52:55 +0000]
Consistent terms for switch panel cycling.

The terms "switch panel" and "cycling" have been used in Window Maker
since time immemorial but have not always been applied consistently.

2 months agowrlib: add explicit type definition in API to allow compiler Type Checks (3/3)
Christophe CURIS [Sat, 14 Jun 2014 17:34:09 +0000]
wrlib: add explicit type definition in API to allow compiler Type Checks (3/3)

When defining enums as types instead of simple enums allows to use these
types at the places where the corresponding enum values are expected, then
allowing the compiler to check that, potentially reporting incorrect use
of values to the user.

This patch adds the type for the gradient style for RRender*Gradient.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: add explicit type definition in API to allow compiler Type Checks (2/3)
Christophe CURIS [Sat, 14 Jun 2014 17:34:08 +0000]
wrlib: add explicit type definition in API to allow compiler Type Checks (2/3)

When defining enums as types instead of simple enums allows to use these
types at the places where the corresponding enum values are expected, then
allowing the compiler to check that, potentially reporting incorrect use
of values to the user.

This patch adds the types for the drawing operations used by the functions
who drawing shapes into an RImage.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: add explicit type definition in API to allow compiler Type Checks (1/3)
Christophe CURIS [Sat, 14 Jun 2014 17:34:07 +0000]
wrlib: add explicit type definition in API to allow compiler Type Checks (1/3)

When defining enums as types instead of simple enums allows to use these
types at the places where the corresponding enum values are expected, then
allowing the compiler to check that, potentially reporting incorrect use
of values to the user.

This patch adds types for the configuration fields in the RContextAttributes
structure.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: new headers to contain definition of internal stuff
Christophe CURIS [Sat, 14 Jun 2014 17:34:06 +0000]
wrlib: new headers to contain definition of internal stuff

Using local function prototype redefinition is dangerous, now a single
prototype is seen in all the files that are concerned.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: return NULL if XImage could not be taken, for consistency
Christophe CURIS [Sat, 14 Jun 2014 17:34:05 +0000]
wrlib: return NULL if XImage could not be taken, for consistency

To be consistent with RCreateXImage and because it should not be up to the
caller to handle this, when XGetImage returns a NULL pointer then the
function RGetXImage will also return NULL instead of an RXImage structure
with a NULL pointer.

This consistent behaviour helps fixing a memory leak in WMaker reported by
Coverity (#50125).

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: remove unnecessary variable assignation (Coverity #50258)
Christophe CURIS [Sat, 14 Jun 2014 17:34:04 +0000]
wrlib: remove unnecessary variable assignation (Coverity #50258)

As pointed by Coverity, this value is never used, the assignation has no
effect, so Coverity reports that it is unnecessary complexity that is not
compatible with code maintainability.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: initialise value for variable to avoid possible crash (Coverity #50245)
Christophe CURIS [Sat, 14 Jun 2014 17:34:03 +0000]
wrlib: initialise value for variable to avoid possible crash (Coverity #50245)

As pointed by Coverity, there's a free on the content of this buffer at
function's end, but if the image's width or height is lower than 1 then we
could reach this free before allocating anything, thus having an
uninitialised pointer.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: added a limit to the image cache size (Coverity #50223)
Christophe CURIS [Sat, 14 Jun 2014 17:34:02 +0000]
wrlib: added a limit to the image cache size (Coverity #50223)

As pointed by Coverity, environment variables cannot be considered
trustworthy ("tainted"), so we need to make sure the values provided are
within reasonable bounds for safe operations.

Seized the opportunity to try to provide clearer name for the constants
defining the default value.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: removed macro RETRY that does not does what is expected (Coverity #50160)
Christophe CURIS [Sat, 14 Jun 2014 17:34:01 +0000]
wrlib: removed macro RETRY that does not does what is expected (Coverity #50160)

As pointed by Coverity, the behaviour of fopen/fread/fclose in case of
error is not really what the macro RETRY assumes. So the macro is removed
and appropriate action is implemented.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: fix possible incorrect shifting operations (Coverity #50204, #50205, #50206)
Christophe CURIS [Sat, 14 Jun 2014 17:34:00 +0000]
wrlib: fix possible incorrect shifting operations (Coverity #50204, #50205, #50206)

As pointed by Coverity, the shift operation performed for color-to-pixel
transform may not behave as well as expected because of the types used
(Coverity pointing suspicious sign extension because of int type being
involved).

The new code tries to leave no open interpretation to the compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowrlib: fix possible incorrect shifting operations (Coverity #50203)
Christophe CURIS [Sat, 14 Jun 2014 17:33:59 +0000]
wrlib: fix possible incorrect shifting operations (Coverity #50203)

As pointed by Coverity, the shift operation performed for color-to-pixel
transform may not behave as well as expected because of the types used
(Coverity pointing suspicious sign extension because of int type being
involved).

The new code tries to leave no open interpretation to the compiler.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

2 months agowmaker: darken labels from docked application settings
David Maciejak [Thu, 12 Jun 2014 05:50:45 +0000]
wmaker: darken labels from docked application settings

This patch darkens DnD labels when support is not compiled in.

2 months agoWINGs: add function to set the color of the frame title
David Maciejak [Thu, 12 Jun 2014 05:48:47 +0000]
WINGs: add function to set the color of the frame title

This patch adds a function used to set the color of the frame title

2 months agowrlib: load.c clean coding style
David Maciejak [Wed, 11 Jun 2014 05:26:55 +0000]
wrlib: load.c clean coding style

just some code cleaning stuff.

2 months agoWMaker: src/misc.c remove obsolete code
David Maciejak [Wed, 11 Jun 2014 05:22:28 +0000]
WMaker: src/misc.c remove obsolete code

This patch is removing the call to get_dnd_selection function
which was removed long time ago.

2 months agoWPrefs: add expert option to disable switch panel
David Maciejak [Thu, 5 Jun 2014 04:23:51 +0000]
WPrefs: add expert option to disable switch panel

This patch is adding a checkbox option in the expert panel
to let the user enable/disable switching panel.

2 months agoAdd checkpatch.pl to distribution tarball.
Doug Torrance [Tue, 3 Jun 2014 13:52:29 +0000]
Add checkpatch.pl to distribution tarball.

This patch includes checkpatch.pl in the EXTRA_DIST variable in Makefile.am so
that it is included when a tarball is built using "make dist".

2 months agoWPrefs: set IconTitleColor, IconTitleBack, ClipTitleColor, and CClipTitleColor
Doug Torrance [Mon, 2 Jun 2014 20:11:38 +0000]
WPrefs: set IconTitleColor, IconTitleBack, ClipTitleColor, and CClipTitleColor

This patch adds the ability to set the colors for IconTitleColor, IconTitleBack,
ClipTitleColor, and CClipTitleColor, the only four colors set by setstyle which
previously were not configurable using WPrefs.

The icon in the preview window appears as a miniwindow if IconTitleColor or
IconTitleBack are being configured and as the clip if ClipTitleColor or
CClipTitleColor are being configured.

2 months agoutil/wmiv: add image auto orientation detection
David Maciejak [Mon, 2 Jun 2014 10:27:36 +0000]
util/wmiv: add image auto orientation detection

Based on libexif feature, this patch is adding orientation
detection and provides 2 more shortcuts for live
right/left rotation. Internal version was bumped to 0.7.

3 months agoWPrefs: add warning when renderTexture encounters some unknow settings
Christophe CURIS [Sat, 31 May 2014 17:58:49 +0000]
WPrefs: add warning when renderTexture encounters some unknow settings

Having the warning displayed will help devs to understand what is going
on and where to look at for a fix.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix NULL pointer handling when getting the Modifiers (Coverity #50200)
Christophe CURIS [Sat, 31 May 2014 17:58:48 +0000]
WPrefs: fix NULL pointer handling when getting the Modifiers (Coverity #50200)

As pointed by Coverity, the allocated value returned by XGetModifierMapping
is assumed to be non-NULL everywhere except when releasing it.
Removed this last check (useless) and added a little check at the beginning
to avoid an (improbable) crash.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix memory leak when saving window handling settings (Coverity #50158)
Christophe CURIS [Sat, 31 May 2014 17:58:47 +0000]
WPrefs: fix memory leak when saving window handling settings (Coverity #50158)

As pointed by Coverity, the functions WMCreatePLString return a newly
allocated WMPropList, which must be released when not needed anymore.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix memory leak when editing a delay for the dock (Coverity #50156)
Christophe CURIS [Sat, 31 May 2014 17:58:46 +0000]
WPrefs: fix memory leak when editing a delay for the dock (Coverity #50156)

As reported by Coverity, the return string of WMGetTextFieldText is
malloced so it needs to be freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix memory leak when saving settings (Coverity #50140 + #50157 + #50159)
Christophe CURIS [Sat, 31 May 2014 17:58:45 +0000]
WPrefs: fix memory leak when saving settings (Coverity #50140 + #50157 + #50159)

As pointed by Coverity, the string returned by 'WMGetTextFieldText' is
allocated dynamically, so it must be freed when not needed anymore.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix memory leak when editing the label of a menu (Coverity #50130)
Christophe CURIS [Sat, 31 May 2014 17:58:44 +0000]
WPrefs: fix memory leak when editing the label of a menu (Coverity #50130)

As pointed by Coverity, the function 'WMGetTextFieldText' already allocates
memory for its return string, so it is not necessary to wstrdup it.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix memory leak in loadRImage (Coverity #50107)
Christophe CURIS [Sat, 31 May 2014 17:58:43 +0000]
WPrefs: fix memory leak in loadRImage (Coverity #50107)

As pointed by Coverity, if there is a problem when reading the binary data
of an RImage from a file, the area allocated to store it would not be
freed.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix memory leak in buildPLFromMenu (Coverity #50105)
Christophe CURIS [Sat, 31 May 2014 17:58:42 +0000]
WPrefs: fix memory leak in buildPLFromMenu (Coverity #50105)

As pointed by Coverity, the PLArray that is created to store the return
value of the function 'processData' can be left allocated if some case
handling decide to return NULL instead.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>

3 months agoWPrefs: fix possible crash when saving mouse modifier (Coverity #50098)
Christophe CURIS [Sat, 31 May 2014 17:58:41 +0000]
WPrefs: fix possible crash when saving mouse modifier (Coverity #50098)

As pointed by Coverity, there is a possible NULL pointer dereference in the
code that extracts the selected modifier (from a popup button list).

The code assumes that there is always a space between the core name of the
modifier (which is used for saving) and the more user friendly name. This
is true if the list could be successfully generated in fillModifierPopUp,
but it may not be the case if that function has to fall-back to the
default list (XGetModifierMaping failure).

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>