Factually, the program works because the function 'drawerRemoveFromChain'
uses only the address of the drawer and not the content of the structure,
but conceptually this address point to a storage space that has been
de-allocated, so that's calling for trouble for future code changes.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, the function 'wdefaultspathfordomain' cannot
return a NULL path, so it is not necessary to check for it. (in the
present case, it led Coverity to think it was possible to have the
structure 'stbuf' uninitialised)
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, there is one case where the string returned by
WMGetTextFieldText could be left allocated.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, there is one case where the application dictionary
which is created temporarily (when saving the changes in the Window
Inspector) could be left allocated. It is now freed in the common path to
avoid problems.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As reported by Coverity, it was possible to return early from the function
'listCallback' without de-allocating a temporary string. The string is now
requested after this early return.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointer by Coverity, the function wstrappend may move the string in
memory (because that's what realloc does if it can't expand the allocated
buffer in-place), so it is important to use the returned address and not
assume the old pointer is still valid.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, the caller of the function 'getSavedState' assumes
that if the function returns 0 then the wstate is not initialised. This was
not actually true, so this patch changes 'getSavedState' to behave as
expected.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, the memory allocated to contain the argument list
for spawning ourself was never released.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, if the function wShowCrashingDialogPanel is not
able to connect to the default screen, then the memory allocated for the
panel would be leaked.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, there are some cases where the name of the file
returned by wIconChooserDialog could be left unfreed.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The function wIconChooserDialog already makes sure that it returns
NULL if its result would have been an empty string, so it is not
necessary to re-check this in setIconCallback, this leads to
more complicated code and can't be optimised by the compiler.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, if the function wScreenInit fails to properly
attach to the screen then the storage structure and content were not
released before returning.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, if the target width or height for the center ended
being <= 0 then the image created to contain the generated assemblage would
be leaked.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, if there's no window to unmap in a workspace, then
the array used to build the list of the windows to be unmapped for
workspace change would not be freed.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, if an invalid OPEN_MENU is used then the memory
allocated when parsing the line containing it would be leaked.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, if the word "WITH" was used in the content of the
root menu definition then its string would not be freed.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, the function 'ProgGetWMClass' always allocates the
strings returned in wm_class and wm_instance, so they always must be freed.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, a string could be left unfreed in the case where
the window's attribute dialog is closed before an icon would be actually
chosen from the Icon Chooser Dialog.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, a string could be left unfreed in the case where
the docked application's settings dialog is closed before an icon would be
actually chosen from the Icon Chooser Dialog.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, in this specific case the string previously stored
in 'file' was lost when replaced with the string from 'db_icon'. The logic
have been simplified to avoid the case.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, there was a memory leak when updating the shortcuts
in the menu for windows which occured when a shortcut was associated with
the window and this shortcut did not change.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As pointed by Coverity, there is a check to make sure a pointer is not NULL
but it is still dereferenced later in the function. As the code is done so
that this pointer cannot be NULL then it is not necessary to check that.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This patch adds "FrameFocusedBorderColor" option for theming,
It should allow having borders better matching titlebar colors.
By default it's set to black.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Since 'foo' and 'bar' are not being multiplied...
Done automatically with the sed script:
/^[a-zA-Z][a-zA-Z]*.*(/{
s/ \* \([a-zA-Z]\)/ *\1/g
}
Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
The original code did have a few weaknesses, including:
- possible buffer overflow, if the translation was too long;
- possible crash, if either instance or class is NULL but not both
Now the appropriate length is calculated (not counting on a margin) and the
string is generated with the available elements.
As a side note, the variable was renamed from 'tmp' to 'title' for clarity.
This was highlighted by cppcheck (thanks to David Maciejak) and by
Coverity (bug #50078).
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
moving scr initialization after WApplication existing test
to prevent crashing in case wapp is null
Acked-by: Christophe CURIS <christophe.curis@free.fr>
It is not necessary to call them when the command is not executable.
Took opportunity to change parameter to XSync which is supposed to be a
'Bool' type from Xlib, which means either True or False.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
A common feature in several desktop environments is the ability to bring up
a "run application" dialog via a keyboard shortcut (frequently Mod1+F2). This
feature has been available to Window Maker users only through the root menu.
This patch adds the ability for a user to set up a keyboard shortcut to
accomplish this, either via WPrefs or by editing ~/GNUstep/Defaults/WindowMaker,
e.g., with
RunKey = "Mod1+F2";
Code from the execCommand function in rootmenu.c has been copied almost directly
into the handleKeyPress function in misc.c to accomplish this.
The flags were stored as 'char' but it is more logical to use int which is
"the natural size for integer on the host" and may help future evolution
if new flags are added;
The array is created with an initial size consistent with the number of
element we feed it with in 'makeWindowFlagsArray', this avoids a bunch
of realloc;
Fixed the type conversion that was not right, as pointed by clang.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This patch is used to add support for syslog messaging implemented in
WINGs lib directly, so available from the lib itself and wmaker too.
I believe it will in a first time help to get some logging info
centralized in one point, and in a second time maybe add some info
level messages like wmaker is starting, stopping, restarting and else.
For now, it's built by default when the syslog support is found, maybe
we could also disable it by default.
This patch is replacing XRandR naming to RandR,
as XRandR is the name of the tool used in X11 and RandR
is the technology WMaker wants to support.
I had to update the info panel too, when many features are
activated not all of them can be displayed properly.
EWMH 1.3 added various window types: dropdown_menu, popup_menu, tooltip,
notification, combo, and dnd. We may as well set appropriate defaults if
these types get set on a window that isn't override-redirect.
I'm not terribly attached to these defaults, except that the ones for
'notification' are what I set manually for xfce4-notifyd before deciding
to patch wmaker.
While we don't provide compositing ourselves, add-on compositors such as
xcompmgr need us to copy the _NET_WM_WINDOW_OPACITY property from the
client window to the frame window.
We can do this easily enough.
This patch removes the unused code in screen.c.
The variable "dock_head", is defined, but not used. When we removes
the variable, then we can see that a lot of code is not used! so we
can remove it :-)
This patch also removes some extra curly brackets and join the variable
definition and the initialization in one line for some variables.