1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-21 05:18:06 +01:00
Commit Graph

2713 Commits

Author SHA1 Message Date
Rodolfo García Peñas (kix)
6bdc1318c1 Moving header functions to main.h
The functions of main.c should be included in main.h, not in funcs.h.
This patch adds the main.h file and moves the function prototypes to
this file.

The not needed "include funcs.h" are removed.
2012-06-24 12:32:36 +01:00
Rodolfo García Peñas (kix)
ebbc5c48ba XKeycodeToKeysym deprecated function
The function XKeycodeToKeysym is deprecated and should be replaced
by XkbKeycodeToKeysym.
2012-06-24 12:30:51 +01:00
Rodolfo García Peñas (kix)
da4e4128b3 rootmenu header file updated
The contents of the rootmenu.h file are not used and can be removed,
but the prototypes of rootmenu.c are in funcs.h and should be moved
to the correct (rootmenu.h) file.
2012-06-24 12:30:17 +01:00
Carlos R. Mafra
254c00ba6f Address 'may be used uninitialized' warnings
Making all in src
  CC     actions.o
actions.c: In function ‘wMaximizeWindow’:
actions.c:421:14: warning: ‘maximus_height’ may be used uninitialized in this function [-Wuninitialized]
actions.c:440:29: warning: ‘maximus_width’ may be used uninitialized in this function [-Wuninitialized]
actions.c:442:35: warning: ‘maximus_y’ may be used uninitialized in this function [-Wuninitialized]
actions.c:454:18: warning: ‘maximus_x’ may be used uninitialized in this function [-Wuninitialized]
  CCLD   wmaker

These warnings were harmless because they were at a point where
find_Maximus_geometry() had already been called. So let's simply initialize
them to zero to silence gcc.
2012-06-23 17:32:42 +01:00
Rodolfo García Peñas (kix)
a5eb4910e4 Remove code duplication in winmenu.c
There are some code duplication in winmenu.c. Two new functions,

- open_window_menu_core
- prepare_menu_position

Join the common code and then the duplicated code can be removed.
2012-06-23 14:39:20 +01:00
Carlos R. Mafra
b6ced4fa5d Address unprototyped call in dock.c
Create a header file dockedapp.h to address a long-standing warning
which pollutes the compilation output with --enable-silent-rules:

Making all in src
  CC     dock.o
dock.c: In function ‘wDockDetach’:
dock.c:2118:3: warning: call to function ‘DestroyDockAppSettingsPanel’ without a real prototype [-Wunprototyped-calls]
dock.c:65:13: note: ‘DestroyDockAppSettingsPanel’ was declared here
  CCLD   wmaker
2012-06-23 12:09:41 +01:00
Rodolfo García Peñas (kix)
0e671d3683 icon.c code cleanup 2012-06-23 11:26:33 +01:00
Rodolfo García Peñas (kix)
6110610f5e Cleanup superfluous.c a bit
The superfluous.[ch] files have a few minor issues, this patch addresses some of them:

- Move the defines to the top of the superfluous.c file
- Include the ifdef NORMAL_ICON_KABOOM inside the DoKaboom() function
  because the DoKaboom is used without the NORMAL_ICON_KABOOM ifdef in
  other files.
- Include the ifdef WINDOW_BIRTH_ZOOM inside the DoWindowBirth() function,
  therefore the function don't needs to be defined twice (with and whitout
  WINDOW_BIRTH_ZOOM define.
- Now the functions are defined in superfluous.h and the externs are not
  needed.
  - We need include the dock.h in the superflous.h because is used by the
    definition of MakeGhostDock().
  - We need include the superfluous.h in window.c (removing the extern)
2012-06-23 11:25:37 +01:00
Iain Patterson
cd7edbcc11 Correct window shading logic.
Fons Adriaensen reported that:

> WM's 'unshade' seems to use multiple Expose events [...] even when
> all animations and 'superfluous effects' are disabled.

Typo in shade_animate() could cause windows to be animated when the
no_animations preference was set. With this patch I see fewer
XMoveWindow() calls and quicker shading.
2012-06-22 17:26:02 +01:00
Carlos R. Mafra
f97b997f38 Skip no_appicon apps in the application icon list
We want to avoid having to consider the position of an appicon whose
application has no_appicon set. The appicon is not "painted" so it
does not appear on the screen. But if the appicon is still added to
the list of application icons, the wArrangeIcons() function gets
confused and ends up creating holes in the icon positions which
correspond to the no_appicon apps.

Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
2012-06-21 20:36:05 +01:00
Carlos R. Mafra
a1e80f5411 Unify save_appicon() and wAppIconSave()
Having two similarly named functions for doing the same thing is confusing.
In order to account for the extra check done by the late wAppIconSave(),
add an argument "dock".

