1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00
Commit Graph

2925 Commits

Author SHA1 Message Date
Christophe CURIS
f29fba2c83 InfoPanel: Added display of memory fragmentation information
This information is displayed only when debug mode was enabled to
avoid confusing users.
2013-05-10 15:48:33 +01:00
Christophe CURIS
c253c5a7c7 InfoPanel: Use a more user-friendly separator to display supported image formats 2013-05-10 15:48:33 +01:00
Christophe CURIS
441145cfc0 InfoPanel: Minor fixes for what must be translated and what does not need to 2013-05-10 15:48:33 +01:00
Rodolfo García Peñas (kix)
aa5be46e94 InfoPanel: Added info about XRandR in the info dialog
This patch includes info about XRandR extension in the info panel
dialog. If wmaker was compiled with xrandr support, then the dialog
show the XRandR info. The info includes if the X-Server supports or not
XRandR (wmaker could be compiled with XRandR support, but the X Server
may not include XRandR extension).

The string was separated in two by Christophe Curis to allow translation,
as suggested by Alexey I. Froloff.
2013-05-10 15:48:33 +01:00
Christophe CURIS
1a8316d4c9 WINGs: Updated NEWS file about the API changes in the libraries 2013-05-09 18:08:36 +01:00
Christophe CURIS
52b8aabccc WINGs: Fixed incorrect return type for internal function
The function did return a boolean actually as would be expectable
from such function, but its prototype did not use the proper type.
2013-05-09 18:08:12 +01:00
Christophe CURIS
05a3eadd65 WINGs: Fixed incorrect allocation size, missing room for '\0' 2013-05-09 18:08:12 +01:00
Christophe CURIS
a4395c5764 WPrefs.app: Added const attribute to local string
Now that the WINGs functions are const-correct, it is possible to
set the attribute on the strings to help the compiler.
2013-05-09 16:56:28 +01:00
Christophe CURIS
591dc5cd4d wrlib: Added 'const' attribute to local function in 'context' 2013-05-09 16:56:28 +01:00
Christophe CURIS
fb3d9e65a6 WINGs: Added 'static' attribute to local functions in wcolorpanel
These 4 functions are local to the file so we make this official.
2013-05-09 16:56:28 +01:00
Christophe CURIS
28e6bde782 WINGs: Added 'const' attribute to 'WMCreatePropListFromDescription'
To be able to do this in a clean way, it was necessary to add the
attribute also in PLData's ptr field, which is actually right
because none of the function changes its content.

The function that fills it from a file/pipe however needed small
changes to respect the const-ness of the field.
2013-05-09 16:56:28 +01:00
Christophe CURIS
75a0beffeb WINGs: Added 'const' attribute to functions in dragdestination, wtext
This makes both the API and local function const-correct on their
input parameters.
2013-05-09 16:56:28 +01:00
Christophe CURIS
72108875aa WINGs: Added 'const' attribute to functions in wpanel, wpopupbutton, wtabview
This makes both the API and local function const-correct on their
input parameters.
2013-05-09 16:56:28 +01:00
Christophe CURIS
6616323088 WINGs: Added 'const' attribute to functions in wballoon, wmenuitem, wmisc, wtextfield
This makes both the API and local function const-correct on their
input parameters.
2013-05-09 16:56:28 +01:00
Christophe CURIS
a1119f8dd3 WINGs: Added 'const' attribute to functions in wbrowser, wcolorpanel, wfilepanel and wfontpanel
This makes both the API and local function const-correct on their
input parameters.
2013-05-09 16:56:28 +01:00
Christophe CURIS
c89e8df33f WINGs: Added 'const' attribute to functions in wbutton, wframe, wlabel, wlist, wwindow
This makes both the API and local function const-correct on their
input parameters.
2013-05-09 16:56:28 +01:00
Christophe CURIS
e7c8ac76ea WINGs: Added 'const' attribute to functions in wapplication, wappresource, wcolor, wfont, wpixmap
This makes both the API and local function const-correct on their
input parameters.
2013-05-09 16:56:28 +01:00
Christophe CURIS
af403073f0 Fixed memory leak due to non-freed property list structure
The history is actually loaded from a file into a property list that
is then converted to an array. The intermediate property list was
not freed, which led to memory leak.

It looks like it was a tentative of optimisation to avoid duplicating
an already allocated string and re-use the pointer instead, but this
means it is not possible to free the original container as it would
free the string too.

There is a better way to do this, but it requires an API change on the
WUtil library so it is left for a future improvment.
2013-05-08 15:05:00 +01:00
Christophe CURIS
5a5216ffb9 Changed method to limit the number of History entries loaded
The previous code limited the number of entries that were read into
the history array, but the user is expecting a maximum on the
number of entries displayed. This can make a little difference in
two cases:
 - if there are duplicate entries (dups are checked for and removed)
 - if some entries are not strings (unlikely, but not impossible)

