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

2278 Commits

Author SHA1 Message Date
Rodolfo García Peñas (kix)
d6db53af0b Remove unused argument from wDefaultGetIconFile()
The function wDefaultGetIconFile() doesn't use the argument WScreen,
so it can be removed.
2012-07-04 20:44:40 +02:00
Rodolfo García Peñas (kix)
fd07a6bb36 Remove unused argument from init_wdefaults()
The function init_wdefaults() doesn't use the argument WScreen,
so it can be removed.
2012-07-04 20:42:40 +02:00
Iain Patterson
347d6f9fda Support _NET_FRAME_EXTENTS.
This patch adds support for the _NET_FRAME_EXTENTS property as
described in the EWMH spec.  With it I was able to use the compton
compositing manager to draw fully opaque windows with semi-transparent
titlebars and resizebars.

Set the _NET_FRAME_EXTENTS property based on border widths and
titlebar/resizebar heights.

The EWMH spec says:

"_NET_FRAME_EXTENTS, left, right, top, bottom, CARDINAL[4]/32

The Window Manager MUST set _NET_FRAME_EXTENTS to the extents of the
window's frame.  left, right, top and bottom are widths of the
respective borders added by the Window Manager."
2012-07-04 20:38:51 +02:00
Iain Patterson
81eefca4ef More (un)maximize tweaks.
Update the saved X co-ordinate of a window which was moved when
maximized (only) vertically so that unmaximizing the window restores
its dimensions without warping it back to its previous X position.
Similarly update the saved Y co-ordinate of a window which was
moved when maximized (only) horizontally.

Handle Maximus as a special case.  We remember the Maximusized X and Y
co-ordinates then adjust the restored co-ordinates relative to the
delta between the window's position just after Maximusizing and its
position just before restoring.  So for example if a window is
Maximusized, moved 100 pixels to the left and restored, it will end
up 100 pixels left of its original geometry.

Also fix "jumping window" bug reported by Christian Wittmer:

This "jumping window" happens only when you
1) open new xterm (STRG +n)
2) current position is (+64, +0)
3) maximize window vertically
4) undo maximizing
5) move window to the right or left (up or down as you like)
I moved right to (+450, +0)
6) maximize vertically again
7) and undo maximizing
8) window jumps back to (+64, ..) position

If you move a new opened window to a new position (e.g. +200, +200)
and then start with "3)". window is jumping back "+200, +200"
2012-06-26 16:56:20 +01:00
Rodolfo García Peñas (kix)
8edb9dad81 Remove unused stuff from session.h
The struct WSessionData is not used and the function wSessionGetStateFor
is only defined, remove them.
2012-06-26 10:49:05 +01:00
Rodolfo García Peñas (kix)
46183e8215 window.h: Remove unused variables from WWindow struct
The variables waiting_save_ack, dragged_while_fmaximized,
buttons_dont_fit, rebuild_texture and needs_full_repaint are not used,
so they can be removed.
2012-06-26 10:49:05 +01:00
Rodolfo García Peñas (kix)
c978b3fc2b Variables user_changed_* can be removed
The variables user_changed_ are set but their values are not checked/used
in the code, so they can be removed.
2012-06-26 10:49:05 +01:00
Rodolfo García Peñas (kix)
a13eb4e920 Remove never-set variable net_state_from_client
Even though net_state_from_client was never being set, it was
being tested inside a

	if (!wwin->flags.net_state_from_client)

which according to testing was always being true (probably because gcc
initializes it to zero). But this situation is confusing, so it's
better to remove the if() test altogether as that is the intention
if net_state_from_client is not explicitly set (which it isn't in
the current wmaker source).

This situation is analogous to:

[mafra@Pilar:c]$ cat init.c

int main(void)
{
	int a;

	if (!a)
		printf("No a = %d\n", a);
        return 0;
}
[mafra@Pilar:c]$ ./init
No a = 0
2012-06-26 10:38:53 +01:00
Rodolfo García Peñas (kix)
dd94b98b81 Remove unused variable wm_name_changed
wm_name_changed is not used and can be removed.
2012-06-25 23:56:59 +01:00
Rodolfo García Peñas (kix)
c815449e68 Remove unused wWindowCanReceiveFocus()
The function wWindowCanReceiveFocus() is not used, remove it.
2012-06-25 23:53:32 +01:00
Rodolfo García Peñas (kix)
fc9e453de2 Remove unused variables from WSessionData struct
The variables user_changed_width and user_changed_height are not used,
so they can be safely removed.
2012-06-25 23:50:59 +01:00
Rodolfo García Peñas (kix)
02feb72fdc New colormap header file and remove unused functions
The functions related to colormap are moved from funcs.h to the new
file colormap.h. These files are included where needed.

The functions wColormapInstallRoot and wColormapUninstallRoot are
removed, because they are not used.
2012-06-25 23:49:10 +01:00
Rodolfo García Peñas (kix)
42cb1291e3 New move_window function 2012-06-25 23:43:39 +01:00
Rodolfo García Peñas (kix)
7facc79c0c Add helper functions for appicon list management
New functions

static void add_to_appicon_list()
static void remove_from_appicon_list()

to add or remove appicons from the app_icon_list, making the code easier
to follow.
2012-06-25 23:35:50 +01:00
Carlos R. Mafra
5795bb5638 wmaker.inst: Remove test for LITE and KDE message
LITE was removed in fe736e849c ("Remove LITE config option"), but
the check for it in wmaker.inst was missed.

Furthermore, remove confusing message about wmaker being configured for KDE.
2012-06-24 23:07:39 +01:00
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