Now there's only save_appicon().

And as pointed out by Rodolfo kix García, the save_appicon_core() function
can be removed too.

Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
2012-06-21 20:34:22 +01:00
Carlos R. Mafra
4700e5f0b2 Make create_appicon_from_dock() do only what its name implies
Function names are important and should not do more than their
names imply. In this case, create_appicon_from_dock() should only
try to get an icon from the dock (or clip).

If the icon is not there, do not try to make an icon from scratch.
You were told to create it from the dock!

Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
2012-06-21 20:32:31 +01:00
Alexey I. Froloff
2be53e92e6 WMPopFromArray(): avoid underflow
Signed-off-by: Alexey I. Froloff <raorn@raorn.name>
2012-06-20 14:02:39 +01:00
Rodolfo García Peñas (kix)
96800cdc16 app_icon_create_from_docks renamed to create_appicon_from_dock
The function app_icon_create_from_docks is renamed to create_appicon_from_dock
because the name reads better.
2012-06-19 00:12:40 +01:00
Alexey I. Froloff
d53b43608a wmmenugen: properly skip NoDispaly entries
Last group from a desktop file is always added to menu regardless of
NoDisplay property.  Properly handle the NoDisplay and Hidden properties
at the end of file.

Signed-off-by: Alexey I. Froloff <raorn@raorn.name>
2012-06-18 23:34:46 +01:00
Rodolfo García Peñas (kix)
def62293e9 New debian version 0.95.3-2
* Hardening
* Upload allowed for maintainers
2012-06-18 23:26:39 +01:00
Rodolfo García Peñas (kix)
089c99941f Icon painting moved to makeAppIconFor()
The icon painting is moved to the function makeAppIconFor()
including the check for no_appicon.

wAppIconCreate is now static because is only used in makeAppIconFor()
2012-06-18 23:25:34 +01:00
Rodolfo García Peñas (kix)
ee450acb30 Change a small comment in icon.c
The path of the CacheIcons is defined at CACHE_ICON_PATH. The path
~/GNUstep/Library/WindowMaker/CachedPixmaps can be changed in a future
and the comment is incorrect.
2012-06-18 23:22:22 +01:00
Rodolfo García Peñas (kix)
50765fab84 GetProgramNameForWindow removed
The function GetProgramNameForWindow is no longer used, so it can be removed.
2012-06-18 23:21:07 +01:00
Rodolfo García Peñas (kix)
fbd9c12cd0 Do static icon functions
The functions wApplicationSaveIconPathFor() and wApplicationExtractDirPackIcon()
are now used only in appicon.c and can be static.
2012-06-18 23:16:14 +01:00
Rodolfo García Peñas (kix)
e3b9026532 save_app_icon WWindow argument removed
The argument wwin (WWindow) is not used in save_app_icon, so it can
be removed.
2012-06-18 23:15:28 +01:00
Rodolfo García Peñas (kix)
1fbce07805 extractIcon removed.
The function extractIcon is removed, and its behaviour is moved to
save_app_icon, because this function is always called.