The new code just stops adding history entries when the user
specified count is reached.
2013-05-08 15:05:00 +01:00
Christophe CURIS
bcee010082 Added a few 'const' to filename parameters for History functions
Name of file is, as usual, a read-only parameter.
2013-05-08 15:05:00 +01:00
Christophe CURIS
ea19294b70 Fixed memory leak due to non-freed temporary PropList
When menus are read in the PropList format, they are loaded into a
temporary PropList object, which is parsed into the internal menu
structure, and the PropList object is no more used. There were two
cases where this temp object was not freed.
2013-05-08 15:05:00 +01:00
Christophe CURIS
0004d38ef8 WPrefs: Added const attribute to statically stored strings
Now that the function handling the configuration dictionnary are
const correct, the key stored in static array can be given the const
attribute.
2013-05-08 15:05:00 +01:00
Christophe CURIS
8517f3dcef WPrefs: Added the proper 'const' attribute to the dictionnary functions
A common argument to all these functions is the name of the key to
operate on, and this name is never modified by the functions. Marking
it as const reflects this, and can allow compiler to generate better
results thanks to this info.
2013-05-08 15:05:00 +01:00
Iain Patterson
022421e879 Documentation on the new switchpanel behaviour.
Describe Group*Key and StrictWindozeCycling in the NEWS file.
2013-05-08 14:57:23 +01:00
Christophe CURIS
9ab6368b33 WUtil: Increased version number for the library
The addition of the const attributes is actually an API change, so
we have to reflect this for the next official release.

Because the change on 'wusergnusteppath' may impact users of the API,
we won't only change REVISION like it was done for WRaster lib.
2013-05-04 16:25:44 +01:00
Christophe CURIS
033e3eaa54 WUtil: Rewrote 'wusergnusteppath' to be more efficient
The first optimisation is to compute only once the path, and then
always re-use the value which did not change anyway.
The second optimisation is to avoid a lot of excessive function
calls, including alloc+free that are not necessary and participate
in memory fragmentation.
2013-05-04 16:25:44 +01:00
Christophe CURIS
a18fd7cd69 Fixed const correctness in functions using 'wusergnusteppath'
The change introduced in previous commit for const correctness has
a small impact on WindowMaker's code, this patch fixes all the new
warnings.
2013-05-04 16:25:44 +01:00
Christophe CURIS
cd1c55d63c WUtil: Changed declaration of 'wusergnusteppath' to return a CONST string
According to the way its value is being used everywhere, that is
what would be expected, so let's make it official.

Please note that this may introduce warnings on user code using
this function ("...discard const...") but that's an opportunity
for them to check that their code is not doing anything wrong.
2013-05-04 16:25:44 +01:00
Christophe CURIS
fd02f5f083 WUtil: Fixed risky code for de-escaping of strings
The internal function 'unescapestr' is used to transform strings which
may contain escape sequences (\x) into their plain representation.

There are a few cases where the function can misbehave (typically parse
after the end of string, thus writing past the end of the reserved
result area) which can be a source of problem later. The new code
should be safer.
2013-05-04 16:25:44 +01:00
Christophe CURIS
f386e34d29 WUtil: Fixed wrong type recast
The previous syntax used an explicit cast to remove the CONST
attribute, but the right way is to keep the attribute and store
the result in a variable which is defined properly.
2013-05-04 16:25:44 +01:00
Christophe CURIS
32ecd4ee58 WUtil: Avoid unnecessary strdup + free
It is not good for memory fragmentation to duplicate a string and
then free the original; changed code to only keep originaly allocated
string.
2013-05-04 16:25:44 +01:00
Christophe CURIS
98e3c7e347 WUtil: Added comment about values returned by API functions
This is mainly to be consistent with what's done in the rest of
the file, but it is better to have it there that nowhere at all
anyway...
2013-05-04 16:25:44 +01:00
Christophe CURIS
74c17bffae WUtil: Added 'const' attribute to all remaining functions where applicable
This makes the WUtil API as much const-correct as possible for
the arguments being given to its functions.

This does not make it totally correct as it does not changes the
const-ness on returned values because the goal of this patch is
to make no visible change to existing program that would use this
library.
2013-05-04 16:16:19 +01:00
Christophe CURIS
d40fa69b92 WUtil: Added 'const' attribute to the filename on WM(Read|Write)PropList*
Note that the argument is also stored as-is in the PLData structure
but only for debugging purpose (warning display to user), hence the
choice to not duplicate it. As a side effect, it was 'const'-ified
too to reflect that.
2013-05-04 16:16:18 +01:00
Christophe CURIS
ea9d3e643f WUtil: Added 'const' attribute to parameters for file related API
As a side note, in 'wfindfileinlist' the first argument should be:
  const char * const *path_list