To do that, save_app_icon doesn't need to check if the icon is saved (it's
done at wIconStore). The icon now is saved always (if it doesn't exist),
like extractIcon() used to do.
2012-06-18 23:14:10 +01:00
Rodolfo García Peñas (kix)
bc0700e016 Create WAppIcon always
When the application is created, the WAppIcon now is created always,
but it is only painted if the flag is not set.

The icon initialization to NULL can be done now at app_icon_create_from_docks
because it is always called.
2012-06-18 22:58:55 +01:00
Rodolfo García Peñas (kix)
a08adcd283 app_icon_create_from_docks moved to appicon.c
The function app_icon_create_from_docks is moved to appicon.c, because
it is a function to create application icons.

The static function findDockIconFor is moved too because it is only used
at app_icon_create_from_docks().
2012-06-18 22:52:49 +01:00
Rodolfo García Peñas (kix)
f8158d047a wAppIconSave splitted
The function wAppIconSave is splitted in two functions:

wAppIconSave() + save_app_icon_core()

The function save_app_icon_core will be used in other functions as
common code.
2012-06-18 22:50:25 +01:00
Rodolfo García Peñas (kix)
de68ee6f1b wAppIconSave is now void
The Bool value is not used, therefore it suffices to return void.

wAppIconChangeImage is removed from appicon.h, because it is not implemented.
Small code cleanup for wAppIconCreateForDock at appicon.h.
2012-06-18 22:33:10 +01:00
Rodolfo García Peñas (kix)
f44944c18d Icon functions moved to appicon.c
The icon functions wApplicationExtractDirPackIcon() wApplicationSaveIconPathFor()
are moved to appicon.c from application.c.

This functions are Application Icon related and should be included in appicon.
2012-06-18 22:25:57 +01:00
Rodolfo García Peñas (kix)
7f022f1c8f Remove code duplication by calling get_name_for_instance_class()
The code in application.c to create the icon name is
included in icon.c (function get_name_for_instance_class).
2012-06-12 00:15:33 +01:00
Rodolfo García Peñas (kix)
cedf620543 New function get_name_for_instance_class
The function get_name_for_icon is renamed to get_name_for_wwin.

The previous contents of get_name_for_icon are now at the new
function get_name_for_instance_class.
2012-06-12 00:15:20 +01:00
Yuri Karaban
9d3d34599f Add "Center" window placement strategy
Center strategy: try to put window at the center of the usable area. If
window would overlap with existing windows, fall back to "Auto"
placement strategy.

It's very useful for fresh workplaces.
2012-06-10 18:25:47 +01:00
Rodolfo García Peñas (kix)
1a594de74e Remove code duplication by calling readGlobalDomain()
The code in defaults.c to get the shared database is
included in the same file (function readGlobalDomain).
2012-06-10 12:27:27 +01:00
Rodolfo García Peñas (kix)
f8291de919 Function get_name_for_icon splitted
The function get_name_for_icon returns now the name of the icon,
without the full icon path and without extension (.xpm). Now is
not static.

The full path, including the folder creation, is done now by
wmkdirhier() (WINGs). This function is much better, because
supports "infinite" folders, not like the old get_name_for_icon
which could only create the specific folder for Cache Icons.

Using this functions, wIconStore() do the same work, but in a better
way, more clear.
2012-06-10 00:30:14 +01:00
Rodolfo García Peñas (kix)
7ef416f8ac New functions in icon.c
This patch creates some functions:

1. Rename getnameforicon() to get_name_for_icon()
2. New function get_icon_cache_path, to get the icon cache folder
   ($HOME + GNUstep/Library/WindowMaker/CachedPixmaps). This folder
   is defined now in the preprocessor. Not used yet, in next commits.
3. New function get_wwindow_image_from_wmhints to read the image from
   X11 wmhints. Previous code at wIconStore() now changed.
2012-06-10 00:01:55 +01:00
Rodolfo García Peñas (kix)
c61e5bfeb8 Function wDefaultFillAttributes() rewritten
The function wDefaultFillAttributes can be changed a lot:

1. Initialitation to NULL: If the pointers are initialized to NULL
   then, the "if's" don't need the else block:

   WMPropList *value, *dw, *dc, *dn, *da;
   dw = dc = dn = da = NULL;

   if's:

   = if (instance)
   =     key2 = WMCreatePLString(instance);
   - else
   -     key2 = NULL;

2. Added StrConcatDot in the class + instance block:

   = if (class && instance) {
   +     buffer = StrConcatDot(instance, class);
   -     buffer = wmalloc(strlen(class) + strlen(instance) + 2);
   -     sprintf(buffer, "%s.%s", instance, class);

3. init_wdefaults(scr); moved above. This function is used only
   to load the default value "AnyWindow" (value "*"), to search
   the default value. Can be moved above without problems.

4. Preprocessor code of APPLY_VAL moved to the top of the file.

5. New function get_value_from_instanceclass() to do the rest of
   the (repetitive) code. This function is called to create the
   proplist, search the value, and return the proplist.

EXTRA:

1. Added StrConcatDot (like dot 2) in wDefaultChangeIcon()
2. Added a comment in get_value()
2012-06-09 16:48:58 +01:00
Rodolfo García Peñas (kix)
32fe186c54 WScreen argument removed in get_generic_value()
The argument "src" is removed in the function get_generic_value()
because it is not used.

The function wDefaultGetIconFile() is moved close to
wDefaultGetStartWorkspace() because both are similar.
2012-06-09 16:33:11 +01:00
Amadeusz Sławiński
910a851f35 Fix "implicit declaration of function" 2012-06-03 18:00:38 +01:00
Amadeusz Sławiński
fc5c0fe1a4 Add fill screen scale to wmsetbg
I noticed that I can have different background with wmmsetbg for each
desktop and wanted to use it, but it was missing option to fill the
screen with proportionally scaled image, so here it is.
2012-06-03 17:02:30 +01:00
Rodolfo García Peñas (kix)
21a5f41c08 New function create_logo_image
New function create_logo_image to set the logo image.
2012-06-02 20:58:58 +01:00
Carlos R. Mafra
202b9eadc5 Random coding style cleanup in winspector.c 2012-06-02 20:14:47 +01:00
Rodolfo García Peñas (kix)
e8074ae1cd Remove code duplication by calling removeAppIconFor()
The function removeAppIconFor() does exactly the same thing as the code inside
wApplicationDestroy(), including the last call to wArrangeIcons(). So let's
simply remove the code and call the function instead.
2012-06-02 20:05:14 +01:00
Rodolfo García Peñas (kix)
fbab31b798 Coding style cleanup in application.c
Changes to application.c:

- Curly brackets
- Code commented
- Include not used
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
dd6a54bba5 Check one time if no_appicon is set
This patch checks if the no_appicon flag is set, then, the icon
is not created, therefore cannot be painted neither saved.

Some comments added to clarify the code.
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
bd3fb21441 Remove code duplication by calling paint_app_icon()
The code in application.c to create+paint the application icon is
included in appicon.c (function paint_app_icon).
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
2e7b039558 Split makeAppIconFor()
The function makeAppIconFor is splitted in two:

makeAppIconFor: Create the new icon if needed
paint_app_icon: Paint the icon
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
cab8bbc495 Move makeAppIconFor() and removeAppIconFor()
The functions makeAppIconFor and removeAppIconFor are moved from
winspector.c to appicon.c, and now are not static.

The reason to move these functions is because are used to create
and remove app_icons, therefore should be included in this file.

Finally, this functions will be updated and splitted in next patches.
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
01ea1fa8b4 New function app_icon_create_from_docks
The new function app_icon_create_from_docks do all the needed stuff to create
the application app_icon using a previous image in docks.

The contents of the app_icon_create_from_docks were moved from the
wApplicationCreate function. Now this function is more clear.
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
1c1697dc40 New function save_app_icon
New function to save the icon "save_app_icon". This function is
created in appicon.c, because is related to app_icons. The contents
are from application.c. No important modifications are included in
this function. Removed the includes not needed.
2012-06-01 22:01:02 +01:00
Rodolfo García Peñas (kix)
423b78811a Initialize app_icon to null
The app_icon initialization to null is common in the if and else blocks.
2012-06-01 22:01:02 +01:00
Christophe CURIS
e498a8bd79 Fixed possible off-by-one loops
Due to variable size definitions in the structure, the 'for' loops may
actually try to work on wrong data. Instead of using hard-coded value,
we now simply let the compiler give us the number of elements.

This may (or may not) fix a crash reported by Rodolfo kix Garcia.
2012-05-31 23:13:07 +01:00
Iain Patterson
d356baebea Bugs with readMenu*().
readMenuPipe() was calling freeline() on stuff which might be uninitialised, causing
a crash if no valid input was read.

readMenuPipe() was trying to snprintf() on an uninitialised pointer.  We now use a
fixed-length buffer like the other readMenu*() functions.

Various memory leaks in readMenu*() functions have been fixed.  There
are still some lurking around but most have been removed.

The original report from Charles Philip Chan <cpchan@bell.net> on 22 May 2012 says
that:

"Window Maker crashes when I try to open a sub-menu auto-generated by using:
 xdg_menu --format WindowMaker --charset UTF-8"

There was also a report from Amadeusz Sławiński <amade@asmblr.net> on 24 May 2012
stating that wmaker crashes using:

% cat test.sh
cat << EOF
Test MENU
stuff EXEC true
Test END
EOF

% grep test GNUstep/Defaults/WMRootMenu
  ("Generated Submenu", OPEN_MENU, "|| /home/amade/test.sh")

Error is:
wmaker(MonitorLoop(monitor.c:134)): warning: Window Maker exited due to a crash (signal 11) and will be restarted.
2012-05-29 15:24:12 +01:00