However, due to limited support for const in plain C, that would
introduce warnings in user code. For compatibility issues, this
was not implemented.
2013-05-04 16:16:18 +01:00
Christophe CURIS
bbf84eb0e8 WUtil: Added 'const' attribute on non-modified arguments to functions
A number of functions do not actually modify the strings given as
parameter, but only read or duplicate it. In this case it is a good
practice to mark that parameter as pointer-to-const to let the
compiler known about it, to be able to perform appropriate
optimisations.
2013-05-04 16:16:18 +01:00
Christophe CURIS
ac89706859 WRaster: Bugfix, added missing 'const' to RLoad* functions
Prototype of function changed in commit
  d1e1c13fa3
but two of them were not updated in the source.

Thanks to Rodolfo García Peñas for taking the time to test and report.
2013-05-03 08:17:26 +01:00
Christophe CURIS
602fbc9ee4 Added missing headers to the list of source files of the project
This is needed in order to have all the expected files in the
archive of sources when using:
  make dist
2013-05-03 07:16:10 +01:00
Christophe CURIS
9a895dcda5 Increased library's revision to reflect API updates
The addition of 'const' to parameters of library's functions is an
API change, although this will break neither the binary interface
nor the compilation of program using the library; the other changes
also have no impact on the compiled library object.
2013-05-02 20:48:45 +01:00
Christophe CURIS
9e4253f670 Added the last missing 'const' attributes to function parameters 2013-05-02 20:48:45 +01:00
Christophe CURIS
0bf6297a32 Added 'const' attribute on non-modified arguments for color handling functions
These functions have both an input and an output color, marked the
input color as const to help distinguish.
2013-05-02 20:48:45 +01:00
Christophe CURIS
8f7d4b7751 Added 'const' attribute on non-modified arguments for drawing functions
All these functions expects agruments like color or list-of-points
that should not be modified (and are not) by the function; added
the corresponding qualifier to reflect that.
2013-05-02 20:48:45 +01:00
Christophe CURIS
d1e1c13fa3 Added 'const' attribute to the file name parameter to load/save
This name is not modified by the callee functions (and it should
not be anyway), so let's make it official in the internal functions
2013-05-02 20:48:45 +01:00
Christophe CURIS
225c99a6ca Converted #define into an Enum for image format number
An enum is always a better idea as it allows the compiler to do
some checks, and as this info is internal only to the WRLib it
will not change the API.
2013-05-02 20:48:45 +01:00
Christophe CURIS
268ead4eca Moved the function to Save image also into the internal header 2013-05-02 20:48:45 +01:00
Christophe CURIS
883cda48e3 Moved declaration of format-specific image Load functions to dedicated header
The functions are declared in different files but they were called
in another file which re-declared the prototypes. This is dangerous
as it can lead to misaligned prototypes when functions changes.

They are now grouped in the library internal header 'imgformat.h'
2013-05-02 20:48:45 +01:00
Christophe CURIS
cacc04d4a2 Move the list of keyboard shortcut texts into the array of their config keyword
The config-file-keyword was defined in an array, but the user displayed
string was defined at another place, thus requiring special care when
modifying the list, to keep the same number of entries, in the same
order, ...

This was an open call for subtle bugs, so the keyword and user string
are now at a single place, making updates on the list easier and the
GUI generation code smaller.
2013-05-02 20:48:10 +01:00
Iain Patterson
94777b9715 Support for same-class cycling in open switchpanel.
If the switchpanel was opened with either FocusNextKey or FocusPrevKey
shortcut, and the user presses GroupNextKey or GroupPrevKey, skip over
windows of a different class when cycling through windows in the
switchpanel.

In the case where the switchpanel was opened with FocusNextKey or
FocusPrevKey initially, the check can be skipped because all the
available choices are necessarily of the same class already.
2013-05-02 20:41:07 +01:00
Iain Patterson
8cb6a78726 Correct check for modifier in class-specific cycle.
The hasModifier flag was set if the FocusNextKey or FocusPrevKey
shortcuts had modifiers, depending on which shortcut was used to open
the switchpanel.

The switchpanel can also be opened with the GroupNextKey or GroupPrevKey
shortcuts, so we should account for those when setting hasModifier.
2013-05-02 20:41:07 +01:00
Iain Patterson
6fb2b13ec7 Added sameWindowClass().
Avoid code duplication by moving check for windows of the same WM_CLASS
to the new function sameWindowClass().
2013-05-02 20:41:07 +01:00