1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-03-11 03:55:53 +01:00

116 Commits

Author SHA1 Message Date
Carlos R. Mafra
f55eef413f wmaker-0.94.0-crm
I am calling it -crm so that people won't confuse its non-official status.
2010-01-09 13:48:06 +01:00
Carlos R. Mafra
643e49f190 Remove [raise,lower]clip shortcut keys
The raising and lowering of the clip is already taken care of
by the "ClipRaiseLowerKey" shortcut.

wmaker gets a bit smaller for free:
   text    data     bss     dec     hex filename
 449483   17384    8208  475075   73fc3 src/.libs/wmaker.old
 449307   17256    8192  474755   73e83 src/.libs/wmaker.new
2010-01-09 13:47:57 +01:00
Carlos R. Mafra
8a2a0b6adc Remove ICON_KABOOM_EXTRA
I don't want it in the sources, and the "normal" icon kaboom
is good enough. And it was #undef'ined by default.
2010-01-07 15:38:41 +01:00
Carlos R. Mafra
0deb198b10 Remove a few unneeded includes 2010-01-07 15:33:41 +01:00
Brad Jorsch
b6689a0108 Keyboard shortcut to raise the dock
This patch adds the DockRaiseLowerKey shortcut, which raises/lowers
the dock depending on whether the dock is lowered/raised.

[crmafra: Reformatted Brad's patch against git repo and removed the
 DockRaiseKey and DockLowerKey shortcuts ]
2010-01-07 12:16:17 +01:00
Carlos R. Mafra
7ef8178d2a Undefine WINDOW_BIRTH_ZOOM
I don't want the (small) overhead of the window birth zoom special effects
because I like apps popping up instantly when I open them (specially now
with the SSD).

Another way to not get the birth animation is to unset "animations" in
WPrefs, but that makes the other animations which I care (ie they don't have
the effect of making my computer seem slower than it really is) go away.
2010-01-06 11:34:24 +01:00
Carlos R. Mafra
b3e817305d Do not compile extra stuff under wrlib/tests etc
Let's avoid compiling these "tests" and extra stuff every time,
saving us some time.
2010-01-06 11:34:24 +01:00
Carlos R. Mafra
a2133e8e2f Do not change workspace during deiconify animation
Paul Harris reported that using the mouse wheel over a miniwindow
would deiconify it to a different workspace than the original one
where it was iconified.

This happens because after the window begins to be deiconified the
"residual" mouse wheel scrolling hits the workspace background, and
Window Maker changes workspace with wWorkspaceRelativeChange().

But if it all happens fast enough (so the deiconification animation
did not finish yet) the workspace will have changed before the
window reaches its final deiconified destination, leading to
the situation that Paul described in the link below.

So to avoid this, let's set a 'ignore_wks_change' variable
from wDeiconifyWindow() and make wWorkspaceRelativeChange() respect it.

Original report: http://lists.windowmaker.info/dev/msg00821.html
2009-12-26 21:09:10 +01:00
Carlos R. Mafra
efa31f30b2 Remove unused function raiseMenus()
GCC warns:

rootmenu.c:350: warning: 'raiseMenus' defined but not used
2009-12-21 23:00:33 +01:00
Carlos R. Mafra
024e2f5299 Remove XSMP_ENABLED constructs
The code was never used and the !XSMP_ENABLED code seems to
work well enough for all these years.
2009-12-21 22:40:28 +01:00
Ralf Hoffmann
629b118767 fixed problem with default visual ID for multi-screen setups by using multiple IDs for each screen
Since a single default visual ID cannot be used for multiple screens, thus
Window Maker refused to start. There is now a global function for getting the
default visual ID. The command line argument --visual-id can be a comma
separated list of visual IDs for each screen. A default value is only set for
the first screen.
2009-12-11 16:36:25 +01:00
Nicolas Bonifas
d8ef209c9a Add menu path to Debian build system
Part of the menu on Debian systems is stored in
/etc/X11/Windowmaker/menu.hook. This patch will add this path to
src/wconfig.h.in when building the Debian wmaker package. This is
what is done in the Debian version of wmaker 0.92.0.
2009-12-10 13:51:26 +01:00
Carlos R. Mafra
2ba803ad98 Remove unused arguments from a few functions
gcc 4.4.1 was warning (among others):

switchpanel.c: In Funktion »getTile«:
switchpanel.c:321: Warnung: unbenutzter Parameter »panel«
switchpanel.c: In Funktion »makeWindowListArray«:
switchpanel.c:377: Warnung: unbenutzter Parameter »scr«
switchpanel.c:377: Warnung: unbenutzter Parameter »workspace«
2009-12-09 21:04:29 +01:00
Carlos R. Mafra
33c9e87692 Remove static function declaration from header file 2009-12-09 20:48:44 +01:00
Carlos R. Mafra
0a5febcada Remove unused function argument from randomPlaceWindow() 2009-12-09 20:35:13 +01:00
Nicolas Bonifas
41fdb79e28 Maximus: Take border into account
This patch fixes a minor bug in Maximus: the new window size didn't take the
 border into account. This bug was particularly visible with the
 "do not cover dock" option turned on.
2009-12-08 16:14:29 +01:00
Ralf Hoffmann
d74a90d1bf changed behavior when focusing new windows with autofocus enabled
New windows will only get focused if the mouse is on the same screen.
The code doesn't handle multiple heads but since it's just one screen
the function works as usual. Checking the head and assign the focus only
if the window is on the same head might be a good idea. Making the whole
stuff optional might be even better.
2009-12-08 16:14:29 +01:00
Ralf Hoffmann
fe8ab024af fixed wrong env setup when setting background
This patch fixes a problem with restarting Window Maker in multi-screen
environments. The code for setting the background by calling wmsetbg
changes the environment. In multi-screen setups the DISPLAY variable
becomes :0.0 instead of :0 (for example). The restarted Window Maker
process therefore only manages one screen.
2009-12-08 16:14:29 +01:00
Ralf Hoffmann
6c6e832c52 activate XGrabServer again
This patch fixes a small problem which only rarely occurs. If a
window is opened only for a very short time and closed right away, in
some circumstances the frame around it stays opened. It looks like
Window Maker doesn't get the destroy message. The XGrabServer call was
commented in the code so I activated it again which seems to prevent this
from happening. I think it actually make sense since the ungrab calls are
used anyway in the following code.
2009-12-08 16:14:29 +01:00
Carlos R. Mafra
13c2d523e2 Remove DRAWSTRING_PLUGIN reference from wconfig.h.in
DRAWSTRING_PLUGIN never appears anywhere else in the sources.
2009-12-08 16:14:29 +01:00
Carlos R. Mafra
e7cc15df71 Remove unused function getRImages()
Pointed out by Nicolas Bonifas.
2009-12-06 15:35:26 +01:00
Carlos R. Mafra
3db3f179d1 Remove unused src/menureader.c file 2009-12-06 15:35:26 +01:00
Carlos R. Mafra
5fa41941fe Remove unused wHackedUngrabButton()
Pointed out by Nicolas Bonifas.
2009-12-06 15:35:25 +01:00
Carlos R. Mafra
4c4d50c813 Remove unused function wIconSetHighlited()
There is no point in carrying unused functions for so long.

Pointed out by Nicolas Bonifas.
2009-12-06 15:35:25 +01:00
Carlos R. Mafra
8c5a7b287a Remove unused functions from src/pixmap.c
In case someone needs them in the future for some reason,
they can be restored from the git logs.

Pointed out by Nicolas Bonifas.
2009-12-06 15:35:25 +01:00
Carlos R. Mafra
347fbcc87a Remove unused function wWindowCheckAttributeSanity()
As pointed out by Nicolas Bonifas, wWindowCheckAttributeSanity() is
currently unused. Removing it saves 200 bytes:

  text    data     bss     dec     hex filename
  23476       0       8   23484    5bbc src/window.o.new
  23676       0       8   23684    5c84 src/window.o.old
2009-12-06 15:35:25 +01:00
Nicolas Bonifas
a2cb317f11 Remove useless NULL test
If menu is NULL we would have a null pointer dereference when initializing scr.

> Ie, why not move the assignment of 'src' to after the test?

I thought about this, but I checked the 3 different calls to
updateWorkspaceMenu (all in winmenu.c). They must all call
updateWorkspaceMenu with non-NULL pointers, so if we have a NULL
'menu' pointer then we obviously have a major problem and it is
probably better to crash here than to silently return and fail a
little latter.

[crmafra: edit changelog]
2009-12-06 15:32:30 +01:00
Nicolas Bonifas
391d5de79e 2 open() statements were not matched with close() statements in function fetchFile 2009-12-06 13:58:24 +01:00
Carlos R. Mafra
ad4358c605 Update German translation
Based on a patch from OpenSUSE whose author is unknown.
2009-12-01 14:17:50 +01:00
Nicolas Bonifas
2203b229b0 Fix the empty button in titlebar after going fullscreen bug (Debian bug #298873) 2009-11-17 01:42:15 +01:00
Carlos R. Mafra
4932433b95 Remove DEMATERIALIZE_ICON code
This animation is not as cool as the NORMAL_ICON_KABOON, so I don't
think having a choice here is justified. Let's remove this option
(it was not defined in wconfig.h.in by default) and keep using
the nicer NORMAL_ICON_KABOON.
2009-10-17 01:56:28 +02:00
Carlos R. Mafra
f9792a042a Remove SILLYNESS
This code makes wmaker a little bit bigger for no gain at all. I could
undefine SILLYNESS and forget it, but I actually also want a clean
source code to read. And the less code the better.

So now I won't get a different Info dialog on Christmas, but
my wmaker will also not carry around that code in the other 364 days
of the year.

As a result, wmaker gets ~1.7 % smaller

   text	   data	    bss	    dec	    hex	filename
 448043	  17424	   8200	 473667	  73a43	wmaker.new
 455340	  18360	   8328	 482028	  75aec	wmaker.old
2009-10-17 01:38:53 +02:00
Carlos R. Mafra
96b9b22cb2 Remove #ifdef SYS_SIGLIST_DECLARED constructs
SYS_SIGLIST_DECLARED was defined nowhere and it was
clearly some dead code.
2009-10-17 01:05:28 +02:00
Johann Haarhoff
1f1eb393f8 Mod+Wheel resize increment now respects size hints
Thanks to Iains patch which showed me how to access the window hints, I
now propose the following: The resize increment is set to the closest
multiple of the size hints larger than wPreferences.resize_increment.

This should fix Carlos' complaint about fixed-increment windows resizing
too "slowly", and it also fixes my complaint about the blank space below
the last line of an xterm.

Thanks to:
    Iain Patterson <wm@iain.cx>
2009-10-13 12:17:57 +02:00
Iain Patterson
bf88570a5f Respect size hints when resizing with wheel.
Use height and width increment when wheel resizing if size hints are
set on a window and meaningful height and width increments are
specified.
Windows which don't care about their resize increments will have height
and width increments set to 1.  For these windows - and windows without
resize hints at all - use the setting configured with ResizeIncrement.
2009-10-12 15:24:13 +02:00
Carlos R. Mafra
a3246cfe3b Remove remaining sound stuff from WPrefs etc
Let's remove the configuration options about "sound" from
WPrefs (as it was never fully functionall anyway) and from
configuration files.

Remove also the xpm and tiff icons.
2009-10-12 03:02:24 +02:00
Carlos R. Mafra
c5f027d811 WPrefs: trivial coding style fixes 2009-10-12 02:41:27 +02:00
Carlos R. Mafra
af8cec15e3 Remove repeated functions enclosed by #if 0
There are already working versions of these functions,
so let's remove these copies.
2009-10-12 01:02:19 +02:00
Carlos R. Mafra
15e37ff942 Remove #ifdef NETWM_HINTS constructs
NETWM_HINT is always defined in src/wconfig.h.in, so
let's remove it from there too.
2009-10-12 01:00:19 +02:00
Carlos R. Mafra
347e804bb6 A few trivial code style cleanups 2009-10-11 23:30:41 +02:00
Johann Haarhoff
a063338175 Mod+Wheel Window Resize
This patch adds the ability to resize windows with the mouse wheel
while holding the Mod key. This currently ignores wWindowConstrainSize
until I can figure out a way to repeatably resize windows with
fixed size increments (like xterm) using this method.

This also adds a slider to WPrefs to choose the increment with which
the wheel will resize a window.
2009-10-11 22:17:54 +02:00
Carlos R. Mafra
781b663341 HOWTO: The perfect Window Maker patch
This document is a very brief description about how you can
create a patch "the git way", so that it can be applied
easily with 'git am'.
2009-10-11 17:37:18 +02:00
Carlos R. Mafra
09140a82b9 Increase granularity of 'shrink/zoom' animation
Now it is a bit easier to actually enjoy the animation :-)
2009-10-10 19:55:57 +02:00
Carlos R. Mafra
87161c5e0c Remove MINIATURIZE_ANIMATION_DELAY_{Z,F,T} tests
We know that they are non-zero because we set their
values explicitly in wconfig.h.in, so there is no
point in checking them.
2009-10-10 19:30:04 +02:00
Carlos R. Mafra
cda27758bc Add function prototypes in action.h and include it in superfluous.c 2009-10-10 19:29:56 +02:00
Carlos R. Mafra
b014ef2770 Remove 'hiding' parameter from animateResize()
It was a bit pointless.
2009-10-10 19:03:12 +02:00
Carlos R. Mafra
e9309e1e39 Delete WINDOW_BIRTH_ZOOM and default to WINDOW_BIRTH_ZOOM2
WINDOW_BIRTH_ZOOM was a bit lame and it makes sense to not have
it at all. So remove the trailing "2" of WINDOW_BIRTH_ZOOM2 and
make it the only choice (you can #define it in src/wconfig.h.in).

Note that it uses the same algorithm as the animation to resize,
ie zoom, twist or flip. You can choose them in WPrefs.
2009-10-10 18:27:52 +02:00
Carlos R. Mafra
06d3360224 Remove 'ghost window move' code
GHOST_WINDOW_MOVE was not defined anywhere. Let's remove that
code.
2009-10-10 00:05:58 +02:00
Carlos R. Mafra
9d6728d3e7 Remove SPEAKER_SOUND dead code
SPEAKER_SOUND is defined nowhere, so this code was not being used
and I don't want its functionality anyway.
2009-10-09 23:59:37 +02:00
Carlos R. Mafra
2765bec3e4 Remove sound support
Two reasons for removing it:

    1) I won't ever want to hear useless sounds

    2) The sound support is a bit of a joke. The code is there but you have
       to hunt it somewhere else (not in any repository that I know of).
       In my 10 years of using wmaker, I never used it for this reason.
       Now I consider having no sound in Window Maker a feature, and I like
       it that way. So there is no point in carrying useless code around.

PS: There is still the code in WPrefs to be removed.
2009-10-09 20:04:47 +02:00
Carlos R. Mafra
7df49cce14 Clean up contrib/ folder
Let's remove the "single click" patch from there.
2009-09-24 23:53:03 +02:00
John H. Robinson, IV
21eb8456ba Updated documentation
Updated URIs
Removed stale/outdated information
Reformatted for 80 columns
2009-09-24 23:41:36 +02:00
Iain Patterson
bc3995bf6b Fix msgfmt error with Armenian translation.
msgfmt said:

hy.po:685: `msgid' and `msgstr' entries do not both end with '\n'

Fixed by adding newline as in original text.
2009-09-24 23:41:10 +02:00
Norayr Chilignaryan
7f457fa275 Window Maker armenian translation 2009-09-24 23:40:46 +02:00
Carlos R. Mafra
484bdbe7d4 Ansify function declarations
I've just noticed them en passant.
2009-09-24 23:40:39 +02:00
Martin Dietze
ef2f5a6f29 Fix automatic Debian builds 2009-09-24 10:13:44 +02:00
Carlos R. Mafra
12b6be768e swpanel: Fix focus issue when alt-tabbing
The problem was the following. While alt-tabbing from one
window to a xterm, wait for the xterm to be raised but
keep the alt key pressed. Now move the mouse cursor
over the xterm and release the alt key.

The result is a xterm in a zoombie focused state; its titlebar
has the focused color but xterm itself is not focused and does
not accept any input.

Fix this by reinstating the check for a NULL pointer from
wSwitchPanelHandleEvent() before changing focus. That function
detects if the mouse cursor moved over to the same window which
is currently being pointed out by the switchpanel, and returns
NULL in this case (the check for panel->current != focus fails).

Thanks to Paul Harris for reporting it!
2009-09-19 16:07:47 +02:00
Carlos R. Mafra
6a0120f014 Maximus: Some cleanups and bug fixes
Let's ignore hidden windows and also adjust the coordinates
a bit, to avoid ~2 pixels of overlap.

I thank Paul Harris for pointing out these bugs.
2009-09-19 16:07:03 +02:00
Carlos R. Mafra
0a0c2391de Maximus: Avoid a window list order issue
If we compute the maximus geometry in only one pass through
the window list, the order in which the windows appear in
the list can affect the outcome.

That is because before computing the intersections in the
y-projections we update the y coordinates from whatever window
which happened to change the new_y coordinate during the
previous x-intersection computations, but that may not be _the_
blocking window which decides the final positions in the y axis.
Therefore we may find that this "intermediate window state"
has a non-vanishing y-intersection with another one -- and
be blocked by it -- even though that should not be the case for
the final outcome.

So to avoid that we first scan through all the windows to decide
the final maximumized coordinates in the y axis. Only after that we
compute the x-coordinates.
2009-09-19 16:06:48 +02:00
Carlos R. Mafra
7a86f48f73 Fix --disable-verbose-compile
Remove an extra $(QUIET), as that was causing a few annoying
messages during the compilation of libraries.
2009-09-19 16:06:18 +02:00
Alexey Voinov
3953f53680 WINGs shared library generation
This patch modifies the linking of the WINGs libraries
to create a shared library. wmaker used to do this, but
it was dropped around wmaker-0.90/0.91.
The shared .so library is needed when compiling and running
the wdm display manager and any other programs which link
to libWINGs.

Submitted by: Gilbert Ashley
Origin: ALT/Sisyphus Linux
2009-09-19 16:06:05 +02:00
Carlos R. Mafra
92eff967a7 Maximus: Consider the full_maximize window attribute
When maximumizing a window which has the full_maximize attribute
set we have to consider two possibilities:

    1. If the new y coordinate is zero it means that no other
       window blocked its maximumization up to the top of the
       screen, so we want to put the titlebar outside.

    2. If the new y coordinate is not zero it means that another
       window in the current workspace blocked its way to y = 0.
       In this case we do nothing with the titlebar.

Note that there is another possible fine tunning which is not
addressed in this patch, which is to consider the resize bar.
2009-09-17 00:46:14 +02:00
Carlos R. Mafra
eaca92db50 Simplify wMaximizeWindow() a little bit
Let's avoid checking the existence of a border every time
we want to adjust the widths. So we'll always subtract the correction
factor, which is zero in case the window has no border.
2009-09-17 00:46:14 +02:00
Carlos R. Mafra
1a85719971 Increase the readability of SlideWindow()
It is easier to read the computations if the variables
have shorter names. At the same time it avoids reading
the struct array elements repeatedly, so as a bonus
misc.o gets 64 bytes (0.5%) smaller

[mafra@Pilar:wmaker.git]$ size src/misc.o.*
   text    data     bss     dec     hex filename
  11125       0    4104   15229    3b7d src/misc.o.new
  11189       0    4104   15293    3bbd src/misc.o.old
2009-09-17 00:44:36 +02:00
Alexey I. Froloff
5979162878 Fix race condition during workspace changes
When changing workspaces, after focusing new window, wmaker handles all
pending events.  If it receives another change-workspace combination,
you may end up with a workspace without any focused window.

Ctrf-F1 and Ctrl-F2 used to switch to 1st and 2nd workspaces.
Hold Ctrl and press F1 and F2 almost at the same time.

This patch ignores all change-workspace commands while workspace
change is in progress.

See also https://bugzilla.altlinux.org/show_bug.cgi?id=7230

[crmafra: Thanks to Alexey I. Froloff for the above explanation]
2009-09-15 20:14:55 +02:00
Carlos R. Mafra
306165775e Yet another trivial coding style cleanup 2009-09-15 20:06:04 +02:00
Carlos R. Mafra
c7f2a189c4 Fix the call to XChangeProperty() in 64-bit mode
The man page of XChangeProperty() says:

  "If the specified format is 32, the property data must be a
   long array."

And as we call it with format 32, the type of 'data' must
be 'long'. It happens to work nowadays in 32-bit architectures
because sizeof(CARD32) = sizeof(long), but that is no longer
true in 64-bit mode.

This patch was downloaded from
www.openbsd.org/cgi-bin/cvsweb/ports/x11/windowmaker/patches/patch-WINGs_wwindow_c
and I thank Alexey I. Frolov and Vladimir Nadvornik for helping me
to understand it on a wmaker-dev thread.
2009-09-15 12:52:14 +02:00
Carlos R. Mafra
ca2c1f900d Trivial coding style fix 2009-09-15 01:52:35 +02:00
Iain Patterson
18408fff93 Mac OS X-style window cycling.
For those not familiar with the way Macs cycle windows, the Command-Tab
sequence (Alt-Tab elsewhere) switches between DIFFERENT application windows
and Command-Grave (key above tab) switches between windows owned by the
SAME application as is currently focused.  So if you had three Safari and
two Finder windows open, and Safari had focus, Command-Tab would switch to
Finder; Command-Tab would switch back to Safari; Command-Grave would switch
to a different Safari window etc.

This patch implements "something like" the above by only populating the
switchpanel with windows matching the currently-focused WWindow's wm_class
when the new cycling mode is activated.  In practice this means you can
switch to The Next XTerm or The Next Firefox Window using this method.

The configuration names for these new shortcuts are GroupNext and
GroupPrev.  The patch tells WPrefs.app about them.  Of course switching to
The Next Window is still possible with the (unchanged) FocusNext and
FocusPrev keys.
2009-09-14 16:51:26 +02:00
Iain Patterson
5c46f48898 Support Xinerama in wmsetbg.
Allow wmsetbg to revert to pre-0.90.0 behaviour when choosing a
background image that is large enough to span several heads in a
Xinerama setup.  If the -X flag is passed to wmsetbg, the background
image will be stretched to fill the logical screen (as it would be by
default in older versions of wmsetbg) instead of being tiled across
screens.
2009-09-14 16:51:26 +02:00
Iain Patterson
567279b962 Pad workspace name display.
Shift the workspace name, shown when switching workspaces, by 32
pixels.  This is purely for aesthetic reasons.  It just looks better
(IMO) than having the name flush against the screen edge.
2009-09-14 16:51:26 +02:00
Iain Patterson
1a27b34160 Constrain switching workspace name to one head.
When switching workspaces, force the name to be shown entirely within
one head of a Xinerama display. Previously the name would span heads if
set to TOP, CENTER or BOTTOM alignment, and was hence hard to read when
the display comprised an even number of heads.
2009-09-14 16:51:26 +02:00
Carlos R. Mafra
9789cf3154 Add Maximus key back in WPrefs.app
Somehow I had forgotten to include this change in version 2
of the patch.
2009-09-14 16:51:26 +02:00
Carlos R. Mafra
513a509096 Fix the use of uinptr_t
Remove the additional cast to (int), as that makes no sense.
2009-09-14 16:51:26 +02:00
Alexey Voinov
f6645ac564 x86_64 mmx fixes
This patch combines two small patches which fix issues with x86_64 and mmx in
the configure script.

Submitted by: Gilbert Ashley
Author: unknown?
Origin: ALT/Sisyphus Linux, Alexey Voinov <voins@altlinux.ru>
2009-09-14 02:09:35 +02:00
Nicolas Bonifas
cf0f7d68d5 Un-maximize window inside current head
If the old_geometry coordinates were saved while the window
was in another xinerama head, use current coordinates as
the old ones to avoid making the window jump heads when
un-maximizing it.
2009-09-13 23:33:39 +02:00
Nicolas Bonifas
3106292f4b Maximus: Use unsigned int for width/height variables
And move its prototype to actions.h (and also that of
save_old_geometry()).
2009-09-13 23:32:15 +02:00
Nicolas Bonifas
e42586c712 Remove commented code in xinerama.c 2009-09-13 23:32:09 +02:00
Tamas TEVESZ
0a47a19b3e Remove bundled wrlib stuff
This patch removes bits and pieces of xmu that for some reason
have been bundled with wmaker. I can very well imagine that at the time
they were bundled, xmu was not, was not available everywhere, or
whatever.

I couldn't come across a system that doesn't have these things in its
system-supplied x libs, though i've been carrying this since january,
and my memory is quite flakey at times.

certainly nothing xorg is at danger, nor xfree86 dating back to at
least 3.3. i believe this stuff should be everywhere that calls itself
to be on par with x11r6.3 at the very least.

it would be incredibly useful if people having access to commercial
unixes could check this on things released in the past, say, 15 years.
i believe back then i had solaris 8+and sco openserver 5+ covered.
2009-09-13 21:40:47 +02:00
Nicolas Bonifas
e4fcd515fe Maximizing a resized window
When a maximized window is resized (either using wmaker or because the
application changed the window size), and you want to maximize it again,
you first have to unmaximize it (because wmaker thinks the window is still
maximized), and only then you can maximize it. The following patch
corrects this behaviour.
2009-09-13 19:17:59 +02:00
Carlos R. Mafra
4bce3e3805 Make left/right maximization work again
The patch "Clean up maximization and un-maximization logic" introduced
a regression wrt to the left/half maximization feature, due to a C
operator order precedence issue.
2009-09-13 18:32:43 +02:00
Carlos R. Mafra
cbd13dd95f Ansify function declaration 2009-09-13 16:07:54 +02:00
Carlos R. Mafra
18c7a20136 Delete stale .cvsignore files 2009-09-13 12:59:25 +02:00
BERTRAND Joel
816fee1b68 Fix miniwindows auto-arranging bug
With this patch, minimized windows do not reshuffle anymore.

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=361241
where Martin Hinsch reported:

"The behaviour of icons (minimized applications) is severely broken when
 automatic placement is switched on.
  * When switching the workspace icons often stick thereby covering (and
    hiding) icons on the workspace one is switching to.
  * After minimizing an application, clicking (singly or doubly) on one of
    the icons causes all of them to reshuffle, usually in a way that the
    icon in question changes its place (which is extremely annoying).
  * Icon placement ignores the dock so that icons disappear behind
    it/cover it.

 All of these suddenly appeared about a year ago (I think with 91.0). The
 problems are not architecture-specific since they occur in exactly the
 same way on my pentium machine. Wiping the complete configuration (rm -r
 ~/GNUstep) did not make a change either."
2009-09-11 10:24:54 +02:00
Andreas Tscharner
5b93254d0f Fix compilation failure
This fixes a compilation failure with gcc-4.3.4, where it complains

nxpm.c: In function RGetImageFromXPMData:
nxpm.c:99: error: expected expression before ] token
...
2009-09-09 22:18:34 +02:00
Alexey Voinov
62bf6d17b5 Fix session saving for apps with shared appicons
This patch comes from
http://git.altlinux.org/people/raorn/packages/WindowMaker.git
2009-09-06 17:12:24 +02:00
Carlos R. Mafra
8efc490361 Reduce the number of simultaneous inotify events
There is no point in having a buffer capable of 512 simultaneous events,
as it will typically be only 1. But increase the value for the length
of the path + filename to 64 (which is a reasonable size for a
typical /home/something/GNUstep/Defaults/WMRootmenu filename).
2009-09-04 15:02:00 +02:00
Alexey Voinov
5f5b1df7d2 Christmas does not last forever
From https://bugzilla.altlinux.org/show_bug.cgi?id=3480

  "If you open "Info Panel" on 25 dec (Christmas), the
   "Christmas tree" is shown. And after that on all days
    Christmas tree is shown. (Until you restart WM, i think)"

Taken from http://git.altlinux.org/people/raorn/packages/WindowMaker.git
2009-09-03 23:56:33 +02:00
Carlos R. Mafra
88ab8b74b4 wmrlib: Avoid code duplication
We can put common repeated code into a helper function, and
increase readability a bit.
2009-09-03 23:56:33 +02:00
Alexey I. Froloff
2ccc8e4a79 Remove alloca(3)
And use malloc() instead.

See "Dropped useless use of alloca(3)" from
http://git.altlinux.org/people/raorn/packages/WindowMaker.git
2009-09-03 21:10:48 +02:00
Alexey I. Froloff
8490e31fde Atomic save for session
This patch is part of "Atomic saves for history and session" from
http://git.altlinux.org/people/raorn/packages/WindowMaker.git
2009-09-03 20:20:12 +02:00
Alexey Voinov
05720d9707 Add history to some dialog boxes
This patch adds history to some dialog boxes. To use it replace %a with
%A in menu file (like in "Run..." menu item). You can specify third
parameter to %A to use different histories for differen dialogs.

All history files is kept in ~/GNUstep/.AppInfo/WindowMaker/ and the number of
history lines controlled by DialogHistoryLines parameter (one for
all dialogs) defaults to 500 lines.

It also adds Tab completion.

Origin: ALT/Sisyphus Linux, Alexey Voinov <voins@altlinux.ru>
2009-09-03 15:44:11 +02:00
Sebastien Bauer
f8dd3dc49e Add option to allow starting DockApps with a single click
This patch is from the contrib directory. It adds an option to allow starting
DockApps with a single click. It's a handy option that adds only a few lines to
the code.

It is a good feature patch example because it includes modifications
to the WPrefs application so that the feature can be easily enabled or
disabled. The one-click ability allows wmaker to integrate more seemlessly with
programs like ROX-Filer which can be configured to use single or double click
actions.

The README in the contrib/ directory says,

author:
Sebastien Bauer <seb_bauer@bigfoot.com>
John Morrissey <jwm@horde.net>

updated for Window Maker 0.65.0 by:
Daniel Richard G. <skunk@graphics.lcs.mit.edu>

updated for Window Maker 0.80.2 by:
Martial Daumas <martial@nasgaia.org>

update for 0.80.2+ by:
steve lion <steve.lion@verizon.net> and vlaad
2009-09-03 15:19:10 +02:00
Carlos R. Mafra
c04a2caeab Clean up maximization and un-maximization logic
We should not try to un-maximize the windows from inside
the function wMaximizeWindow(), as that makes no sense.

If the window is already maximized then we don't call
wMaximizeWindow() anymore and call wUnmaximizeWindow()
instead, which will use the old geometry regardless
of which maximization is active (horizontal, vertical,
maximus, etc). And the old geometry now is also saved
when we enter wMaximizeWindow().

So when we call wMaximizeWindow() or wUnmaximizeWindow()
we really mean "maximize to the specified state" or
"go back to whatever old geometry coordinates we had before".
2009-09-02 04:42:19 +02:00
Carlos R. Mafra
cf62d1591f Maximus: Tiled Maximization
This patch introduces the "tiled maximization" feature, a.k.a. Maximus.

By pressing the keyboard shortcut associated with Maximus, the focused
window will be maximized to the greatest area satisfying the constraint
of not overlapping existing windows.
2009-09-02 04:42:05 +02:00
Daniel Déchelotte
7857f297ea Fix for omnipresent AppIcon bug at startup
Bug overview: right after start up, omnipresent AppIcons (living in the Clip)
    are displayed but non-functionnal.

    How to reproduce it: place two AppIcons in the Clip, make the first one (A)
    omnipresent and leave the second one (B) as is. Make the Clip "autocollapse".
    Switch to the second workspace and restart wmaker. Wmaker starts in the first
    workspace; the Clip is closed (its text color corresponds to the closed state,
    AppIcon B is not shown). However, AppIcon A is displayed.  Moreover, A does
    not react when the Clip expands or collapses.  Finally, a click on A makes it
    disappear. Fortunately, changing to another workspace fixes the problem
    definitively.

    Explanation and correction: internally, wmaker maintains as many clips as
    workspaces. When the user switches to another workspace, the omnipresent
    AppIcons are moved to the new "current" clip. In the situation above (trying
    to reproduce the bug), when wmaker restarts, the omnipresent AppIcons are
    restored in the second workspace, whereas the first workspace is active. In
    the previous code, a "hack" (calling XMapWindow()) unconditionally displayed
    the omnipresent AppIcons. The proposed patch makes sure the omnipresent
    AppIcons are moved to the first workspace on wmaker startup.
2009-09-02 00:17:27 +02:00
Tamas TEVESZ
b37e065252 Clean up #ifdef mess
Use enum instead of #ifdef maze for enumerating keybindings
2009-09-01 14:31:08 +02:00
Daniel Déchelotte
d7183d33b4 Gobble "spurious" EnterNotify events when moving an appIcon or a dock
This is a bug fix. Bug overview: if an AppIcon is moved rapidly over a Clip
    set to auto-expand, the latter may erroneously auto-expand afterwards.

    How to reproduce it: set a Clip to auto-collapse, and make sure it contains a
    (random) AppIcon, so as to easily visualise its open/close state. Now move
    rapidly an AppIcon over the Clip. Try to move it so fast that the cursor
    sometimes is out of the AppIcon's tile. Then, replace the AppIcon out of the
    Clip.

    Explanation and correction: if, while the AppIcon was being moved, the mouse
    cursor entered at least once in the Clip's tile, the latter is going to
    receive an EnterNotify event (after the AppIcon is replaced) and thus expand
    automatically after the relevant delay. The solution is to simply "gobble"
    (i.e., ignore) all EnterNotify events when moving an AppIcon.
2009-09-01 14:12:55 +02:00
klaasvakie
2ed9c12ee5 Fix half_scr_width calculation
Moved the half_scr_width calculation to after the

usableArea = wGetUsableAreaForHead(scr, head, &totalArea, True);

call. This fixes the problem where windows that get "half screen
maximized" cover the dock or clip.
2009-09-01 13:57:58 +02:00
Carlos R. Mafra
229b6984de Use half_scr_width instead of computing it each time
Let's use

    half_scr_width = (usableArea.x2 - usableArea.x1)/2;

to shorten the expressions in the left/right half maximize
code.
2009-08-30 16:28:23 +02:00
Carlos R. Mafra
a1f35d7f5b Increase the readability of wUnshadeWindow() and wShadeWindow() a little bit
Instead of open coding the animation routines in the function bodies,
put them in a helper function called shade_animate(wwin, what), whose
second argument can be SHADE or UNSHADE.
2009-08-30 00:58:18 +02:00
Carlos R. Mafra
34be9d7816 Trivial coding style changes
Some trivial style changes I made while reading src/placement.c
2009-08-30 00:51:27 +02:00
Tamas TEVESZ
9af6316d1d k&r->ansi some stuff
ansify and "fix" function pointer declarations
2009-08-29 21:49:22 +02:00
Johann Haarhoff
6924454836 Left Half / Right Half Maximize
This adds Left Half / Right Half Maximize capability to WindowMaker.
It allows you to maximize a window to only the left or right half
of your screen.

It is useful on widescreen displays where one might to bring up
two different windows side-by-side.
2009-08-29 21:49:16 +02:00
Carlos R. Mafra
328251c68a Define TITLEBAR_HEIGHT in default configuration file
...and use it in src/placement.c

And while we are at it, clean up a bit the visual of wconfig.h.in
2009-08-28 21:21:03 +02:00
Carlos R. Mafra
2f87d01a41 Make wmaker 0.11% smaller by avoiding code duplication
This patch cleans up an obvious code duplication case in the
different "placement" algorithms.

Avoid this needless repetition by using a helper function,
which in turn lets those functions a bit easier to read and
also makes wmaker 0.11% smaller :-)

[mafra@Pilar:wmaker.git]$ size src/.libs/wmaker.*
   text    data     bss     dec     hex filename
 619824   19160    8544  647528   9e168 src/.libs/wmaker.new
 620552   19160    8544  648256   9e440 src/.libs/wmaker.old
2009-08-28 20:18:18 +02:00
Martin Dietze
22730876e4 Nightly Build script can now deal with testing and unstable branches. 2009-08-28 19:04:29 +02:00
Gilbert Ashley
be08535ab4 Show app name in Kill Application dialog
The "Kill Application" dialog window doesn't always show the
application name when killing DockApps. It shows its wm_class
instead, which is not always the same as the app name.

This patch allows the Kill Application dialog window to show
the application name in the window -- as expressed by using the
basename of the path to the application.

[crmafra: Added wtokensplit() to get only the app name]
2009-08-27 16:35:42 +02:00
Vladimir Nadvornik
108127f0b5 Miscellaneous fixes from OpenSuse
These are some of the fixes sent to the wmaker-dev list by
Vladimir Nadvornik, with minor modifications to address Dan
Pascu's concerns.

Original-post: http://lists.windowmaker.info/dev/msg00293.html
2009-08-27 16:34:44 +02:00
Carlos R. Mafra
6d75291e1d Add config option to supress focus requests across workspaces
In commit d6c134f420 ("Do not switch
workspace to follow new windows in others") the default behavior
was changed, and workspace switching to follow focus requests was
strictly forbidden.

Although that seems to be a sane thing to do by default, that raises
concerns about whether Window Maker could be more flexible in that
respect -- allowing the user to choose which applications are or
are not allowed to do that.

This patch adds such configuration, located in the "Advanced Options"
submenu of the top-level "Attributes" menu.
2009-08-26 17:53:08 +02:00
Martin Dietze
ca60620f50 Adapted nightly build script to coexist with new 'next' branch. 2009-08-26 15:51:13 +02:00
Martin Dietze
a9aeefbe70 Fix NULL pointer dereference
Some weird applications like Safari for Windows running on CXOffice
or some applications running on Wine were causing wmaker to crash.
So let's not rely on a window's `frame' property to be not NULL in
src/wmspec.c.

Original-post: http://lists.windowmaker.info/dev/msg00161.html
See-also: http://lists.windowmaker.info/dev/msg00222.html
2009-08-25 01:10:00 +02:00
Martin Dietze
d6c134f420 Do not switch workspace to follow new windows in others
New windows should only be focused if they are in the current workspace.
Not performing this check can lead to WM switching workspaces if a
window is opened which:

   (a) is configured to appear in a particular workspace

and

   (b) sends a _NET_ACTIVE_WINDOW message to give focus to
       something, e.g. a sub window.

This behaviour was observed with firefox if a session with more
than one tab open was restored at startup because:

 "If a Client wants to activate another window, it MUST send a
   _NET_ACTIVE_WINDOW client message to the root window:"

Original-post: http://lists.windowmaker.info/dev/msg00442.html

[crmafra: Added comment]
2009-08-25 00:47:37 +02:00
Martin Dietze
442e3876c6 Add debianisation code and automatic build script 2009-08-24 11:55:20 +02:00
Martin Dietze
19f110d26e Add two menu files from the Debian package 2009-08-24 11:55:20 +02:00
Martin Dietze
3f6ae395ce Add GLOBAL_DEFAULTS_SUBDIR and fix a syntax error in wmlib/Makefile.am 2009-08-24 11:55:20 +02:00
190 changed files with 13973 additions and 6832 deletions

View File

@@ -1,8 +0,0 @@
Makefile Makefile.in
aclocal.m4
configure config.log config.cache config.guess config.status config.sub
libtool ltconfig ltmain.sh
autom4te.cache
.psrc .inslog2 tca.map tca.log pchdir *.rpt
update
WindowMaker*.tar.gz

View File

@@ -4,11 +4,11 @@
If you find a bug please fill this form and send it to If you find a bug please fill this form and send it to
developers@windowmaker.info Please, USE THIS FORM!!! wmaker-dev@lists.windowmaker.org Please, USE THIS FORM!!!
You can also report a bug in the WWW bug tracker at You can also report a bug in the WWW bug tracker at
http://windowmaker.info/cgi-bin/bugs or by sending this report http://bugs.windowmaker.org/projects/wmaker/issues or by sending this report to
to bugs@windowmaker.info bugs@windowmaker.org
0. Before reporting this bug I already: 0. Before reporting this bug I already:

63
FAQ
View File

@@ -143,10 +143,9 @@ here for example screenshots.
1.2 Where can I get Window Maker? 1.2 Where can I get Window Maker?
---------------------------------- ----------------------------------
The official site to get new developmental versions from is The official site to get new developmental versions from is
ftp://ftp.windowmaker.info/pub/beta/srcs/. http://windowmaker.org/pub/source/beta/
NOTE: Also see http://wm.current.nu/downloads.html for the latest The mercurial repository is available at https://hg.windowmaker.org/wmaker
Stable and Development versions.
The development versions are usually very stable themselves, so if you The development versions are usually very stable themselves, so if you
want to have all the newest features, you can rather safetly go with the want to have all the newest features, you can rather safetly go with the
@@ -158,23 +157,15 @@ crash.
1.3 Where are the mailing list archives? 1.3 Where are the mailing list archives?
---------------------------------------- ----------------------------------------
Phillip Smith from Netplex, our wonderful provider of windowmaker.info, has Please read the information on the web pages at http://lists.windowmaker.org/
set up some new lists from the domain. Please read the information on the for information on how to subscribe, the posting guidelines, and how to access
web pages at http://www.windowmaker.info/lists.html for information on how the web archives.
to subscribe, the posting guidelines, and how to access the web archives.
Many thanks to Ed Orcutt who hosted the original lists from his own machine
for many years and Caldera who graciously allowed Ed to continue hosting
from them when he moved to his new position with them. Ed provided a very
valuable service for many years and we are sad to see him go.
1.4 Where is more documentation on configuring Window Maker? 1.4 Where is more documentation on configuring Window Maker?
---------------------------------- ----------------------------------
Besides the mailing list archives, there are nice documents in Besides the mailing list archives, there are nice documents in
ftp://ftp.windowmaker.info/pub/docs/, at http://windowmaker.org/documentation.php
http://wm.current.nu/downloads.html on my download page and at
http://wm.current.nu/user-guide/index.htm in the online user-guide.
1.5 What is an appicon? 1.5 What is an appicon?
@@ -182,52 +173,34 @@ http://wm.current.nu/user-guide/index.htm in the online user-guide.
An appicon is the icon (without the tiny titlebar a minimized application icon An appicon is the icon (without the tiny titlebar a minimized application icon
has) produced by most applications that initially is in the bottom left corner has) produced by most applications that initially is in the bottom left corner
of the screen while an application is running. For an example, run xterm and of the screen while an application is running. For an example, run xterm and
notice the icon in the corner. (Make sure that you use xterm and not a notice the icon in the corner.
default older rxvt because older versions of rxvt do not properly set their
window attributes.)
1.6. How can I get a question added to the FAQ? 1.6. How can I get a question added to the FAQ?
---------------------------------- ----------------------------------
Right now, the only method is to mail Chris Green <sprout@dok.org> or Ask on the mailing list, or send your request to faqs@windowmaker.org
myself <largo@current.nu> the question or post it on the Window Maker
Mailing list, and see if enough people have the same problem.
If you are a developer and would like to be able to edit the official FAQ on Other avenues are the Window Maker wiki
Chris's site, let him know at <sprout@dok.org> http://bugs.windowmaker.org/projects/wmaker/wiki
and the forums
He is currently pondering writing a front end that allows everyone to add http://bugs.windowmaker.org/projects/wmaker/boards
entries and only require a moderator approval before being posted.
1.7. How do I report bugs? 1.7. How do I report bugs?
---------------------------------- ----------------------------------
You can look at the BUGFORM file in your tarball of Window Maker. You can look at the BUGFORM file in your tarball of Window Maker.
Alternatively, you can use the Window Maker Bugtracker at Alternatively, you can use the Window Maker Bugtracker at
http://windowmaker.info/cgi-bin/bugs. http://bugs.windowmaker.org/projects/wmaker/issues
1.8. Is there an anomymous cvs server? 1.8. Is there a public source code repository?
---------------------------------- ----------------------------------
Yes there is. To check out from cvs, first Yes there is. To check out from mercurial use:
hg clone http://hg.windowmaker.org/wmaker wmaker
export CVSROOT=":pserver:anoncvs@cvs.net-community.com:/gnustep" To update your source tree, cd to the wmaker directory and type
cvs login hg pull
'anoncvs' is the password.
Then issue the command. "wm" is the name of the module.
cvs -z3 checkout -d WindowMaker wm
To update your source tree, cd to the WindowMaker directory and type
cvs -z3 update
inside the WindowMaker directory.
-=-=-=-=-=-=- -=-=-=-=-=-=-

View File

@@ -372,11 +372,10 @@ Installing the extras package
Unpack WindowMaker-extra-<version-number>.tar.gz in /usr/local/share Unpack WindowMaker-extra-<version-number>.tar.gz in /usr/local/share
You can get the file at ftp://ftp.windowmaker.info. This file is optional You can get the file at http://windowmaker.org/pub/source/release/. This file
and only have a few icons, and themes. Look for the latest <version-number> is optional and only have a few icons, and themes. Look for the latest
available. <version-number> available. Also there is a WindowMaker-extra.readme to
Also there is a WindowMaker-extra.readme to instruct you where that package instruct you where that package should go.
should go.

View File

@@ -4,7 +4,7 @@ Window Maker FTP Mirror Sites
Official Site (USA): Official Site (USA):
-------------------- --------------------
ftp://ftp.windowmaker.info/ http://windowmaker.org/pub/source/release/
Australia: Australia:

View File

@@ -1,7 +1,6 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc\ SUBDIRS = wrlib WINGs src util po WindowMaker wmlib WPrefs.app doc
contrib
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N FAQ.I18N.cs FAQ.I18N.sk \ EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N FAQ.I18N.cs FAQ.I18N.sk \
INSTALL.cs INSTALL.fr INSTALL.es INSTALL.pt INSTALL.sk \ INSTALL.cs INSTALL.fr INSTALL.es INSTALL.pt INSTALL.sk \

214
README
View File

@@ -4,8 +4,7 @@
GNU Window Maker GNU Window Maker
X11 Window Manager X11 Window Manager
<http://windowmaker.info> <http://windowmaker.org>
<ftp://ftp.windowmaker.info>
by by
@@ -41,26 +40,25 @@
Description Description
=========== ===========
Window Maker is the GNU window manager for the X Window System. It was Window Maker is the GNU window manager for the X Window System. It was designed
designed to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's supposed to
supposed to be relatively fast and small, feature rich, easy to configure and be relatively fast and small, feature rich, easy to configure and easy to use,
easy to use, with a simple and elegant appearance borrowed from NEXTSTEP(tm). with a simple and elegant appearance borrowed from NEXTSTEP(tm).
Window Maker was designed keeping integration with GNUstep in mind and is the Window Maker was designed keeping integration with GNUstep in mind and is the
"official" window manager for it. It is also part of the GNU project "official" window manager for it. It is also part of the GNU project
(www.gnu.org) Read more about GNUstep further on this file. (www.gnu.org) Read more about GNUstep further on this file.
Hints (information given by applications to integrate well with the window Hints (information given by applications to integrate well with the window
manager) for Motif(tm) and NETWM are also supported (NETWM is used by KDE manager) for Motif(tm) and NETWM are also supported (NETWM is used by KDE and
and GNOME, so they are automatically supported as a result). GNOME, so they are automatically supported as a result). So you can replace any
So you can replace any of the window managers for these environments of the window managers for these environments with Window Maker while keeping
with Window Maker while keeping most, if not all, of the native window manager most, if not all, of the native window manager functionality.
functionality.
Window Maker was previously called WindowMaker. Window Maker was previously called WindowMaker.
Window Maker has no connection with Windowmaker, the software for Window Maker has no connection with Windowmaker, the software for making windows
making windows and doors. and doors.
Documentation Documentation
@@ -72,8 +70,8 @@ Read before asking.
in the directories. in the directories.
* INSTALL has installation instructions and some troubleshooting tips. * INSTALL has installation instructions and some troubleshooting tips.
You're meant to read it before installing. it was not written just to You're meant to read it before installing. it was not written just to fill up
fill up space in the package... space in the package.
* FAQ: Frequently Asked Questions. READ IT!!! FAQ.I18N is for * FAQ: Frequently Asked Questions. READ IT!!! FAQ.I18N is for
internationalization related questions. internationalization related questions.
@@ -88,7 +86,6 @@ including platform specific packages of Window Maker.
* ChangeLog: what changed from the previous version? * ChangeLog: what changed from the previous version?
* BUGS: list of known bugs * BUGS: list of known bugs
*** Tutorial *** Tutorial
@@ -102,8 +99,6 @@ http://www.linuxfocus.org/~georges.t/
The Window Maker User's Guide can be downloaded from the official ftp The Window Maker User's Guide can be downloaded from the official ftp
or web sites. or web sites.
It can also be viewed in HTML format in:
http://people.delphi.com/crc3419/WMUserGuide/index.htm
The User Guide explains how to use Window Maker, the configuration files The User Guide explains how to use Window Maker, the configuration files
and options. and options.
@@ -119,29 +114,29 @@ Directories & Files in the Source Tree
====================================== ======================================
* Install is a script for configuring and compiling Window Maker in a easy * Install is a script for configuring and compiling Window Maker in a easy
way (not that the normal way is difficult, but...). way (not that the normal way is difficult, but...).
* AUTHORS: the credits * AUTHORS: the credits
* TODO: plans for the future * TODO: plans for the future
* contrib/ has some contributed patches that are not supported by Window Maker * contrib/ has some contributed patches that are not supported by Window Maker
because they conflict with design filosophies of the developers or some because they conflict with design philosophies of the developers or some other
other reason. reason.
* util/ has various utility programs. * util/ has various utility programs.
* WPrefs.app/ is the configuration program. * WPrefs.app/ is the configuration program.
* src/wconfig.h has compile time options you can change to select some * src/wconfig.h has compile time options you can change to select some
options/features and other stuff. options/features and other stuff.
* WINGs/ NEXTSTEP lookalike widget library * WINGs/ NEXTSTEP lookalike widget library
* wrlib/ image processing library * wrlib/ image processing library
* po/ has message catalogs wich are the translated versions of the messages * po/ has message catalogs wich are the translated versions of the messages
displayed by Window Maker. displayed by Window Maker.
* docklib-x.x.tar.gz a library for writing dockapps * docklib-x.x.tar.gz a library for writing dockapps
@@ -150,71 +145,68 @@ HELP ME!!!
========== ==========
There is a mailing list for discussing Window Maker at There is a mailing list for discussing Window Maker at
wm-user@windowmaker.info To subscribe to it, send a message containing: wmaker-user@ilists.windowmaker.org To subscribe to it, send a message to
subscribe wmaker-user-subscribe@lists.windowmaker.info
in the subject of the message to wm-user-request@windowmaker.info
If you got a problem, ask there (after reading the docs, of course). The If you got a problem, ask there (after reading the docs, of course). The people
people there is more likely to be able to answer your questions than we are. there is more likely to be able to answer your questions than we are. For bug
For bug reports use the BUGFORM. reports use the BUGFORM.
If you have a problem with a precompiled version of Window Maker If you have a problem with a precompiled version of Window Maker (rpm, deb etc),
(rpm, deb etc), first ask the person who made the package. first ask the person who made the package.
IMPORTANT NOTE: when asking for help (in the mailing list or to the IMPORTANT NOTE: when asking for help (in the mailing list or to the developerts,
developerts, directly) *always* send information about the system you are directly) *always* send information about the system you are using. You can use
using. You can use the system information section at the end of BUGFORM as a the system information section at the end of BUGFORM as a guideline. Another
guideline. Another thing: please don't send HTML mail. thing: please don't send HTML mail.
There is also a #windowmaker IRC channel at openprojects. To join there, There is also a #windowmaker IRC channel at freenode. To join there, connect
connect your irc client to irc.openprojects.net, irc.linux.com or some other your irc client to irc.freenode.net. irc.windowmaker.org will direct you to the
server of that network. correct IRC network.
GNUstep GNUstep
======= =======
GNUstep is a complete object-oriented development system, based on the GNUstep is a complete object-oriented development system, based on the OpenStep
OpenStep specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It will provide
will provide everything one needs to produce cross-platform, object-oriented, everything one needs to produce cross-platform, object-oriented, graphical (and
graphical (and non-graphical) applications; providing among other things, non-graphical) applications; providing among other things, base system
base system libraries, a high-level GUI application framework that uses a libraries, a high-level GUI application framework that uses a Display
Display PostScript(tm)-like imaging model (DGS), objects for accessing PostScript(tm)-like imaging model (DGS), objects for accessing relational
relational databases, distributed objects and a graphical development databases, distributed objects and a graphical development environment, with
environment, with tools like interface modeller, a project management system tools like interface modeller, a project management system (project center) and
(project center) and other tools. other tools.
The GNUstep development system will be used to create a user environment, The GNUstep development system will be used to create a user environment, with
with everything needed for a complete graphical user interface, such as a everything needed for a complete graphical user interface, such as a file
file viewer, text editors and other applications. Note that the user viewer, text editors and other applications. Note that the user environment (or
environment (or "desktop environment") is only a small part of the whole "desktop environment") is only a small part of the whole GNUstep project and
GNUstep project and therefore it does not "compete" with other projects like therefore it does not "compete" with other projects like KDE or GNOME, simply
KDE or GNOME, simply because they are completely different things. because they are completely different things.
For more information on the GNUstep project, visit: http://www.gnustep.org For more information on the GNUstep project, visit: http://www.gnustep.org
and http://gnustep.current.nu
Running multiple instances of Window Maker Running multiple instances of Window Maker
========================================== ==========================================
It is not a good idea to run more than one instance of Window Maker It is not a good idea to run more than one instance of Window Maker
from the same user (so that wmaker will use the same configuration from the same user (so that wmaker will use the same configuration files) at the
files) at the same time. You might get unexpected behaviour when Window Maker same time. You might get unexpected behaviour when Window Maker updates it's
updates it's configuration files. configuration files.
If you really desire to do this, try running Window Maker with the If you really desire to do this, try running Window Maker with the command line
command line option --static so that it will not update or change option --static so that it will not update or change any of the configuration
any of the configuration files. files.
Sound support Sound support
============= =============
Sound is supported for Linux and FreeBSD systems with the use of a Sound is supported for Linux and FreeBSD systems with the use of a separately
separately distributed module called WSoundServer. There is also a graphical distributed module called WSoundServer. There is also a graphical configuration
configuration tool for setting up your sounds called WSoundPrefs. tool for setting up your sounds called WSoundPrefs. You can download these at:
You can download these at:
http://shadowmere.student.utwente.nl/ http://shadowmere.student.utwente.nl/
Note that you must compile Window Maker with the --enable-sound configure Note that you must compile Window Maker with the --enable-sound configure
@@ -225,39 +217,37 @@ Performance Tuning
================== ==================
If you want to diminish Window Maker's memory usage and improve performance, If you want to diminish Window Maker's memory usage and improve performance,
while keeping a nice appearance and good functionality, follow the items while keeping a nice appearance and good functionality, follow the items bellow:
bellow:
- use solid textures for everything, mainly titlebars and menus. If you - use solid textures for everything, mainly titlebars and menus. If you want a
want a nice looking desktop, use the Traditional style. nice looking desktop, use the Traditional style.
- turn NewStyle and Superfluous off - turn NewStyle and Superfluous off
- do not bind many shortcuts in the menu and keep only the essential items - do not bind many shortcuts in the menu and keep only the essential items in
in the menu the menu
- turn on DisableClip - turn on DisableClip
- edit wconfig.h and disable the NUMLOCK_HACK and the features you - edit wconfig.h and disable the NUMLOCK_HACK and the features you don't use
don't use anyway (keep in mind that some of the #defines might not anyway (keep in mind that some of the #defines might not work, as they are not
work, as they are not fully supported). Make sure to always keep fully supported). Make sure to always keep NumLock and ScrollLock turned off.
NumLock and ScrollLock turned off.
- turn on DisableAnimations. You can also #undefine ANIMATIONS in wconfig.h - turn on DisableAnimations. You can also #undefine ANIMATIONS in wconfig.h
- strip down the default IconPath and PixmapPath entries to contain only - strip down the default IconPath and PixmapPath entries to contain only
the paths that you really have in your system. the paths that you really have in your system.
- do not use large images in the root background - do not use large images in the root background
- remove support for image formats you don't use - remove support for image formats you don't use
- to reduce memory usage, disable the icon cache, by setting the RIMAGE_CACHE - to reduce memory usage, disable the icon cache, by setting the RIMAGE_CACHE
environment variable to 0. If you want to increase performance at the cost environment variable to 0. If you want to increase performance at the cost of
of memory usage, set it's value to a value like the number of different memory usage, set it's value to a value like the number of different icons you
icons you use. Also, disable anti-aliased text support in ~/GNUstep/Defaults/WMGLOBAL. use. Also, disable anti-aliased text support in ~/GNUstep/Defaults/WMGLOBAL.
Keyboard Mouse Control Keyboard Mouse Control
====================== ======================
Many people ask about adding keyboard control of mouse, like in fvwm, Many people ask about adding keyboard control of mouse, like in fvwm, but Window
but Window Maker will not have such feature. The XKB extension supports Maker will not have such feature. The XKB extension supports mouse simulation
mouse simulation from the keyboard, in a much more powerfull fashion than from the keyboard, in a much more powerfull fashion than any simulation done by
any simulation done by a window manager. a window manager.
To enable it, hit the Control+Shift+NumLock or Shift+NumLock key combination. To enable it, hit the Control+Shift+NumLock or Shift+NumLock key combination.
You should hear the speaker beeping. To disable it, do the same thing. You should hear the speaker beeping. To disable it, do the same thing.
To control the mouse the numeric keypad is used as follows: To control the mouse the numeric keypad is used as follows:
@@ -283,28 +273,27 @@ milleage may vary.
How to make a gdb backtrace How to make a gdb backtrace
=========================== ===========================
Backtraces can help us fix bugs that make Window Maker crash. If you Backtraces can help us fix bugs that make Window Maker crash. If you find a bug
find a bug that crashes Window Maker, please send a backtrace with your that crashes Window Maker, please send a backtrace with your bug report.
bug report.
To make a usefull backtrace, you need a core file with debugging To make a usefull backtrace, you need a core file with debugging information
information produced by Window Maker when it crashes. It should produced by Window Maker when it crashes. It should have been installed without
have been installed without stripping too. stripping too.
To compile wmaker with debugging information: To compile wmaker with debugging information:
./configure ./configure
make CFLAGS=-g make CFLAGS=-g
If you get the dialog window telling you that wmaker crashed and If you get the dialog window telling you that wmaker crashed and asks you what
asks you what to do, tell it to "Abort and leave a core file". to do, tell it to "Abort and leave a core file".
script script
cd src cd src
gdb .libs/wmaker path_to_the_core_file gdb .libs/wmaker path_to_the_core_file
Then, in the gdb prompt type "bt". Quit from gdb by typing "quit" Then, in the gdb prompt type "bt". Quit from gdb by typing "quit" and then, in
and then, in the shell prompt, type "exit". the shell prompt, type "exit".
The file named typescript will contain the backtrace. The file named typescript will contain the backtrace.
@@ -313,20 +302,19 @@ The file named typescript will contain the backtrace.
Copyrights & Disclaimers Copyrights & Disclaimers
======================== ========================
Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the GNU
GNU General Public License. Read the COPYING file for the complete license. General Public License. Read the COPYING file for the complete license.
The icons that are distributed with this program and were made by Marco van The icons that are distributed with this program and were made by Marco van
Hylckama Vlieg, are licensed through the GNU General Public License. Read the Hylckama Vlieg, are licensed through the GNU General Public License. Read the
COPYING file for the complete license. COPYING file for the complete license.
The icons listed in COPYING.WTFPL and are distributed in this The icons listed in COPYING.WTFPL and are distributed in this program and were
program and were made by Banlu Kemiyatorn (]d), are licensed through the made by Banlu Kemiyatorn (]d), are licensed through the "do What The Fuck you
"do What The Fuck you want to Public License". Read the COPYING.WTFPL want to Public License". Read the COPYING.WTFPL file for the complete license.
file for the complete license.
NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc. NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc. All other
All other trademarks are property of their respective owners. trademarks are property of their respective owners.
The authors reserve the right to make changes in the software without prior The authors reserve the right to make changes in the software without prior
notice. notice.
@@ -339,15 +327,15 @@ Alfredo K. Kojima <kojima@windowmaker.info>
Dan Pascu <dan@windowmaker.info> Dan Pascu <dan@windowmaker.info>
]d <id@windowmaker.info> ]d <id@windowmaker.info>
Please don't ask us questions before reading the documentation (esp. the Please don't ask us questions before reading the documentation (esp. the FAQ,
FAQ, this file and INSTALL files) and about "cool" things you see in this file and INSTALL files) and about "cool" things you see in people's desktop
people's desktop screenshots. screenshots.
The AUTHORS file contains a list of the people who have contributed to the The AUTHORS file contains a list of the people who have contributed to the
project. The name of people who have helped with localization (translation) project. The name of people who have helped with localization (translation) can
can be found in po/README and Window Maker/README be found in po/README and Window Maker/README
If you have any comments, fixes and bug reports (filled BUGFORMs) send them If you have any comments, fixes and bug reports (filled BUGFORMs) send them
to developers@windowmaker.info to wmaker-dev@lists.windowmaker.org

View File

@@ -0,0 +1,86 @@
____________
Introduction
------------
This short tutorial is meant to help you help me in the task
of having a maintainable and bug-free Window Maker.
It assumes you have 'git' correctly installed and you have set
the most basic configuration options via 'git config' (or by
editing the $HOME/.gitconfig file yourself). See the end
of this file for an example .gitconfig (which is the one
I use).
You should probably by now have already cloned my repository,
but here is how you can do it just in case:
# this is the preferred method (ie faster, native implementation)
git clone git://repo.or.cz/wmaker-crm.git
# use the http method only if are behind a firewall which blocks git://
git clone http://repo.or.cz/r/wmaker-crm.git
__________________________________
How to submit patches the git way
----------------------------------
Suppose you have a working copy of the git repo and you found
a bug in Window Maker and you know how to fix it. This is
what you can do to submit your patch in a way which will allow
me to apply it quickly.
# Optional: Create a new branch (just to be safe in case you screw up)
git checkout -b my-new-branch
Now you edit and save the files to fix the bug...
# Optional: Check what you did, review etc
git diff
# if it looks good, commit your changes
git commit -a
# git will pop up the editor which you configured in .gitconfig so
# that you will be able to write a commit log. It will use the 'vi'
# editor otherwise.
(write a _good_ and succinct commit log, explaining what you fixed etc)
# Prepare the patch to submit to the mailing-list. This step will create
# a file named 0001-subject-of-your-patch.patch from the last commit
# (use HEAD~2 if you want patches for the last 2 commits etc)
git format-patch HEAD~1
After the above steps, you are ready to send the created .patch file
to the mailing-list! Just send it as-is, and I will be able to apply
it with
# this is how I am going to apply your patch
git am 0001-subject-of-your-patch.patch
and it will automatically append your commit to the repo, with the
proper authorship, date, subject, commit log etc.
___________________
Example .gitconfig
-------------------
[user]
name = Erwin Schrodinger
email = schrodinger@gmail.com
[core]
editor = xjed
[status]
showUntrackedFiles = no
[color]
branch = auto
status = auto
diff = auto
ui = auto
[apply]
whitespace = fix

View File

@@ -1,4 +0,0 @@
Makefile Makefile.in
get-wings-flags get-wutil-flags
.libs *.pc
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,5 +0,0 @@
Makefile Makefile.in
connect server fontl puzzle UserTime.plist
colorpick
.libs
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -6,23 +6,24 @@ AUTOMAKE_OPTIONS = no-dependencies
noinst_PROGRAMS = connect server fontl puzzle colorpick noinst_PROGRAMS = connect server fontl puzzle colorpick
LDADD= $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la \ LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \
$(top_builddir)/WINGs/libWUtil.la \
@XFTLIBS@ @INTLIBS@ @XFTLIBS@ @INTLIBS@
colorpick_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a colorpick_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.a connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la
connect_LDADD = $(top_builddir)/WINGs/libWUtil.a @LIBRARY_SEARCH_PATH@ \ connect_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ \
@NETLIBS@ @INTLIBS@ @NETLIBS@ @INTLIBS@
server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.a server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la
server_LDADD = $(top_builddir)/WINGs/libWUtil.a @LIBRARY_SEARCH_PATH@ \ server_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ \
@NETLIBS@ @INTLIBS@ @NETLIBS@ @INTLIBS@

View File

@@ -36,7 +36,7 @@ void show(WMWidget * self, void *data)
void *d; void *d;
WMLabel *l = (WMLabel *) data; WMLabel *l = (WMLabel *) data;
d = WMGetHangedData(self); d = WMGetHangedData(self);
sprintf(buf, "%i - 0x%x - 0%o", (int)(uintptr_t) d, (int)(uintptr_t) d, (int)(uintptr_t) d); sprintf(buf, "%i - 0x%x - 0%o", (int)d, (int)d, (int)d);
WMSetLabelText(l, buf); WMSetLabelText(l, buf);
} }

View File

@@ -8,7 +8,7 @@
WMWindow *win; WMWindow *win;
WMButton *Button[MAX_SIZE]; WMButton *Button[MAX_SIZE];
char Map[MAX_SIZE]; signed char Map[MAX_SIZE];
int Size = 4; int Size = 4;
int MoveCount; int MoveCount;
@@ -134,7 +134,7 @@ void buttonClick(WMWidget * w, void *ptr)
{ {
char buffer[300]; char buffer[300];
if (SlideButton((int)(uintptr_t) ptr)) { if (SlideButton((uintptr_t)ptr)) {
MoveCount++; MoveCount++;
if (CheckWin()) { if (CheckWin()) {

View File

@@ -1,4 +0,0 @@
Makefile Makefile.in
.libs
test
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -10,7 +10,7 @@ includedir = @includedir@/WINGs
include_HEADERS = wtableview.h wtabledelegates.h include_HEADERS = wtableview.h wtabledelegates.h
lib_LIBRARIES = libExtraWINGs.a lib_LTLIBRARIES = libExtraWINGs.la
noinst_PROGRAMS = test noinst_PROGRAMS = test
@@ -18,7 +18,7 @@ EXTRA_DIST =
libExtraWINGs_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS) libExtraWINGs_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS)
libExtraWINGs_a_SOURCES = \ libExtraWINGs_la_SOURCES = \
wtableview.c \ wtableview.c \
wtabledelegates.c \ wtabledelegates.c \
wtableview.h \ wtableview.h \
@@ -29,12 +29,13 @@ AM_CFLAGS = @NOSTRICTALIASING@
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs \ INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs \
-DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG
LDADD= $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la \ LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \
$(top_builddir)/WINGs/libWUtil.la \
@XFTLIBS@ @INTLIBS@ @XFTLIBS@ @INTLIBS@
test_LDADD = wtableview.o wtabledelegates.o $(LDADD) test_LDADD = wtableview.o wtabledelegates.o $(LDADD)
LIBTOOL = $(QUIET) $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG) LIBTOOL = $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
.c.o: .c.o:
$(QUIET)$(COMPILE) -c $< $(QUIET)$(COMPILE) -c $<

View File

@@ -36,7 +36,7 @@ void *valueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row)
col2[i] = 0; col2[i] = 0;
} }
} }
if ((int)(uintptr_t) WMGetTableColumnId(column) == 1) if ((uintptr_t)WMGetTableColumnId(column) == 1)
return col1[row]; return col1[row];
else else
return (void *)(uintptr_t) col2[row]; return (void *)(uintptr_t) col2[row];
@@ -44,10 +44,10 @@ void *valueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row)
void setValueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row, void *data) void setValueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row, void *data)
{ {
if ((int)(uintptr_t) WMGetTableColumnId(column) == 1) if ((uintptr_t)WMGetTableColumnId(column) == 1)
col1[row] = data; col1[row] = data;
else else
col2[row] = (int)(uintptr_t) data; col2[row] = (uintptr_t) data;
} }
static WMTableViewDelegate delegate = { static WMTableViewDelegate delegate = {

View File

@@ -192,7 +192,7 @@ static void ESCellPainter(WMTableColumnDelegate * self, WMTableColumn * column,
{ {
EnumSelectorData *strdata = (EnumSelectorData *) self->data; EnumSelectorData *strdata = (EnumSelectorData *) self->data;
WMTableView *table = WMGetTableColumnTableView(column); WMTableView *table = WMGetTableColumnTableView(column);
int i = (int)(uintptr_t) WMTableViewDataForCell(table, column, row); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
stringDraw(WMWidgetScreen(table), d, stringDraw(WMWidgetScreen(table), d,
strdata->gc, strdata->selGC, strdata->textColor, strdata->font, strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
@@ -203,7 +203,7 @@ static void selectedESCellPainter(WMTableColumnDelegate * self, WMTableColumn *
{ {
EnumSelectorData *strdata = (EnumSelectorData *) self->data; EnumSelectorData *strdata = (EnumSelectorData *) self->data;
WMTableView *table = WMGetTableColumnTableView(column); WMTableView *table = WMGetTableColumnTableView(column);
int i = (int)(uintptr_t) WMTableViewDataForCell(table, column, row); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
stringDraw(WMWidgetScreen(table), d, stringDraw(WMWidgetScreen(table), d,
strdata->gc, strdata->selGC, strdata->textColor, strdata->font, strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
@@ -214,7 +214,7 @@ static void beginESCellEdit(WMTableColumnDelegate * self, WMTableColumn * column
{ {
EnumSelectorData *strdata = (EnumSelectorData *) self->data; EnumSelectorData *strdata = (EnumSelectorData *) self->data;
WMRect rect = WMTableViewRectForCell(strdata->table, column, row); WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
int data = (int)(uintptr_t) WMTableViewDataForCell(strdata->table, column, row); uintptr_t data = (uintptr_t)WMTableViewDataForCell(strdata->table, column, row);
wassertr(data < strdata->count); wassertr(data < strdata->count);
@@ -285,7 +285,7 @@ static void BSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column,
{ {
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
WMTableView *table = WMGetTableColumnTableView(column); WMTableView *table = WMGetTableColumnTableView(column);
int i = (int)(uintptr_t) WMTableViewDataForCell(table, column, row); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
WMScreen *scr = WMWidgetScreen(table); WMScreen *scr = WMWidgetScreen(table);
if (i) { if (i) {
@@ -302,7 +302,7 @@ static void selectedBSCellPainter(WMTableColumnDelegate * self, WMTableColumn *
{ {
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
WMTableView *table = WMGetTableColumnTableView(column); WMTableView *table = WMGetTableColumnTableView(column);
int i = (int)(uintptr_t) WMTableViewDataForCell(table, column, row); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
WMScreen *scr = WMWidgetScreen(table); WMScreen *scr = WMWidgetScreen(table);
if (i) { if (i) {
@@ -319,7 +319,7 @@ static void beginBSCellEdit(WMTableColumnDelegate * self, WMTableColumn * column
{ {
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
WMRect rect = WMTableViewRectForCell(strdata->table, column, row); WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
int data = (int)(uintptr_t) WMTableViewDataForCell(strdata->table, column, row); uintptr_t data = (uintptr_t)WMTableViewDataForCell(strdata->table, column, row);
WMSetButtonSelected(strdata->widget, data); WMSetButtonSelected(strdata->widget, data);
WMMoveWidget(strdata->widget, rect.pos.x + 1, rect.pos.y + 1); WMMoveWidget(strdata->widget, rect.pos.x + 1, rect.pos.y + 1);

View File

@@ -2,22 +2,23 @@
AUTOMAKE_OPTIONS = no-dependencies AUTOMAKE_OPTIONS = no-dependencies
SUBDIRS = WINGs . po Documentation Resources Examples Extras Tests SUBDIRS = WINGs . po Documentation Resources
LIBTOOL = $(QUIET) $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG) LIBTOOL = $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
libWINGs_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS) libWINGs_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS)
libWUtil_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS) libWUtil_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS)
#libWINGs_la_LDFLAGS = -version-info 1:1:0 libWINGs_la_LDFLAGS = -version-info 2:1:0
libWUtil_la_LDFLAGS = -version-info 1:2:0
bin_SCRIPTS = get-wings-flags get-wutil-flags bin_SCRIPTS = get-wings-flags get-wutil-flags
lib_LIBRARIES = libWINGs.a libWUtil.a lib_LTLIBRARIES = libWINGs.la libWUtil.la
LDADD= libWINGs.a $(top_builddir)/wrlib/libwraster.la @INTLIBS@ LDADD= libWUtil.la libWINGs.la $(top_builddir)/wrlib/libwraster.la @INTLIBS@
EXTRA_DIST = BUGS make-rgb python/Makefile python/README python/WINGs.i \ EXTRA_DIST = BUGS make-rgb python/Makefile python/README python/WINGs.i \
@@ -25,33 +26,12 @@ EXTRA_DIST = BUGS make-rgb python/Makefile python/README python/WINGs.i \
# wbutton.c # wbutton.c
libWINGs_a_SOURCES = \ libWINGs_la_SOURCES = \
array.c \
bagtree.c \
configuration.c \ configuration.c \
connection.c \
data.c \
dragcommon.c \ dragcommon.c \
dragdestination.c \ dragdestination.c \
dragsource.c \ dragsource.c \
error.c \
findfile.c \
handlers.c \
hashtable.c \
host.c \
international.c \
memory.c \
misc.c \
notification.c \
proplist.c \
rgb.h \
selection.c \ selection.c \
snprintf.c \
string.c \
tree.c \
userdefaults.c \
usleep.c \
wapplication.c \
wappresource.c \ wappresource.c \
wballoon.c \ wballoon.c \
wbox.c \ wbox.c \
@@ -87,8 +67,7 @@ libWINGs_a_SOURCES = \
wview.c \ wview.c \
wwindow.c wwindow.c
libWUtil_la_SOURCES = \
libWUtil_a_SOURCES = \
array.c \ array.c \
bagtree.c \ bagtree.c \
connection.c \ connection.c \

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,4 +0,0 @@
Makefile Makefile.in
testtext testcolorpanel testmywidget wmfile wmquery wtest
.libs
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -4,13 +4,14 @@ AUTOMAKE_OPTIONS = no-dependencies
noinst_PROGRAMS = wtest wmquery wmfile testmywidget noinst_PROGRAMS = wtest wmquery wmfile testmywidget
LDADD= $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la \ LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \
$(top_builddir)/WINGs/libWUtil.la \
@XFTLIBS@ @INTLIBS@ @XFTLIBS@ @INTLIBS@
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
EXTRA_DIST = logo.xpm upbtn.xpm wm.html wm.png EXTRA_DIST = logo.xpm upbtn.xpm wm.html wm.png

View File

@@ -1 +0,0 @@
Makefile Makefile.in

View File

@@ -1125,6 +1125,8 @@ void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range);
void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position); void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position);
unsigned WMGetTextFieldCursorPosition(WMTextField *tPtr);
void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next); void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next);
void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev); void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev);

View File

@@ -28,6 +28,9 @@
# endif # endif
#endif #endif
#ifndef __GNUC__
#define __attribute__(x) /*NOTHING*/
#endif
#ifdef NDEBUG #ifdef NDEBUG
@@ -216,11 +219,11 @@ waborthandler* wsetabort(waborthandler* handler);
/* don't free the returned string */ /* don't free the returned string */
char* wstrerror(int errnum); char* wstrerror(int errnum);
void wmessage(const char *msg, ...); void wmessage(const char *msg, ...) __attribute__((__format__(printf,1,2)));
void wwarning(const char *msg, ...); void wwarning(const char *msg, ...) __attribute__((__format__(printf,1,2)));
void wfatal(const char *msg, ...); void wfatal(const char *msg, ...) __attribute__((__format__(printf,1,2)));
void wsyserror(const char *msg, ...); void wsyserror(const char *msg, ...) __attribute__((__format__(printf,1,2)));
void wsyserrorwithcode(int error, const char *msg, ...); void wsyserrorwithcode(int error, const char *msg, ...) __attribute__((__format__(printf,2,3)));
char* wfindfile(char *paths, char *file); char* wfindfile(char *paths, char *file);

View File

@@ -1,4 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt
*.pot
*.mo

View File

@@ -1,5 +0,0 @@
build
WINGs.c
wings.so
*.pyc
*.pyo

View File

@@ -1160,7 +1160,7 @@ static void readConfiguration(W_ColorPanel * panel)
} }
if (!(dPtr = opendir(panel->configurationPath))) { if (!(dPtr = opendir(panel->configurationPath))) {
wwarning(_("Color Panel: Could not find file"), "%s", panel->configurationPath); wwarning("%s: %s", _("Color Panel: Could not find file"), panel->configurationPath);
return; return;
} }
@@ -3370,6 +3370,8 @@ static int fetchFile(char *toPath, char *srcFile, char *destFile)
} }
} }
close(src);
close(dest);
return 0; return 0;
} }
@@ -3439,6 +3441,7 @@ RColor ulongToRColor(WMScreen * scr, unsigned long value)
color.red = 0; color.red = 0;
color.green = 0; color.green = 0;
color.blue = 0; color.blue = 0;
color.alpha = 0;
return color; return color;
} }
@@ -3448,6 +3451,7 @@ RColor ulongToRColor(WMScreen * scr, unsigned long value)
color.red = xcolor->red >> 8; color.red = xcolor->red >> 8;
color.green = xcolor->green >> 8; color.green = xcolor->green >> 8;
color.blue = xcolor->blue >> 8; color.blue = xcolor->blue >> 8;
color.alpha = 0;
wfree(xcolor); wfree(xcolor);

View File

@@ -118,13 +118,14 @@ static void textChangedObserver(void *observerData, WMNotification * notificatio
char *text; char *text;
WMList *list; WMList *list;
int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1;
int i, textEvent; int i;
uintptr_t textEvent;
if (!(list = WMGetBrowserListInColumn(panel->browser, col))) if (!(list = WMGetBrowserListInColumn(panel->browser, col)))
return; return;
text = WMGetTextFieldText(panel->fileField); text = WMGetTextFieldText(panel->fileField);
textEvent = (int)(uintptr_t) WMGetNotificationClientData(notification); textEvent = (uintptr_t)WMGetNotificationClientData(notification);
if (panel->flags.autoCompletion && textEvent != WMDeleteTextEvent) if (panel->flags.autoCompletion && textEvent != WMDeleteTextEvent)
i = closestListItem(list, text, False); i = closestListItem(list, text, False);
@@ -157,7 +158,7 @@ static void textEditedObserver(void *observerData, WMNotification * notification
{ {
W_FilePanel *panel = (W_FilePanel *) observerData; W_FilePanel *panel = (W_FilePanel *) observerData;
if ((int)(uintptr_t) WMGetNotificationClientData(notification) == WMReturnTextMovement) { if ((uintptr_t)WMGetNotificationClientData(notification) == WMReturnTextMovement) {
WMPerformButtonClick(panel->okButton); WMPerformButtonClick(panel->okButton);
} }
} }

View File

@@ -686,8 +686,8 @@ static void typefaceClick(WMWidget * w, void *data)
WMClearList(panel->sizLs); WMClearList(panel->sizLs);
WM_ITERATE_ARRAY(face->sizes, size, i) { WM_ITERATE_ARRAY(face->sizes, size, i) {
if ((int)(uintptr_t) size != 0) { if ((uintptr_t)size != 0) {
sprintf(buffer, "%i", (int)(uintptr_t) size); sprintf(buffer, "%li", (uintptr_t)size);
WMAddListItem(panel->sizLs, buffer); WMAddListItem(panel->sizLs, buffer);
} }
@@ -782,8 +782,8 @@ static void setFontPanelFontName(FontPanel * panel, char *family, char *style, d
WM_ITERATE_ARRAY(face->sizes, vsize, i) { WM_ITERATE_ARRAY(face->sizes, vsize, i) {
char buffer[32]; char buffer[32];
if ((int)(uintptr_t) vsize != 0) { if ((uintptr_t)vsize != 0) {
sprintf(buffer, "%i", (int)(uintptr_t) vsize); sprintf(buffer, "%li", (uintptr_t)vsize);
WMAddListItem(panel->sizLs, buffer); WMAddListItem(panel->sizLs, buffer);
} }

View File

@@ -317,7 +317,7 @@ static void endedEditingObserver(void *observerData, WMNotification * notificati
{ {
WMInputPanel *panel = (WMInputPanel *) observerData; WMInputPanel *panel = (WMInputPanel *) observerData;
switch ((int)(uintptr_t) WMGetNotificationClientData(notification)) { switch ((uintptr_t)WMGetNotificationClientData(notification)) {
case WMReturnTextMovement: case WMReturnTextMovement:
if (panel->defBtn) if (panel->defBtn)
WMPerformButtonClick(panel->defBtn); WMPerformButtonClick(panel->defBtn);

View File

@@ -578,6 +578,13 @@ void WMSetTextFieldCursorPosition(WMTextField * tPtr, unsigned int position)
} }
} }
unsigned WMGetTextFieldCursorPosition(WMTextField *tPtr)
{
CHECK_CLASS(tPtr, WC_TextField);
return tPtr->cursorPosition;
}
void WMSetTextFieldNextTextField(WMTextField * tPtr, WMTextField * next) void WMSetTextFieldNextTextField(WMTextField * tPtr, WMTextField * next)
{ {
CHECK_CLASS(tPtr, WC_TextField); CHECK_CLASS(tPtr, WC_TextField);

View File

@@ -213,17 +213,17 @@ static void setMiniwindowTitle(WMWindow * win, const char *title)
PropModeReplace, (unsigned char *)title, strlen(title)); PropModeReplace, (unsigned char *)title, strlen(title));
} }
static void setMiniwindow(WMWindow * win, RImage * image) static void setMiniwindow(WMWindow *win, RImage *image)
{ {
WMScreen *scr = win->view->screen; WMScreen *scr = win->view->screen;
CARD32 *data; long *data;
int x, y; int x, y;
int o; int o;
if (!image) if (!image)
return; return;
data = wmalloc((image->width * image->height + 2) * sizeof(CARD32)); data = wmalloc((image->width * image->height + 2) * sizeof(long));
o = 0; o = 0;
data[o++] = image->width; data[o++] = image->width;
@@ -231,19 +231,15 @@ static void setMiniwindow(WMWindow * win, RImage * image)
for (y = 0; y < image->height; y++) { for (y = 0; y < image->height; y++) {
for (x = 0; x < image->width; x++) { for (x = 0; x < image->width; x++) {
CARD32 pixel; long pixel;
int offs = (x + y * image->width); int offs = (x + y * image->width);
if (image->format == RRGBFormat) if (image->format == RRGBFormat)
pixel = pixel = image->data[offs * 3] << 16 | image->data[offs * 3 + 1] << 8
image->data[offs * 3] << 16 | image->data[offs * 3 + | image->data[offs * 3 + 2];
1] << 8 | image->data[offs * 3 + 2];
else else
pixel = pixel = image->data[offs * 4] << 16 | image->data[offs * 4 + 1] << 8
image->data[offs * 4] << 16 | image->data[offs * 4 + | image->data[offs * 4 + 2] | image->data[offs * 4 + 3] << 24;
1] << 8 | image->data[offs * 4 +
2] | image->
data[offs * 4 + 3] << 24;
data[o++] = pixel; data[o++] = pixel;
} }

View File

@@ -1,4 +0,0 @@
Makefile Makefile.in
WPrefs
.libs
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -45,7 +45,6 @@ typedef struct _Panel {
WMFrame *animF; WMFrame *animF;
WMButton *animB; WMButton *animB;
WMButton *supB; WMButton *supB;
WMButton *sfxB;
WMLabel *noteL; WMLabel *noteL;
WMFrame *smoF; WMFrame *smoF;
@@ -62,50 +61,36 @@ typedef struct _Panel {
} _Panel; } _Panel;
#define ICON_FILE "configs" #define ICON_FILE "configs"
#define OLDS_IMAGE "oldstyle" #define OLDS_IMAGE "oldstyle"
#define NEWS_IMAGE "newstyle" #define NEWS_IMAGE "newstyle"
#define ANIM_IMAGE "animations" #define ANIM_IMAGE "animations"
#define SUPERF_IMAGE "moreanim" #define SUPERF_IMAGE "moreanim"
#define SOUND_IMAGE "sound"
#define SMOOTH_IMAGE "smooth" #define SMOOTH_IMAGE "smooth"
#define SPEED_IMAGE "speed%i" #define SPEED_IMAGE "speed%i"
#define SPEED_IMAGE_S "speed%is" #define SPEED_IMAGE_S "speed%is"
#define ARQUIVO_XIS "xis" #define ARQUIVO_XIS "xis"
static void updateLabel(WMWidget * self, void *data); static void updateLabel(WMWidget *self, void *data);
static void showData(_Panel * panel) static void showData(_Panel *panel)
{ {
WMPerformButtonClick(panel->icoB[GetSpeedForKey("IconSlideSpeed")]); WMPerformButtonClick(panel->icoB[GetSpeedForKey("IconSlideSpeed")]);
WMPerformButtonClick(panel->shaB[GetSpeedForKey("ShadeSpeed")]); WMPerformButtonClick(panel->shaB[GetSpeedForKey("ShadeSpeed")]);
if (GetBoolForKey("NewStyle")) { if (GetBoolForKey("NewStyle"))
WMPerformButtonClick(panel->newsB); WMPerformButtonClick(panel->newsB);
} else { else
WMPerformButtonClick(panel->oldsB); WMPerformButtonClick(panel->oldsB);
}
WMSetButtonSelected(panel->animB, !GetBoolForKey("DisableAnimations")); WMSetButtonSelected(panel->animB, !GetBoolForKey("DisableAnimations"));
WMSetButtonSelected(panel->supB, GetBoolForKey("Superfluous")); WMSetButtonSelected(panel->supB, GetBoolForKey("Superfluous"));
WMSetButtonSelected(panel->sfxB, !GetBoolForKey("DisableSound"));
WMSetButtonSelected(panel->smoB, GetBoolForKey("SmoothWorkspaceBack")); WMSetButtonSelected(panel->smoB, GetBoolForKey("SmoothWorkspaceBack"));
WMSetButtonSelected(panel->dithB, GetBoolForKey("DisableDithering")); WMSetButtonSelected(panel->dithB, GetBoolForKey("DisableDithering"));
WMSetSliderValue(panel->dithS, GetIntegerForKey("ColormapSize")); WMSetSliderValue(panel->dithS, GetIntegerForKey("ColormapSize"));
updateLabel(panel->dithS, panel); updateLabel(panel->dithS, panel);
} }
static void updateLabel(WMWidget * self, void *data) static void updateLabel(WMWidget *self, void *data)
{ {
WMSlider *sPtr = (WMSlider *) self; WMSlider *sPtr = (WMSlider *) self;
_Panel *panel = (_Panel *) data; _Panel *panel = (_Panel *) data;
@@ -113,7 +98,6 @@ static void updateLabel(WMWidget * self, void *data)
float fl; float fl;
fl = WMGetSliderValue(sPtr); fl = WMGetSliderValue(sPtr);
panel->cmapSize = (int)fl; panel->cmapSize = (int)fl;
sprintf(buffer, "%i", panel->cmapSize * panel->cmapSize * panel->cmapSize); sprintf(buffer, "%i", panel->cmapSize * panel->cmapSize * panel->cmapSize);
@@ -121,7 +105,8 @@ static void updateLabel(WMWidget * self, void *data)
} }
static void static void
createImages(WMScreen * scr, RContext * rc, RImage * xis, char *file, WMPixmap ** icon1, WMPixmap ** icon2) createImages(WMScreen *scr, RContext *rc, RImage *xis, char *file,
WMPixmap **icon1, WMPixmap **icon2)
{ {
RImage *icon; RImage *icon;
char *path; char *path;
@@ -131,9 +116,8 @@ createImages(WMScreen * scr, RContext * rc, RImage * xis, char *file, WMPixmap *
*icon2 = NULL; *icon2 = NULL;
path = LocateImage(file); path = LocateImage(file);
if (!path) { if (!path)
return; return;
}
*icon1 = WMCreatePixmapFromFile(scr, path); *icon1 = WMCreatePixmapFromFile(scr, path);
if (!*icon1) { if (!*icon1) {
@@ -157,7 +141,7 @@ createImages(WMScreen * scr, RContext * rc, RImage * xis, char *file, WMPixmap *
wfree(path); wfree(path);
} }
static void createPanel(Panel * p) static void createPanel(Panel *p)
{ {
_Panel *panel = (_Panel *) p; _Panel *panel = (_Panel *) p;
WMScreen *scr = WMWidgetScreen(panel->parent); WMScreen *scr = WMWidgetScreen(panel->parent);
@@ -172,9 +156,8 @@ static void createPanel(Panel * p)
path = LocateImage(ARQUIVO_XIS); path = LocateImage(ARQUIVO_XIS);
if (path) { if (path) {
xis = RLoadImage(rc, path, 0); xis = RLoadImage(rc, path, 0);
if (!xis) { if (!xis)
wwarning(_("could not load image file %s"), path); wwarning(_("could not load image file %s"), path);
}
wfree(path); wfree(path);
} }
@@ -182,7 +165,6 @@ static void createPanel(Panel * p)
WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2);
/*********** Icon Slide Speed **********/ /*********** Icon Slide Speed **********/
panel->icoF = WMCreateFrame(panel->box); panel->icoF = WMCreateFrame(panel->box);
WMResizeWidget(panel->icoF, 230, 45); WMResizeWidget(panel->icoF, 230, 45);
WMMoveWidget(panel->icoF, 15, 10); WMMoveWidget(panel->icoF, 15, 10);
@@ -326,11 +308,10 @@ static void createPanel(Panel * p)
WMMapSubwidgets(panel->titlF); WMMapSubwidgets(panel->titlF);
/**************** Features ******************/ /**************** Features ******************/
panel->animF = WMCreateFrame(panel->box); panel->animF = WMCreateFrame(panel->box);
WMResizeWidget(panel->animF, 255, 115); WMResizeWidget(panel->animF, 255, 115);
WMMoveWidget(panel->animF, 255, 10); WMMoveWidget(panel->animF, 255, 10);
WMSetFrameTitle(panel->animF, _("Animations and Sound")); WMSetFrameTitle(panel->animF, _("Animations"));
panel->animB = WMCreateButton(panel->animF, WBTToggle); panel->animB = WMCreateButton(panel->animF, WBTToggle);
WMResizeWidget(panel->animB, 64, 64); WMResizeWidget(panel->animB, 64, 64);
@@ -370,34 +351,6 @@ static void createPanel(Panel * p)
"dock when it's being moved to another side and\n" "dock when it's being moved to another side and\n"
"the explosion animation when undocking icons."), WMWidgetView(panel->supB)); "the explosion animation when undocking icons."), WMWidgetView(panel->supB));
panel->sfxB = WMCreateButton(panel->animF, WBTToggle);
WMResizeWidget(panel->sfxB, 64, 64);
WMMoveWidget(panel->sfxB, 175, 20);
WMSetButtonFont(panel->sfxB, font);
WMSetButtonText(panel->sfxB, _("Sounds"));
WMSetButtonImagePosition(panel->sfxB, WIPAbove);
createImages(scr, rc, xis, SOUND_IMAGE, &altIcon, &icon);
if (icon) {
WMSetButtonImage(panel->sfxB, icon);
WMReleasePixmap(icon);
}
if (altIcon) {
WMSetButtonAltImage(panel->sfxB, altIcon);
WMReleasePixmap(altIcon);
}
WMSetBalloonTextForView(_("Disable/enable support for sound effects played\n"
"for actions like shading and closing a window.\n"
"You will need a module distributed separately\n"
"for this. You can get it at:\n"
"http://largo.windowmaker.info/files.php#WSoundServer"),
WMWidgetView(panel->sfxB));
panel->noteL = WMCreateLabel(panel->animF);
WMResizeWidget(panel->noteL, 235, 28);
WMMoveWidget(panel->noteL, 10, 85);
WMSetLabelFont(panel->noteL, font);
WMSetLabelText(panel->noteL, _("Note: sound requires a module distributed\nseparately"));
WMMapSubwidgets(panel->animF); WMMapSubwidgets(panel->animF);
/*********** Dithering **********/ /*********** Dithering **********/
@@ -453,11 +406,10 @@ static void createPanel(Panel * p)
if (xis) if (xis)
RReleaseImage(xis); RReleaseImage(xis);
WMReleaseFont(font); WMReleaseFont(font);
showData(panel); showData(panel);
} }
static void storeData(_Panel * panel) static void storeData(_Panel *panel)
{ {
int i; int i;
@@ -474,18 +426,14 @@ static void storeData(_Panel * panel)
SetSpeedForKey(i, "ShadeSpeed"); SetSpeedForKey(i, "ShadeSpeed");
SetBoolForKey(WMGetButtonSelected(panel->newsB), "NewStyle"); SetBoolForKey(WMGetButtonSelected(panel->newsB), "NewStyle");
SetBoolForKey(!WMGetButtonSelected(panel->animB), "DisableAnimations"); SetBoolForKey(!WMGetButtonSelected(panel->animB), "DisableAnimations");
SetBoolForKey(WMGetButtonSelected(panel->supB), "Superfluous"); SetBoolForKey(WMGetButtonSelected(panel->supB), "Superfluous");
SetBoolForKey(!WMGetButtonSelected(panel->sfxB), "DisableSound");
SetBoolForKey(WMGetButtonSelected(panel->smoB), "SmoothWorkspaceBack"); SetBoolForKey(WMGetButtonSelected(panel->smoB), "SmoothWorkspaceBack");
SetBoolForKey(WMGetButtonSelected(panel->dithB), "DisableDithering"); SetBoolForKey(WMGetButtonSelected(panel->dithB), "DisableDithering");
SetIntegerForKey(WMGetSliderValue(panel->dithS), "ColormapSize"); SetIntegerForKey(WMGetSliderValue(panel->dithS), "ColormapSize");
} }
Panel *InitConfigurations(WMScreen * scr, WMWidget * parent) Panel *InitConfigurations(WMScreen *scr, WMWidget *parent)
{ {
_Panel *panel; _Panel *panel;
@@ -493,12 +441,10 @@ Panel *InitConfigurations(WMScreen * scr, WMWidget * parent)
memset(panel, 0, sizeof(_Panel)); memset(panel, 0, sizeof(_Panel));
panel->sectionName = _("Other Configurations"); panel->sectionName = _("Other Configurations");
panel->description = _("Animation speeds, titlebar styles, various option\n" panel->description = _("Animation speeds, titlebar styles, various option\n"
"toggling and number of colors to reserve for\n" "Window Maker on 8bit displays."); "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays.");
panel->parent = parent; panel->parent = parent;
panel->callbacks.createWidgets = createPanel; panel->callbacks.createWidgets = createPanel;
panel->callbacks.updateDomain = storeData; panel->callbacks.updateDomain = storeData;

View File

@@ -49,6 +49,7 @@ static void showData(_Panel * panel)
WMSetButtonSelected(panel->swi[4], GetBoolForKey("DontConfirmKill")); WMSetButtonSelected(panel->swi[4], GetBoolForKey("DontConfirmKill"));
WMSetButtonSelected(panel->swi[5], GetBoolForKey("DisableBlinking")); WMSetButtonSelected(panel->swi[5], GetBoolForKey("DisableBlinking"));
WMSetButtonSelected(panel->swi[6], GetBoolForKey("AntialiasedText")); WMSetButtonSelected(panel->swi[6], GetBoolForKey("AntialiasedText"));
WMSetButtonSelected(panel->swi[7], GetBoolForKey("SingleClickLaunch"));
} }
static void createPanel(Panel * p) static void createPanel(Panel * p)
@@ -59,7 +60,7 @@ static void createPanel(Panel * p)
panel->box = WMCreateBox(panel->parent); panel->box = WMCreateBox(panel->parent);
WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2);
for (i = 0; i < 7; i++) { for (i = 0; i < 8; i++) {
panel->swi[i] = WMCreateSwitchButton(panel->box); panel->swi[i] = WMCreateSwitchButton(panel->box);
WMResizeWidget(panel->swi[i], FRAME_WIDTH - 40, 25); WMResizeWidget(panel->swi[i], FRAME_WIDTH - 40, 25);
WMMoveWidget(panel->swi[i], 20, 20 + i * 25); WMMoveWidget(panel->swi[i], 20, 20 + i * 25);
@@ -73,6 +74,7 @@ static void createPanel(Panel * p)
WMSetButtonText(panel->swi[4], _("Disable confirmation panel for the Kill command.")); WMSetButtonText(panel->swi[4], _("Disable confirmation panel for the Kill command."));
WMSetButtonText(panel->swi[5], _("Disable selection animation for selected icons.")); WMSetButtonText(panel->swi[5], _("Disable selection animation for selected icons."));
WMSetButtonText(panel->swi[6], _("Smooth font edges (needs restart).")); WMSetButtonText(panel->swi[6], _("Smooth font edges (needs restart)."));
WMSetButtonText(panel->swi[7], _("Launch applications and restore windows with a single click."));
WMSetButtonEnabled(panel->swi[6], True); WMSetButtonEnabled(panel->swi[6], True);
@@ -95,6 +97,7 @@ static void storeDefaults(_Panel * panel)
SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "DontConfirmKill"); SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "DontConfirmKill");
SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DisableBlinking"); SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DisableBlinking");
SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "AntialiasedText"); SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "AntialiasedText");
SetBoolForKey(WMGetButtonSelected(panel->swi[7]), "SingleClickLaunch");
} }
Panel *InitExpert(WMScreen * scr, WMWidget * parent) Panel *InitExpert(WMScreen * scr, WMWidget * parent)

View File

@@ -60,7 +60,10 @@ typedef struct _Panel {
#define ICON_FILE "keyshortcuts" #define ICON_FILE "keyshortcuts"
/* must be in the same order as the corresponding items in actions list */ /*
* Must be in the same order as the corresponding items in
* "actions list" in createPanel()
*/
static char *keyOptions[] = { static char *keyOptions[] = {
"RootMenuKey", "RootMenuKey",
"WindowListKey", "WindowListKey",
@@ -72,6 +75,9 @@ static char *keyOptions[] = {
"MaximizeKey", "MaximizeKey",
"VMaximizeKey", "VMaximizeKey",
"HMaximizeKey", "HMaximizeKey",
"LHMaximizeKey",
"RHMaximizeKey",
"MaximusKey",
"RaiseKey", "RaiseKey",
"LowerKey", "LowerKey",
"RaiseLowerKey", "RaiseLowerKey",
@@ -80,6 +86,8 @@ static char *keyOptions[] = {
"SelectKey", "SelectKey",
"FocusNextKey", "FocusNextKey",
"FocusPrevKey", "FocusPrevKey",
"GroupNextKey",
"GroupPrevKey",
"NextWorkspaceKey", "NextWorkspaceKey",
"PrevWorkspaceKey", "PrevWorkspaceKey",
"NextWorkspaceLayerKey", "NextWorkspaceLayerKey",
@@ -111,8 +119,7 @@ static char *keyOptions[] = {
"VirtualEdgeUpKey", "VirtualEdgeUpKey",
"VirtualEdgeDownKey", "VirtualEdgeDownKey",
#endif #endif
"ClipRaiseKey", "DockRaiseLowerKey",
"ClipLowerKey",
#ifndef XKB_MODELOCK #ifndef XKB_MODELOCK
"ClipRaiseLowerKey" "ClipRaiseLowerKey"
#else #else
@@ -473,6 +480,9 @@ static void createPanel(Panel * p)
WMAddListItem(panel->actLs, _("Maximize active window")); WMAddListItem(panel->actLs, _("Maximize active window"));
WMAddListItem(panel->actLs, _("Maximize active window vertically")); WMAddListItem(panel->actLs, _("Maximize active window vertically"));
WMAddListItem(panel->actLs, _("Maximize active window horizontally")); WMAddListItem(panel->actLs, _("Maximize active window horizontally"));
WMAddListItem(panel->actLs, _("Maximize active window left half"));
WMAddListItem(panel->actLs, _("Maximize active window right half"));
WMAddListItem(panel->actLs, _("Maximus: Tiled maximization "));
WMAddListItem(panel->actLs, _("Raise active window")); WMAddListItem(panel->actLs, _("Raise active window"));
WMAddListItem(panel->actLs, _("Lower active window")); WMAddListItem(panel->actLs, _("Lower active window"));
WMAddListItem(panel->actLs, _("Raise/Lower window under mouse pointer")); WMAddListItem(panel->actLs, _("Raise/Lower window under mouse pointer"));
@@ -481,6 +491,8 @@ static void createPanel(Panel * p)
WMAddListItem(panel->actLs, _("Select active window")); WMAddListItem(panel->actLs, _("Select active window"));
WMAddListItem(panel->actLs, _("Focus next window")); WMAddListItem(panel->actLs, _("Focus next window"));
WMAddListItem(panel->actLs, _("Focus previous window")); WMAddListItem(panel->actLs, _("Focus previous window"));
WMAddListItem(panel->actLs, _("Focus next group window"));
WMAddListItem(panel->actLs, _("Focus previous group window"));
WMAddListItem(panel->actLs, _("Switch to next workspace")); WMAddListItem(panel->actLs, _("Switch to next workspace"));
WMAddListItem(panel->actLs, _("Switch to previous workspace")); WMAddListItem(panel->actLs, _("Switch to previous workspace"));
WMAddListItem(panel->actLs, _("Switch to next ten workspaces")); WMAddListItem(panel->actLs, _("Switch to next ten workspaces"));
@@ -512,8 +524,7 @@ static void createPanel(Panel * p)
WMAddListItem(panel->actLs, _("Move VirtualDesktop to next top edge")); WMAddListItem(panel->actLs, _("Move VirtualDesktop to next top edge"));
WMAddListItem(panel->actLs, _("Move VirtualDesktop to next bottom edge")); WMAddListItem(panel->actLs, _("Move VirtualDesktop to next bottom edge"));
#endif #endif
WMAddListItem(panel->actLs, _("Raise Clip")); WMAddListItem(panel->actLs, _("Raise/Lower Dock"));
WMAddListItem(panel->actLs, _("Lower Clip"));
WMAddListItem(panel->actLs, _("Raise/Lower Clip")); WMAddListItem(panel->actLs, _("Raise/Lower Clip"));
#ifdef XKB_MODELOCK #ifdef XKB_MODELOCK
WMAddListItem(panel->actLs, _("Toggle keyboard language")); WMAddListItem(panel->actLs, _("Toggle keyboard language"));

View File

@@ -48,10 +48,11 @@ AM_CFLAGS = @NOSTRICTALIASING@
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
WPrefs_LDADD = \ WPrefs_LDADD = \
$(top_builddir)/WINGs/libWINGs.a\ $(top_builddir)/WINGs/libWINGs.la\
$(top_builddir)/WINGs/libWUtil.la\
$(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/wrlib/libwraster.la \
@XFTLIBS@ \ @XFTLIBS@ \
@INTLIBS@ @INTLIBS@

View File

@@ -53,6 +53,10 @@ typedef struct _Panel {
WMButton *miconB; WMButton *miconB;
WMButton *mdockB; WMButton *mdockB;
WMLabel *resizeL;
WMLabel *resizeTextL;
WMSlider *resizeS;
WMFrame *opaqF; WMFrame *opaqF;
WMButton *opaqB; WMButton *opaqB;
@@ -111,6 +115,22 @@ static void resistanceCallback(WMWidget * w, void *data)
} }
} }
static void resizeCallback(WMWidget * w, void *data)
{
_Panel *panel = (_Panel *) data;
char buffer[64];
int i;
i = WMGetSliderValue(panel->resizeS);
if (i == 0)
WMSetLabelText(panel->resizeL, "OFF");
else {
sprintf(buffer, "%i", i);
WMSetLabelText(panel->resizeL, buffer);
}
}
static int getPlacement(char *str) static int getPlacement(char *str)
{ {
if (!str) if (!str)
@@ -163,6 +183,10 @@ static void showData(_Panel * panel)
WMSetSliderValue(panel->resS, x); WMSetSliderValue(panel->resS, x);
resistanceCallback(NULL, panel); resistanceCallback(NULL, panel);
x = GetIntegerForKey("ResizeIncrement");
WMSetSliderValue(panel->resizeS, x);
resizeCallback(NULL, panel);
WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace")); WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace"));
WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove")); WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove"));
@@ -192,6 +216,7 @@ static void storeData(_Panel * panel)
arr = WMCreatePLArray(WMCreatePLString(x), WMCreatePLString(y), NULL); arr = WMCreatePLArray(WMCreatePLString(x), WMCreatePLString(y), NULL);
SetObjectForKey(arr, "WindowPlaceOrigin"); SetObjectForKey(arr, "WindowPlaceOrigin");
SetIntegerForKey(WMGetSliderValue(panel->resS), "EdgeResistance"); SetIntegerForKey(WMGetSliderValue(panel->resS), "EdgeResistance");
SetIntegerForKey(WMGetSliderValue(panel->resizeS), "ResizeIncrement");
SetBoolForKey(WMGetButtonSelected(panel->resrB), "Attraction"); SetBoolForKey(WMGetButtonSelected(panel->resrB), "Attraction");
WMReleasePropList(arr); WMReleasePropList(arr);
} }
@@ -341,15 +366,31 @@ static void createPanel(Panel * p)
panel->miconB = WMCreateSwitchButton(panel->maxiF); panel->miconB = WMCreateSwitchButton(panel->maxiF);
WMResizeWidget(panel->miconB, 190, 30); WMResizeWidget(panel->miconB, 190, 30);
WMMoveWidget(panel->miconB, 10, 18); WMMoveWidget(panel->miconB, 10, 12);
WMSetButtonText(panel->miconB, _("...do not cover icons")); WMSetButtonText(panel->miconB, _("...do not cover icons"));
panel->mdockB = WMCreateSwitchButton(panel->maxiF); panel->mdockB = WMCreateSwitchButton(panel->maxiF);
WMResizeWidget(panel->mdockB, 190, 30); WMResizeWidget(panel->mdockB, 190, 30);
WMMoveWidget(panel->mdockB, 10, 53); WMMoveWidget(panel->mdockB, 10, 35);
WMSetButtonText(panel->mdockB, _("...do not cover dock")); WMSetButtonText(panel->mdockB, _("...do not cover dock"));
panel->resizeS = WMCreateSlider(panel->maxiF);
WMResizeWidget(panel->resizeS, 50, 15);
WMMoveWidget(panel->resizeS, 10, 70);
WMSetSliderMinValue(panel->resizeS, 0);
WMSetSliderMaxValue(panel->resizeS, 100);
WMSetSliderAction(panel->resizeS, resizeCallback, panel);
panel->resizeL = WMCreateLabel(panel->maxiF);
WMResizeWidget(panel->resizeL, 30, 15);
WMMoveWidget(panel->resizeL, 60, 70);
panel->resizeTextL = WMCreateLabel(panel->maxiF);
WMSetLabelText(panel->resizeTextL, "Mod+Wheel\nresize increment");
WMResizeWidget(panel->resizeTextL, 110, 30);
WMMoveWidget(panel->resizeTextL, 90, 62);
WMMapSubwidgets(panel->maxiF); WMMapSubwidgets(panel->maxiF);
/**************** Edge Resistance ****************/ /**************** Edge Resistance ****************/

View File

@@ -829,14 +829,14 @@ static void stopEditItem(WEditMenu * menu, Bool apply)
static void textEndedEditing(struct WMTextFieldDelegate *self, WMNotification * notif) static void textEndedEditing(struct WMTextFieldDelegate *self, WMNotification * notif)
{ {
WEditMenu *menu = (WEditMenu *) self->data; WEditMenu *menu = (WEditMenu *) self->data;
int reason; uintptr_t reason;
int i; int i;
WEditMenuItem *item; WEditMenuItem *item;
if (!menu->flags.isEditing) if (!menu->flags.isEditing)
return; return;
reason = (int)(uintptr_t) WMGetNotificationClientData(notif); reason = (uintptr_t)WMGetNotificationClientData(notif);
switch (reason) { switch (reason) {
case WMEscapeTextMovement: case WMEscapeTextMovement:

View File

@@ -1,4 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt
*.pot
*.mo

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -32,7 +32,6 @@ EXTRA_DIST = \
opaque.tiff \ opaque.tiff \
paths.tiff \ paths.tiff \
smooth.tiff \ smooth.tiff \
sound.tiff \
speed0.tiff \ speed0.tiff \
speed0s.tiff \ speed0s.tiff \
speed1.tiff \ speed1.tiff \

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -33,7 +33,6 @@ EXTRA_DIST = \
opaque.xpm \ opaque.xpm \
paths.xpm \ paths.xpm \
smooth.xpm \ smooth.xpm \
sound.xpm \
speed0.xpm \ speed0.xpm \
speed0s.xpm \ speed0s.xpm \
speed1.xpm \ speed1.xpm \

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,3 +0,0 @@
Makefile Makefile.in
WMState WMWindowAttributes WindowMaker WMRootMenu
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -4,7 +4,6 @@
Logo.WMClip = {Icon = clip.#extension#;}; Logo.WMClip = {Icon = clip.#extension#;};
Dockit = {Icon = GNUstep.#extension#;}; Dockit = {Icon = GNUstep.#extension#;};
DockApp = {NoAppIcon = NO;}; DockApp = {NoAppIcon = NO;};
WSoundServer = {Icon = sound.#extension#;};
panel.Panel = {NoAppIcon = YES;}; panel.Panel = {NoAppIcon = YES;};
gmc.Gmc = {NoAppIcon = YES;}; gmc.Gmc = {NoAppIcon = YES;};
XTerm = {Icon = Terminal.#extension#;}; XTerm = {Icon = Terminal.#extension#;};

View File

@@ -99,9 +99,8 @@
MiniaturizeKey = "Mod1+M"; MiniaturizeKey = "Mod1+M";
NextWorkspaceLayerKey = None; NextWorkspaceLayerKey = None;
PrevWorkspaceLayerKey = None; PrevWorkspaceLayerKey = None;
ClipLowerKey = None;
ClipRaiseKey = None;
ConstrainWindowSize = NO; ConstrainWindowSize = NO;
DockRaiseLowerKey = None;
ClipRaiseLowerKey = None; ClipRaiseLowerKey = None;
TitleJustify = center; TitleJustify = center;
WindowTitleFont = "Sans:bold:pixelsize=12"; WindowTitleFont = "Sans:bold:pixelsize=12";

View File

@@ -1,3 +0,0 @@
Makefile Makefile.in
Default.iconset
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -35,7 +35,6 @@ defsdata_DATA = \
ps.tiff\ ps.tiff\
real.tiff\ real.tiff\
sgiterm.tiff\ sgiterm.tiff\
sound.tiff\
staroffice2.tiff\ staroffice2.tiff\
timer.tiff\ timer.tiff\
wilber.tiff\ wilber.tiff\
@@ -61,7 +60,6 @@ defsdata_DATA = \
ps.xpm\ ps.xpm\
real.xpm\ real.xpm\
sgiterm.xpm\ sgiterm.xpm\
sound.xpm\
staroffice2.xpm\ staroffice2.xpm\
timer.xpm\ timer.xpm\
wilber.xpm\ wilber.xpm\

Binary file not shown.

View File

@@ -1,263 +0,0 @@
/* XPM */
static char * image_name[] = {
"48 48 212 2",
" c #618561856185",
". c #FFFFFFFFFFFF",
"X c #D75CD34CDF7D",
"o c #CF3CCF3CDF7D",
"O c #CF3CCB2BDF7D",
"+ c #C71BC30BDF7D",
"@ c #BEFBBEFBDF7D",
"# c #BEFBBAEADF7D",
"$ c #B6DAB6DADF7D",
"% c #B6DAB2CADF7D",
"& c #AEBAAEBADF7D",
"* c #AEBAAAAADF7D",
"= c #A699A699DF7D",
"- c #A699A289DF7D",
"; c #9E799E79DF7D",
": c #9E799A69DF7D",
"> c #96589658DF7D",
", c #96589248DF7D",
"< c #8E388E38DF7D",
"1 c #8E388A28DF7D",
"2 c #86178617DF7D",
"3 c #C71BC30BCF3C",
"4 c #596555555965",
"5 c #492449244924",
"6 c #492445144103",
"7 c #410341034103",
"8 c #41033CF34103",
"9 c #41033CF338E3",
"0 c #38E338E338E3",
"q c #410338E34103",
"w c #38E334D338E3",
"e c #30C230C230C2",
"r c #61855D7579E7",
"t c #A699A289D75C",
"y c #69A669A669A6",
"u c #20811C711861",
"i c #208118611861",
"p c #208114511861",
"a c #30C22CB228A2",
"s c #86178617AEBA",
"d c #28A21C712081",
"f c #5965596571C6",
"g c #86178207DF7D",
"h c #BEFBBAEAC71B",
"j c #38E334D330C2",
"k c #410338E338E3",
"l c #38E330C230C2",
"z c #28A228A228A2",
"x c #410334D328A2",
"c c #79E771C64103",
"v c #C71BC30B9658",
"b c #E79DDB6C6185",
"n c #F7DEEBAD5144",
"m c #186114511040",
"M c #28A220812081",
"N c #186118611861",
"B c #186114511861",
"V c #28A224921040",
"C c #861779E728A2",
"Z c #AEBAA69938E3",
"A c #E79DDB6C4103",
"S c #FFFFF3CE4924",
"D c #79E77DF7DF7D",
"F c #B6DAB2CAC71B",
"G c #6185596528A2",
"H c #EFBEE79D4924",
"J c #C71BBEFB79E7",
"K c #B6DAAAAAAEBA",
"L c #CF3CC71B4103",
"P c #8E38861738E3",
"I c #61854D342081",
"U c #96589658CF3C",
"Y c #79E779E7DF7D",
"T c #104014511040",
"R c #596555552081",
"E c #20811C712081",
"W c #30C22CB238E3",
"Q c #C71BBEFB9658",
"! c #186110401040",
"~ c #28A2249228A2",
"^ c #514449244924",
"/ c #51444D345144",
"( c #8E388617C71B",
") c #BEFBB6DA9E79",
"_ c #AEBAAAAAC71B",
"` c #618559655965",
"' c #596555551861",
"] c #861775D62081",
"[ c #AEBAA289AEBA",
"{ c #71C675D6DF7D",
"} c #18610C301040",
"| c #492445144924",
" . c #10400C301040",
".. c #28A2249230C2",
"X. c #BEFBB2CA9658",
"o. c #71C669A669A6",
"O. c #8E3886178E38",
"+. c #D75CCF3C79E7",
"@. c #EFBEE38D5965",
"#. c #E79DDF7D6185",
"$. c #71C671C6DF7D",
"%. c #104008201040",
"&. c #861782078617",
"*. c #965879E779E7",
"=. c #30C22CB230C2",
"-. c #38E330C20820",
";. c #D75CBEFB30C2",
":. c #71C675D6D75C",
">. c #A699A289AEBA",
",. c #104010401040",
"<. c #38E32CB21040",
"1. c #D75CCF3C4924",
"2. c #F7DEEFBE4924",
"3. c #8E386DB628A2",
"4. c #EFBECB2B38E3",
"5. c #8E387DF7AEBA",
"6. c #B6DAAEBA9658",
"7. c #69A66DB6DF7D",
"8. c #FFFFD75C2081",
"9. c #79E771C65144",
"0. c #86178617D75C",
"q. c #A6999E79AEBA",
"w. c #A699A699C71B",
"e. c #71C6659538E3",
"r. c #69A669A6DF7D",
"t. c #104008200820",
"y. c #514451445144",
"u. c #596559655965",
"i. c #28A2249238E3",
"p. c #9E79861779E7",
"a. c #61856595DF7D",
"s. c #61855D7569A6",
"d. c #71C671C679E7",
"f. c #79E775D679E7",
"g. c #79E779E7AEBA",
"h. c #71C66DB671C6",
"j. c #28A2208128A2",
"k. c #861782078E38",
"l. c #DF7DCF3C5144",
"z. c #79E775D69658",
"x. c #61856185DF7D",
"c. c #A699A289CF3C",
"v. c #79E779E78617",
"b. c #10400C300820",
"n. c #69A66DB6CF3C",
"m. c #9E799248AEBA",
"M. c #D75CCF3C71C6",
"N. c #86177DF78617",
"B. c #71C671C6C71B",
"V. c #AEBAAAAA9658",
"C. c #E79DDB6C5965",
"Z. c #59655D75DF7D",
"A. c #208120812081",
"S. c #9E799A69A699",
"D. c #86177DF78E38",
"F. c #6185596569A6",
"G. c #38E330C228A2",
"H. c #9E7996584103",
"J. c #69A66595D75C",
"K. c #A699A2899658",
"L. c #59655965DF7D",
"P. c #9E799E79CF3C",
"I. c #69A6618530C2",
"U. c #AEBAA2899658",
"Y. c #DF7DD34C4924",
"T. c #6185618569A6",
"R. c #96589248AEBA",
"E. c #51445555DF7D",
"W. c #596555556185",
"Q. c #965896589E79",
"!. c #8E388A289658",
"~. c #69A669A671C6",
"^. c #B6DAAAAA5965",
"/. c #96588E38AEBA",
"(. c #A6999E799E79",
"). c #49244D345144",
"_. c #861786179658",
"`. c #492445145965",
"'. c #69A6659569A6",
"]. c #79E771C638E3",
"[. c #51445144DF7D",
"{. c #AEBAA28971C6",
"}. c #96588A2838E3",
"|. c #AEBA9E799658",
" X c #861771C69E79",
".X c #61856595D75C",
"XX c #71C66595AEBA",
"oX c #BEFB8E381861",
"OX c #49244D34DF7D",
"+X c #A699A699AEBA",
"@X c #79E775D628A2",
"#X c #DF7DD34C69A6",
"$X c #61855D75BEFB",
"%X c #61855D75AEBA",
"&X c #71C6659528A2",
"*X c #61856595AEBA",
"=X c #59655965D75C",
"-X c #59655144C71B",
";X c #61854D3430C2",
":X c #69A64D340820",
">X c #30C22CB24103",
",X c #69A665959658",
"<X c #49244924DF7D",
"1X c #D75CCB2B4103",
"2X c #49244514DF7D",
"3X c #49244D346185",
"4X c #104004100820",
"5X c #51444D346185",
"6X c #41034103DF7D",
"7X c #71C675D6BEFB",
"8X c #71C671C6CF3C",
"9X c #41033CF3DF7D",
" . ",
" X X X X o o O O O + + + + @ @ @ # # $ $ % % % & & * * * = = - - ; ; ; : : > > , , , < < 1 1 . ",
" X X X o o O O O + + + + @ @ @ # # $ $ % % % & & * * * = = - - - ; ; : : > > , , , < < 1 1 2 . ",
" X X o 3 4 5 5 6 7 8 8 9 0 9 0 0 0 q 0 0 0 0 0 0 w e r t - - ; ; ; : : > > > , , < < 1 1 2 2 . ",
" X o X y u i i i i i p i i i i i i i i i i i i i i i a s - - ; ; : : > > , , , < < 1 1 2 2 2 . ",
" o o 3 u u i i i i i p u i i u i u u u u i u i i u u d f - ; ; : : > > , , , < < 1 1 2 2 2 g . ",
" o O h j 0 0 9 6 9 7 9 0 k j a l j e a a a e e a a z x c v b n : : > , , , < < 1 1 2 2 2 g g . ",
" O O h m d M N B p B B N i i i i p i i i i d V C Z A S S S S S > > , , , < < 1 1 2 2 2 g g D . ",
" O O F m 8 7 N p B N N N i i i i i i i i i i G S S S H J v K v > , , , < < 1 1 2 2 2 g g D D . ",
" O + F m j l m N N N N B B N i N i i i N i i G L P I i a U > v > , , < < 1 1 2 2 2 g g D D Y . ",
" + + F T m T m B i N p N m p M u i B N N N N R C i E i W > > Q , , < < 1 1 2 2 2 g g D D Y Y . ",
" + + F m m m m m ! m B m ~ 6 ^ / 5 ~ B B N B R C N N i W > , Q , < < ( ) 2 2 2 g g D D Y Y Y . ",
" + + _ T ! m ! m m m m d 9 ^ 4 ` ^ 8 ~ m m m ' ] N N i W , , Q < < < [ S 2 2 g g D D Y Y Y { . ",
" + @ _ } m ! m m m ! T 9 6 ^ 9 e ^ 5 | T ! m ' ] ! N N W , , Q < 1 1 [ b 2 g g D D Y Y Y { { . ",
" @ @ _ T ! .! ! ! ! T 6 6 ^ 0 j j / 5 ! ! m ' ] m m N .., < Q 1 1 1 [ X.g g D D Y Y Y { { { . ",
" @ @ _ .! ! ! m .m } 6 6 o.K O./ | | m m m ' ] T m m I +.@.#.1 2 2 [ X.g D D Y Y Y { { $.$.. ",
" @ # _ T m .! .! m %.z ^ 4 &.*.^ ^ =.m B m G ] i m -.S S S ;.:.1 g >.X.D D Y Y Y { { { $.$.. ",
" # # _ .m .m m .m } T a ^ ^ ^ 6 a ,.<.1.2.S 3.9 } V 2.S 4.5.2 2 g >.6.D Y Y Y { { $.$.$.7.. ",
" # $ _ . . . . .,.} } } ,.u l l d m m L S S 8.9.6 T m a ( 0.g g g g q.6.Y Y Y { { { $.$.7.7.. ",
" $ $ w. .} %. .} ,. . .} } } } .%.m m ] A 4.e.` e m m ..2 2 2 g g D q.6.Y Y { { $.$.$.7.7.r.. ",
" $ % w. .t. . .,.,.} t.} z y. / w N .T . .T T ! m ..2 2 g g D D [ 6.Y { { { $.$.7.7.r.r.. ",
" % % w.t. .t.} T . .z 4 ^ y.u.u.` / u.y.u } m m .! m i.2 g g 5.b 2.S p.{ { $.$.$.7.7.r.r.a.. ",
" % % w.t. .%. . .} w 5 s.&.&.d.y d.&.f.4 4 z .m m .m ..g g D b S S 8.g.{ { $.$.7.7.r.r.a.a.. ",
" % & w.t.%. .t.} e ^ &.h.l ~ M j.d j.7 k.y 7 i T ,. .m ..g D D X.@.l.z.{ $.$.$.7.7.r.r.r.a.a.. ",
" & & w.t.} %.t.z 8 k.^ a z z z ~ ~ j.~ u y y 0 B } ! ,...D D Y Y Y Y { $.$.$.7.7.r.r.a.a.a.x.. ",
" & * c.t. .t.N j v./ =.a a ~ M M M j.j.~ M d.5 =.b.m m ..D Y Y Y { { { $.$.7.n.m.6.M.n a.x.x.. ",
" * * c.} .t.z 5 h.l =.a ~ M l 9 ~ M j.~ ~ j.N.9 N m ...Y Y Y { { { B.V.v C.S S S S S x.x.Z.. ",
" * * c.} .T w d.8 l =.a A.=.k.S.v.M j.~ z u h.7 A.} ,...Y Y { { { $.m.S S S n M.V.5.V.x.Z.Z.. ",
" * = c.} .i 8 N.a =.e e i =.s.D.F.~ d j.~ G.H. a } ,...Y { { { $.$.m.b V.5.J.a.a.x.K.x.Z.L.. ",
" = = P.} .u 6 v.=.=.W =.B u e 8 =.i M ~ ~ I.S y l } m ..{ { $.$.$.7.m.U.r.a.a.a.x.x.K.Z.Z.L.. ",
" = - c.} } E 6 k.W e 0 q ~ B M j.i E ~ ~ ~ I.Y.T.l ,.T ..{ { $.$.7.7.m.U.r.a.a.x.x.x.K.L.L.L.. ",
" - - P.T %.i | D.e q 8 | 4 8 m ,.~ 0 =.a z I.H.u.a T ! ..$.$.$.7.7.r.R.U.a.a.x.x.Z.Z.K.L.L.E.. ",
" - - P.T m B 8 d.4 8 | / W.v.Q.!.~.7 q e a G ^.8 M m m ..$.$.7.7.r.r./.U.a.x.x.Z.Z.L.(.L.E.E.. ",
" - ; P.T ! } =.)._.`./ 4 '.~.~.~.W.| 8 w j ].^.l N m m ..$.7.7.r.r.a./.U.x.x.Z.Z.Z.L.(.E.E.[.. ",
" ; ; P.T m } d 5 v.d.W.F.y ~.'.'.s./ 6 8 q {.}.a ! B m i.7.7.r.r.a.a./.|.x.Z.Z. XJ C.b E.[.[.. ",
" ; : P.m m m } =.0 !.!.d.~.'.'.s.F.W.).).z.H.}.i N N B i.7.r.r.r.a..XR.|.Z.Z.XXS S S oX[.[.OX. ",
" : : P.m ! m } ! e 9 f.+X!.v.v.h.h.~.v._.4 e.@Xm m m m i.r.r.a.XX#X2.S *.Z.L.$X2.S 4.%X[.OXOX. ",
" : > U . .t.} ,.p j j 6 N.S.S.R.S._.'.6 0 &X] m m m m i.r.r.a.b S S 8.*XL.L.L.=X-X[.[.OXOXOX. ",
" > > U ,.%.t.t. .%.m z k a j 6 ^ 7 7 ;XL 2.S :XT ! ! T >Xa.a.a.|.@.l.,XL.L.L.E.E.[.[.OXOXOX<X. ",
" > , P. .%.%.%.t.} .} B u a l l a A.1XS S 8.V ! m ! ! `.a.a.x.x.Z.Z.Z.L.L.E.E.[.[.OXOXOX<X<X. ",
" , , U T t.%.t.t.%.} t.} } t.t.} t.} @XA ;.-. .m ! ! m `.a.x.x.Z.Z.L.L.L.E.E.[.[.OXOXOX<X<X2X. ",
" , , U } %.t.%.%.t.t.t.t.%.} T } } } b.b.} ,.! .! m m 3Xx.x.Z.Z.L.L.L.E.E.[.[.OXOXOX<X<X2X2X. ",
" , < U ! m ! t.t.t.t.4Xt.%.%.%.} t. .b.T m ! ! ! p p m 5Xx.Z.Z.L.L.L.E.E.[.[.OXOXOX<X<X2X2X6X. ",
" < < U } i ! b.t.t.%.t.%. .%.t.%.%.t.t.} . .! m i ! p 5XZ.Z.Z.L.L.E.E.[.[.OXOXOX<X<X2X2X6X6X. ",
" < 1 U m } } t.t.4X4Xt.4X4Xt.t.t.} %.} } } ! .p } ! T 5XZ.L.L.L.E.E.[.[.OXOXOX<X<X2X2X6X6X6X. ",
" 1 1 < 7X7X7X7X7X7X7X7X7XB.7XB.B.B.B.8XB.8X8X8X8X8X8X8X$.Z.L.L.E.E.[.[.OXOXOX<X<X2X2X6X6X6X9X. ",
" 1 2 2 2 g g g D Y Y { { { $.$.$.$.7.r.r.r.a.a.x.x.Z.Z.L.L.L.E.E.[.[.OXOXOX<X<X2X2X6X6X6X9X9X. ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -1,2 +0,0 @@
Makefile Makefile.in
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -0,0 +1,11 @@
#include "wmmacros"
Appearance MENU
"Background" OPEN_MENU background.menu
"Styles" OPEN_MENU -noext LOCAL_STYLES_DIR STYLES_DIR USER_STYLES_DIR WITH setstyle
"Themes" OPEN_MENU -noext LOCAL_THEMES_DIR THEMES_DIR USER_THEMES_DIR WITH setstyle
"Icon Sets" OPEN_MENU -noext LOCAL_ICON_SETS_DIR ICON_SETS_DIR USER_ICON_SETS_DIR WITH seticons
"Save IconSet" EXEC geticonset USER_ICON_SETS_DIR/"%a(IconSet name)"
"Save Theme" EXEC getstyle -t USER_THEMES_DIR/"%a(Theme name)"
Appearance END

View File

@@ -0,0 +1,28 @@
#include "wmmacros"
"Background" MENU
"Solid" MENU
"Black" WS_BACK '(solid, black)'
"Blue" WS_BACK '(solid, "#505075")'
"Indigo" WS_BACK '(solid, "#243e6c")'
"Deep Blue" WS_BACK '(solid, "#180090")'
"Purple" WS_BACK '(solid, "#554466")'
"Wheat" WS_BACK '(solid, "wheat4")'
"Dark Gray" WS_BACK '(solid, "#333340")'
"Wine" WS_BACK '(solid, "#400020")'
"Solid" END
"Gradient" MENU
"Sunset" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'
"Sky" WS_BACK '(vgradient, blue4, white)'
"Blue Shades" WS_BACK '(vgradient, "#7080a5", "#101020")'
"Indigo Shades" WS_BACK '(vgradient, "#746ebc", "#242e4c")'
"Purple Shades" WS_BACK '(vgradient, "#654c66", "#151426")'
"Wheat Shades" WS_BACK '(vgradient, "#a09060", "#302010")'
"Grey Shades" WS_BACK '(vgradient, "#636380", "#131318")'
"Wine Shades" WS_BACK '(vgradient, "#600040", "#180010")'
"Gradient" END
"Images" MENU
"Tiled" OPEN_MENU LOCAL_BACKGROUNDS_DIR BACKGROUNDS_DIR USER_BACKGROUNDS_DIR WITH wmsetbg -u -t
"Scaled" OPEN_MENU LOCAL_BACKGROUNDS_DIR BACKGROUNDS_DIR USER_BACKGROUNDS_DIR WITH wmsetbg -u -s
"Image" END
"Background" END

View File

@@ -15,7 +15,7 @@ AC_INIT(src/WindowMaker.h)
AM_INIT_AUTOMAKE(WindowMaker, 0.93.0-pre) AM_INIT_AUTOMAKE(WindowMaker, 0.94.0-crm)
AC_PROG_LIBTOOL AC_PROG_LIBTOOL
@@ -85,7 +85,6 @@ dnl ============================
dnl not used anywhere dnl not used anywhere
dnl AC_FUNC_MEMCMP dnl AC_FUNC_MEMCMP
AC_FUNC_VPRINTF AC_FUNC_VPRINTF
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \ AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp \
setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \ setsid atexit mallinfo mkstemp snprintf vsnprintf asprintf \
vasprintf) vasprintf)
@@ -190,7 +189,17 @@ dnl -----------------------
# until we fix it, leave it disabled # until we fix it, leave it disabled
asm_support=no asm_support=no
mmx_support=no mmx_support=no
if test "$ac_cv_prog_gcc" = yes; then
check_for_mmx_support=yes
AC_ARG_ENABLE(mmx,
[ --disable-mmx disable compilation of MMX inline assembly ],
[if test x$enableval != xyes; then
check_for_mmx_support=no
fi])
if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then
case $host_cpu in
*i?86*)
# gcc-3.3 or newer complains about some of our stuff without this # gcc-3.3 or newer complains about some of our stuff without this
NOSTRICTALIASING="-fno-strict-aliasing" NOSTRICTALIASING="-fno-strict-aliasing"
@@ -218,6 +227,8 @@ if test "$ac_cv_prog_gcc" = yes; then
mmx_support=yes mmx_support=yes
fi fi
fi fi
;;
esac
fi fi
AC_SUBST(NOSTRICTALIASING) AC_SUBST(NOSTRICTALIASING)
@@ -281,7 +292,7 @@ dnl ==================
dnl List of supported locales dnl List of supported locales
dnl ------------------------- dnl -------------------------
supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW" supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW"
supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW" supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
supported_wings_locales="bg ca cs de fr sk" supported_wings_locales="bg ca cs de fr sk"
@@ -429,7 +440,7 @@ XCFLAGS="$X_CFLAGS"
XLFLAGS="$X_LIBS" XLFLAGS="$X_LIBS"
XLIBS="-lX11 $X_EXTRA_LIBS" XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
lib_search_path="$lib_search_path $XLFLAGS" lib_search_path="$lib_search_path $XLFLAGS"
@@ -976,7 +987,7 @@ cat <<EOF >get-wings-flags
WCFLAGS="$inc_search_path" WCFLAGS="$inc_search_path"
WLFLAGS="$lib_search_path" WLFLAGS="$lib_search_path"
WLIBS="-lWINGs -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $NETLIBS $INTLIBS" WLIBS="-lWINGs -lWUtil -lwraster $GFXLIBS $XFTLIBS $XLIBS -lm $NETLIBS $INTLIBS"
usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#" usage="Usage: get-wings-flags #lp#--cflags#rp# #lp#--ldflags#rp# #lp#--libs#rp#"

View File

@@ -1,3 +0,0 @@
Makefile Makefile.in
WindowMaker.spec
.psrc .inslog2 tca.map tca.log pchdir *.rpt

View File

@@ -2,27 +2,6 @@
This directory contains some patches contributed by ppl. Do NOT mail the This directory contains some patches contributed by ppl. Do NOT mail the
wmaker developers for any problems with them. wmaker developers for any problems with them.
*** single_click.diff
allows single click in dock
for version: 0.80.2+
author:
Sebastien Bauer <seb_bauer@bigfoot.com>
John Morrissey <jwm@horde.net>
updated for Window Maker 0.65.0 by:
Daniel Richard G. <skunk@graphics.lcs.mit.edu>
updated for Window Maker 0.80.2 by:
Martial Daumas <martial@nasgaia.org>
update for 0.80.2+ by:
steve lion <steve.lion@verizon.net> and vlaad
*** workspace_flip.patch *** workspace_flip.patch
Allows flipping across workspaces by putting the Allows flipping across workspaces by putting the

View File

@@ -1,201 +0,0 @@
This patch allows dock icons, appicons and miniwindows to be activated with
a single-click (as opposed to a double-click). Great for weary fingers!
Index: WPrefs.app/Expert.c
===================================================================
RCS file: /cvsroot/wm/WPrefs.app/Expert.c,v
retrieving revision 1.25
diff -u -r1.25 Expert.c
--- WPrefs.app/Expert.c 23 Oct 2004 03:30:04 -0000 1.25
+++ WPrefs.app/Expert.c 23 Oct 2004 04:16:07 -0000
@@ -54,6 +54,7 @@
WMSetButtonSelected(panel->swi[4], GetBoolForKey("DontConfirmKill"));
WMSetButtonSelected(panel->swi[5], GetBoolForKey("DisableBlinking"));
WMSetButtonSelected(panel->swi[6], GetBoolForKey("AntialiasedText"));
+ WMSetButtonSelected(panel->swi[7], GetBoolForKey("SingleClickLaunch"));
}
@@ -66,7 +67,7 @@
panel->box = WMCreateBox(panel->parent);
WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2);
- for (i=0; i<7; i++) {
+ for (i=0; i<8; i++) {
panel->swi[i] = WMCreateSwitchButton(panel->box);
WMResizeWidget(panel->swi[i], FRAME_WIDTH-40, 25);
WMMoveWidget(panel->swi[i], 20, 20+i*25);
@@ -79,6 +80,7 @@
WMSetButtonText(panel->swi[4], _("Disable confirmation panel for the Kill command."));
WMSetButtonText(panel->swi[5], _("Disable selection animation for selected icons."));
WMSetButtonText(panel->swi[6], _("Smooth font edges (needs restart)."));
+ WMSetButtonText(panel->swi[7], _("Launch applications and restore windows with a single click."));
WMSetButtonEnabled(panel->swi[6], True);
@@ -103,6 +105,7 @@
SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "DontConfirmKill");
SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DisableBlinking");
SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "AntialiasedText");
+ SetBoolForKey(WMGetButtonSelected(panel->swi[7]), "SingleClickLaunch");
}
Index: src/WindowMaker.h
===================================================================
RCS file: /cvsroot/wm/src/WindowMaker.h,v
retrieving revision 1.60
diff -u -r1.60 WindowMaker.h
--- src/WindowMaker.h 18 Oct 2004 01:30:02 -0000 1.60
+++ src/WindowMaker.h 23 Oct 2004 04:16:07 -0000
@@ -472,6 +472,9 @@
unsigned int workspace_border_size; /* Size in pixels of the workspace border */
char workspace_border_position; /* Where to leave a workspace border */
+ /* single click to lauch applications */
+ char single_click;
+
struct {
unsigned int nodock:1; /* don't display the dock */
unsigned int noclip:1; /* don't display the clip */
Index: src/appicon.c
===================================================================
RCS file: /cvsroot/wm/src/appicon.c,v
retrieving revision 1.50
diff -u -r1.50 appicon.c
--- src/appicon.c 13 Oct 2004 05:09:08 -0000 1.50
+++ src/appicon.c 23 Oct 2004 04:16:08 -0000
@@ -590,6 +590,7 @@
Bool movingSingle = False;
int oldX = x;
int oldY = y;
+ Bool hasMoved = False;
if (aicon->editing || WCHECK_STATE(WSTATE_MODAL))
return;
@@ -665,6 +666,7 @@
break;
case MotionNotify:
+ hasMoved = True;
if (!grabbed) {
if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD
|| abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) {
@@ -802,6 +804,9 @@
if (wPreferences.auto_arrange_icons)
wArrangeIcons(scr, True);
+ if (wPreferences.single_click && !hasMoved)
+ iconDblClick(desc, event);
+
done = 1;
break;
}
Index: src/defaults.c
===================================================================
RCS file: /cvsroot/wm/src/defaults.c,v
retrieving revision 1.90
diff -u -r1.90 defaults.c
--- src/defaults.c 22 Oct 2004 23:39:11 -0000 1.90
+++ src/defaults.c 23 Oct 2004 04:16:08 -0000
@@ -562,6 +562,9 @@
{"DisableBlinking", "NO", NULL,
&wPreferences.dont_blink, getBool, NULL
},
+ {"SingleClickLaunch", "NO", NULL,
+ &wPreferences.single_click, getBool, NULL
+ },
/* style options */
{"MenuStyle", "normal", seMenuStyles,
&wPreferences.menu_style, getEnum, setMenuStyle
Index: src/dock.c
===================================================================
RCS file: /cvsroot/wm/src/dock.c,v
retrieving revision 1.91
diff -u -r1.91 dock.c
--- src/dock.c 23 Oct 2004 03:30:04 -0000 1.91
+++ src/dock.c 23 Oct 2004 04:16:09 -0000
@@ -3758,7 +3758,7 @@
-static void
+static Bool
handleIconMove(WDock *dock, WAppIcon *aicon, XEvent *event)
{
WScreen *scr = dock->screen_ptr;
@@ -3776,6 +3776,7 @@
Bool docked;
int superfluous = wPreferences.superfluous; /* we catch it to avoid problems */
int omnipresent = aicon->omnipresent; /* this must be cached!!! */
+ Bool hasMoved = False;
if (wPreferences.flags.noupdates)
@@ -3828,6 +3829,7 @@
break;
case MotionNotify:
+ hasMoved = True;
if (!grabbed) {
if (abs(ofs_x-ev.xmotion.x)>=MOVE_THRESHOLD
|| abs(ofs_y-ev.xmotion.y)>=MOVE_THRESHOLD) {
@@ -3977,9 +3979,11 @@
#ifdef DEBUG
puts("End icon move");
#endif
- return;
+ return hasMoved;
}
}
+
+ return False; /* never reached */
}
@@ -4116,8 +4120,11 @@
handleClipChangeWorkspace(scr, event);
else
handleDockMove(dock, aicon, event);
- } else
- handleIconMove(dock, aicon, event);
+ } else {
+ Bool hasMoved = handleIconMove(dock, aicon, event);
+ if (wPreferences.single_click && !hasMoved)
+ iconDblClick(desc, event);
+ }
} else if (event->xbutton.button==Button2 && dock->type==WM_CLIP &&
aicon==scr->clip_icon) {
Index: src/icon.c
===================================================================
RCS file: /cvsroot/wm/src/icon.c,v
retrieving revision 1.27
diff -u -r1.27 icon.c
--- src/icon.c 16 Oct 2004 22:05:04 -0000 1.27
+++ src/icon.c 23 Oct 2004 04:16:10 -0000
@@ -891,6 +891,7 @@
int dx=event->xbutton.x, dy=event->xbutton.y;
int grabbed=0;
int clickButton=event->xbutton.button;
+ Bool hasMoved = False;
if (WCHECK_STATE(WSTATE_MODAL))
return;
@@ -942,6 +943,7 @@
break;
case MotionNotify:
+ hasMoved = True;
if (!grabbed) {
if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD
|| abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) {
@@ -979,6 +981,8 @@
if (wPreferences.auto_arrange_icons)
wArrangeIcons(wwin->screen_ptr, True);
+ if (wPreferences.single_click && !hasMoved)
+ miniwindowDblClick(desc, event);
return;
}

26
debian/Debian.theme vendored Normal file
View File

@@ -0,0 +1,26 @@
{
TitleJustify = left;
WindowTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
MenuTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
MenuTextFont = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*";
IconTitleFont = "-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*";
ClipTitleFont = "-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*";
DisplayFont = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*";
HighlightColor = white;
HighlightTextColor = black;
ClipTitleColor = black;
CClipTitleColor = "rgb:61/61/61";
FTitleColor = white;
PTitleColor = white;
UTitleColor = black;
FTitleBack = (hgradient, "rgb:50/5a/5e", "rgb:20/2a/2e");
PTitleBack = (hgradient, "rgb:51/50/55", "rgb:80/80/80");
UTitleBack = (hgradient, "rgb:c2/c0/c5", "rgb:82/80/85");
MenuTitleColor = white;
MenuTextColor = black;
MenuDisabledColor = gray40;
MenuTitleBack = (hgradient, "rgb:50/5a/5e", "rgb:20/2a/2e");
MenuTextBack = (hgradient, "rgb:c2/c0/c5", "rgb:82/80/85");
WorkspaceBack = (spixmap, debian.tiff, "rgb:8c/81/65");
IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61");
}

20
debian/Debian.theme.txt vendored Normal file
View File

@@ -0,0 +1,20 @@
Begin3
Title: Debian
Version: 1.0
Entered-date: June 5, 1999
Description: Debian swirl theme for WindowMaker
This theme was inspired by the new Debian logo.
The background art is derived from copyright-free
stock artwork. GIMP was used for the imaging.
Keywords: Wmaker, theme, debian, swirl
Author: gfburke@earthlink.net (Gary Burke)
Maintained-by: gfburke@earthlink.net (Gary Burke)
Primary-site: wm.themes.org
Debian.tar.gz
186123 Backgrounds/Debian
1117 Themes/Debian
Platforms: WindowMaker, XFree86 window manager
Copying-policy: GPL
End

255
debian/README.Debian vendored Normal file
View File

@@ -0,0 +1,255 @@
Window Maker for DEBIAN
=======================
This is Debian GNU/Linux's prepackaged version of Window Maker, yet
another window manager, written mostly from scratch by Alfredo Kojima
in an attempt to provide as much of the useful OpenStep functionality
as possible under X11. It is the natural step after AfterStep.
There are some changes in the paths, added support for Debian menu
system, improved user configuration (from the sysadmin point of view).
To run Window Maker put this at the end of ~/.xsession:
exec /usr/bin/wmaker
and remove other exec lines if present. I have done my best to
overcome certain glitches and gotchas regarding Window Maker
installation. /usr/bin/wmaker is a shell script that tries to
make sure things are properly set up. Take a look at it to see what's
going on. Please read wmaker(1x).
Other sources for documentation
-------------------------------
* The Window Maker web site
http://www.windowmaker.info/
You can find all sorts of information here. It's kept very up to
date.
* The Window Maker manual written by Alfredo Kojima
ftp://ftp.windowmaker.info/pub/wmaker/docs/
Please note the manual documents version 0.10.x of Window Maker, and
many features/changes have occured since then. To find out what has
changed, please read file:/usr/share/doc/wmaker/NEWS.gz and
file:/usr/share/doc/wmaker/changelog.gz. A new version of this manual is
being developed. If you want to contribute to the manual please
contact wm-user@windowmaker.info
* The Window Maker mailing list
http://www.windowmaker.info/lists.html
There's a Window Maker mailing list. There you can ask questions about
Window Maker and *related* applications (s/n is _way_ low nowadays
due to unrelated discussions).
Please read the archives before asking!
* The Window Maker FAQ
http://www.dpo.uab.edu/~grapeape/wmfaq.html
This is NOT file:/usr/share/doc/wmaker/FAQ.gz, but another document.
It contains information about several aspects of Window Maker that are
not covered on the FAQ included alongside with this Readme.
* The Window Maker Configuration documents
ftp://ftp.windowmaker.info/pub/wmaker/docs/WindowMaker-*-Config.txt.gz
This documents the files found on ~/GNUstep/Defaults/. It's kept as
up to date as possible.
As a sidenote, I can't package these files with wmaker because they
don't have a copyright statement that permits redistribution.
IF YOU ARE UPGRADING FROM 0.6.3 or earlier
------------------------------------------
* The directory name has changed form gnustep to GNUstep
* The format of the style files and Window Maker file has
changed.
IF YOU ARE UPGRADING FROM 0.14.1 or earlier (but newer than 0.6.3)
------------------------------------------------------------------
* The Fiend has been renamed to Clip (in order to avoid hurting
certain people's feelings... does that ring a bell or
what?!?). Look up "Fiend" in the dictionary... therefore, every
keyword on Defaults/WindowMaker that says "Fiend" has to be
replaced by "Clip". The installation package tries to fix this
globally, i.e, both in the system wide files and the user's files.
* The ~/GNUstep/Library/WindowMaker/Style directory is no longer
called that, but "Styles" instead. Update accordingly. The wrapper
script tries to be smart about this...
IF YOU ARE UPGRADING FROM 0.15.0 or earlier
-------------------------------------------
* WindowPlaceOrigin syntax changed. The old was:
WindowPlaceOrigin = "64, 64"
The new one is:
WindowPlaceOrigin = (64, 64)
The installation package also fixes this.
IF YOU ARE UPGRADING FROM 0.17.3 or earlier
-------------------------------------------
* Please note there's a new Icons directory under ~/GNUstep/Library,
and a new key IconPath. Read the section on paths.
IF YOU ARE UPGRADING FROM 0.17.5 or earlier
-------------------------------------------
* Pandora's Box has been opened: Beware that some features of recent
releases may not be compatible with those of 0.17.5; PLEASE read
the NEWS file and the ChangeLog. If you don't have problems
upgrading, consider it a gift from the gods. PLEASE NOTE: WPrefs
is a work in progress. SAVE YOUR CONFIGURATION. READ THE READMEs.
* Please note that WPrefs' Menu Guru REQUIERES a menu in "Property
List" format to work properly. It's very likely that you have an
old format menu. There's a script called wm-oldmenu2new alongside
this file that converts your menu to the new format. It's a hack,
it won't be installed anywhere else.
Debian specific notes
---------------------
Debian prepackaged version of Window Maker will search
~/GNUstep/Library/WindowMaker and etc/X11/WindowMaker (in that order)
for its configuration files. It will read defaults from files in
~/GNUstep/Defaults and /etc/GNUstep/Defaults. The files in the
WindowMaker directories are preprocessed using cpp. It will read both
WindowMaker directories searching for #included files.
WindowMaker makes a (little) difference between Pixmaps and Icons, and
there are two configurable options for setting the paths Window Maker
would search Pixmaps and Icons in, namely, PixmapPath and
IconPath. The compiled in defaults are:
PixmapPath = (
"~/pixmaps",
"~/GNUstep/Library/WindowMaker/Pixmaps",
"/usr/local/share/WindowMaker/Pixmaps",
"/usr/share/WindowMaker/Pixmaps",
"/usr/local/share/pixmaps",
"/usr/share/pixmaps",
"/usr/X11R6/include/X11/pixmaps"
);
IconPath = (
"~/pixmaps",
"~/GNUstep/Library/Icons",
"/usr/local/share/WindowMaker/Icons",
"/usr/share/WindowMaker/Icons",
"/usr/local/share/icons",
"/usr/share/icons",
"/usr/X11R6/include/X11/pixmaps"
);
Please note that the internal default doesn't include the "Pixmaps"
paths anymore, but you are free to modify your Window Maker file in any
way you see fit. Please note that the /usr/X11R6/include/X11/pixmaps
is not going to be supported in future releases.
Other Window Maker packages should put pixmaps in
/usr/share/WindowMaker/Pixmaps and icons in
/usr/share/WindowMaker/Icons, ONLY.
The structure Window Maker tries to use is like this:
GNUstep
+.AppInfo
+Defaults
+Library
+WindowMaker
+ Backgrounds [*]
+ IconSets [*]
+ Pixmaps
+ Sounds
+ Styles [*]
+ Themes [*]
+Icons
Please note Icons are not considered Window Maker-only resources.
[*] these directories are OPEN_MENU'ed WITH the right
application. That means you can put the *file* "Great Debian Theme" on
Themes, it will show up in the menu, and will be opened using
setstyle, which installs it, i.e., sets that theme as the current
theme.
If you don't like the arrangement of the Appearance menu, you can put
a file "appearance.menu" in ~/GNUstep/Library/WindowMaker, and it will
override the default one. Look at /etc/X11/WindowMaker/appearance.menu
for an example.
Shortcuts
---------
Thanks to a suggestion, there's support for Shortcuts. If you want to
have Shift F1 launch an XTerm, you can:
$ cp /usr/lib/menu/xterm /etc/menu
$ sensible-editor /etc/menu/xterm
add:
shortcut=Shift+F1
and run update-menus.
Sound Support
-------------
This version of Window Maker is compiled with sound support. The sound
server is available as a separate package, but may not be in sync with
the current release.
Changing the menus (or "WPrefs segfaults when I click the cute menu icon")
--------------------------------------------------------------------------
First of all, I have this urge to say that it doesn't segfault for
me. It gives me a nice warning about being unable to use my current
menu.
The problem is that wmaker now is capable of using a new type of menu,
namely a PropList menu. It looks something like this:
(
Applications,
(Debian, OPEN_MENU, menu.hook),
(
WorkSpace,
(Appearance, OPEN_MENU, appearance.menu),
(Workspaces, WORKSPACE_MENU),
("Arrange Icons", ARRANGE_ICONS),
("Hide Others", HIDE_OTHERS),
("Show All Windows", SHOW_ALL),
("Clear Session", CLEAR_SESSION),
("Save Session", EXEC, "")
),
(About..., INFO_PANEL),
(Exit, SHUTDOWN)
)
That cute looking menu button (let's call it by its name: the Menu
Guru) in WPrefs expects to find a menu in this format. I considered
changing the menu-method to something that spits out a menu in this
format (it's quite easy) but there's a little tiny problem: see that
line that reads "OPEN_MENU" in the example above... well, it happens
that appearance.menu has to be in the old format. That means that if
I make the menu method produce a new style menu, that menu has to be
the root menu. And that is not a good idea (the reason is left as an
exercise to the reader, take into account the people that aren't using
menu.hook as the root menu in the first place).
Still want to use WPrefs to edit you menu? Cut and paste the example
above into ~/GNUstep/Defaults/WMRootMenu, start WPrefs, click the Menu
Guru (the 9th icon, left to right). Now go read the docs. That's the
reason they are there.
Marcelo E. Magallon <mmagallo@debian.org>, Thr, 1 Apr 1999 18:47:30 -0600

79
debian/README.build vendored Normal file
View File

@@ -0,0 +1,79 @@
Building Window Maker for Debian
--------------------------------
* The patches
debian/rules scans debian/patches/ for files named *.diff and these
are sorted _alphabetically_ before being applied.
You can apply these patches by calling
$ debian/rules patch-wmaker-stamp
and remove them with
$ debian/rules unpatch-wmaker
Why are some patches in debian/patches and others are stored in the
debian .diff?
For starters I (still) dislike the idea of doing:
$ dpkg -x package.dsc
and being left with something that is not the source from
which the package is built. It makes NMUs harder for both the
NMUer and the maintainer, mostly because people tend to get it
wrong (since it's undocumented). I use CVS for (almost all
of) my packages, and I like to be able to take a look at the
source used to build certain release of a package _without_
having to check out that release. On the other hand, I try to
send patches upstream, and over the years I've learned that
Debian's source package format is really not the best thing to
use in this context. Merging between debian's source and
upstream's (after accepting patches) is messy.
The system used by this package is a compromise between these
two things: "most" of the patches are applied directly by just
unpacking the Debian sources, and some are left out. The
things that are left out (those stored in debian/patches) are
in general things that should go upstream. Things that aren't
really Debian specific. Security fixes, patches submitted
upstream by other people, that kind of thing. This keeps the
patches nicely separated, makes it easy to send the upstream,
to take them out and to update them if that becomes necessary.
In general, if it's Debian specific, patch the sources
directly. If it should go upstream, put it in debian/patches.
The easiest way to generate patches is to use CVS. Patches coming out
of 'cvs diff -u whaterver/you.modded' will just work if you put them
in debian/patches. If you can't use CVS for whatever reason, just:
$ diff -u wmaker.orig wmaker > your.patch
will do the right thing.
* Building options
The following make variables are used to pass options to the configure
script:
XLOCALE := --disable-locale
MODELOCK := --enable-modelock
VDESKTOP := --enable-vdesktop
XINERAMA := --enable-xinerama
(*) These are not used by default
Since these are make variables, you can do something like:
$ SOUND=--disable-sound debian/rules build
If you want to build a debugging version, this will do it:
$ export DEB_BUILD_OPTIONS=nostrip,debug,noopt
$ fakeroot debian/rules binary
--
vim: tw=72 ft=text

11
debian/TODO vendored Normal file
View File

@@ -0,0 +1,11 @@
TODO list for Debian wmaker package
===================================
* Clean the mess in debian/rules, split it maybe, make a
debian/patches directory, read xfree's or libc6's debian/rules
* Fix the upgrade script (translate it to perl, use getpwent to go
thru the entire list of users, read /etc/login.defs to figure out
which id's are "regular" users)
* fix the "depends on version just built" problem. Look for some
package that gets this right; asked on -mentors, but there was no
reply.

56
debian/WMWindowAttributes vendored Normal file
View File

@@ -0,0 +1,56 @@
{
Logo.WMDock = {Icon = GNUstep.tiff;};
Logo.WMPanel = {Icon = GNUstep.tiff;};
Tile.WMClip = {Icon = clip.tiff;};
WPrefs = {Icon = "/usr/lib/GNUstep/System/Applications/WPrefs.app/WPrefs.tiff";};
Dockit = {Icon = GNUstep.tiff;};
WMSoundServer = {Icon = Sound.tiff;};
"*" = {Icon = defaultAppIcon.tiff;};
Rxvt = {Icon = GNUterm.tiff;};
KTerm = {Icon = GNUterm.tiff;};
NXTerm = {Icon = GNUterm.tiff;};
XTerm = {Icon = GNUterm.tiff;};
Netscape = {Icon = "wmaker-netscape.tif";};
"Mozilla-bin" = {Icon = "wmaker-nav.tif";};
emacs = {Icon = "wmaker-emacs.tif";};
Gimp = {AlwaysUserIcon = Yes;Icon = "wmaker-gimp2.tif";};
toolbox.Gimp = {NoAppIcon = Yes;Icon = "wmaker-gimp2.tif";};
gimp_startup.Gimp = {
Icon = "wmaker-gimp2.tif";
AlwaysUserIcon = Yes;
NoTitlebar = Yes;
NoResizebar = Yes;
NotClosable = Yes;
NotMiniaturizable = Yes;
};
tip_of_the_day.Gimp = {
Icon = "wmaker-gimp2.tif";
AlwaysUserIcon = Yes;
NoResizebar = Yes;
NoCloseButton = Yes;
NoMiniaturizeButton = Yes;
KeepOnTop = Yes;
};
image_window.Gimp = {Icon = "wmaker-gimp-work.tif";AlwaysUserIcon = Yes;};
brushselection.Gimp = {Icon = "wmaker-gimp-brushes.tif";AlwaysUserIcon = Yes;};
patternselection.Gimp = {Icon = "wmaker-gimp-patterns.tif";AlwaysUserIcon = Yes;};
color_palette.Gimp = {
Icon = "wmaker-gimp-palette.tif";
AlwaysUserIcon = Yes;
NoResizebar = Yes;
};
gradient_editor.Gimp = {Icon = "wmaker-gimp-gradient.tif";AlwaysUserIcon = Yes;};
tool_options.Gimp = {Icon = "wmaker-gimp-tooloption.tif";AlwaysUserIcon = Yes;};
layers_and_channels.Gimp = {Icon = "wmaker-gimp-layers.tif";AlwaysUserIcon = Yes;};
indexed_color_palette.Gimp = {
Icon = "wmaker-gimp-palette.tif";
AlwaysUserIcon = Yes;
NoResizebar = Yes;
};
"Script-fu" = {Icon = "wmaker-gimp-script-fu.tif";};
"script-fu.Script-fu" = {Icon = "wmaker-gimp-script-fu.tif";};
preferences.Gimp = {Icon = "wmaker-gimp-prefs.tif";AlwaysUserIcon = Yes;};
panel = {NoAppIcon = Yes;};
gmc = {NoAppIcon = Yes;Omnipresent = Yes;SkipWindowList = Yes;};
Logo.WMClip = {Icon = clip.tiff;};
}

142
debian/WindowMaker.default vendored Normal file
View File

@@ -0,0 +1,142 @@
{
LargeDisplayFont = "-*-helvetica-bold-r-normal-*-24-*-*-*-*-*-*-*";
MultiByteText = AUTO;
KbdModeLock = NO;
SmoothWorkspaceBack = NO;
WindozeCycling = NO;
PopupSwitchMenu = NO;
DisableMiniwindows = NO;
OpenTransientOnOwnerWorkspace = NO;
EdgeResistance = 30;
IconificationStyle = Zoom;
IconPath = (
"~/pixmaps",
"~/GNUstep/Library/Icons",
"/usr/local/share/WindowMaker/Icons",
"/usr/share/WindowMaker/Icons",
"/usr/local/share/icons",
"/usr/share/icons",
"/usr/X11R6/include/X11/pixmaps"
);
PixmapPath = (
"~/pixmaps",
"~/GNUstep/Library/WindowMaker/Backgrounds",
"~/GNUstep/Library/WindowMaker/Pixmaps",
"/usr/local/share/WindowMaker/Backgrounds",
"/usr/local/share/WindowMaker/Pixmaps",
"/usr/share/WindowMaker/Backgrounds",
"/usr/share/WindowMaker/Pixmaps",
"/usr/local/share/pixmaps",
"/usr/share/pixmaps",
"/usr/X11R6/include/X11/pixmaps"
);
WindowTitleBalloons = YES;
IconSize = 64;
FocusMode = manual;
DisableWSMouseActions = NO;
SelectWindowsMouseButton = left;
WindowListMouseButton = middle;
ApplicationMenuMouseButton = right;
ColormapSize = 4;
DisableDithering = NO;
ModifierKey = Mod1;
NewStyle = YES;
DisableDock = NO;
DisableClip = NO;
Superfluous = NO;
StickyIcons = NO;
SaveSessionOnExit = NO;
ColormapMode = auto;
RaiseDelay = 0;
AutoFocus = YES;
WindowPlacement = auto;
WindowPlaceOrigin = (64, 64);
UseSaveUnders = NO;
DisableSound = NO;
DisableAnimations = NO;
DontLinkWorkspaces = YES;
AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO;
ResizeDisplay = line;
MoveDisplay = floating;
OpaqueMove = YES;
IconPosition = blh;
WrapMenus = NO;
ScrollableMenus = YES;
MenuScrollSpeed = fast;
IconSlideSpeed = fast;
ShadeSpeed = fast;
DoubleClickTime = 250;
AlignSubmenus = NO;
NoWindowOverIcons = NO;
IgnoreFocusClick = NO;
CloseKey = None;
MaximizeKey = None;
VMaximizeKey = None;
RaiseLowerKey = None;
DontConfirmKill = NO;
ShadeKey = None;
NextWorkspaceKey = "Mod1+Control+Right";
PrevWorkspaceKey = "Mod1+Control+Left";
RootMenuKey = F12;
WindowListKey = F11;
WindowMenuKey = "Control+Escape";
RaiseKey = "Mod1+Up";
LowerKey = "Mod1+Down";
FocusNextKey = "Mod1+Tab";
FocusPrevKey = "Mod1+Shift+Tab";
Workspace1Key = "Mod1+1";
Workspace2Key = "Mod1+2";
Workspace3Key = "Mod1+3";
Workspace4Key = "Mod1+4";
Workspace5Key = "Mod1+5";
Workspace6Key = "Mod1+6";
Workspace7Key = "Mod1+7";
Workspace8Key = "Mod1+8";
Workspace9Key = "Mod1+9";
Workspace10Key = "Mod1+0";
HideKey = "Mod1+H";
SelectKey = None;
MiniaturizeKey = "Mod1+M";
NextWorkspaceLayerKey = None;
PrevWorkspaceLayerKey = None;
ClipLowerKey = None;
ClipRaiseKey = None;
ConstrainWindowSize = NO;
ClipRaiseLowerKey = None;
TitleJustify = center;
WindowTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
MenuTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
MenuTextFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
IconTitleFont = "-*-helvetica-bold-r-normal-*-9-*-*-*-*-*-*-*";
ClipTitleFont = "Verdana:bold:pixelsize=10";
DisplayFont = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*";
HighlightColor = white;
HighlightTextColor = black;
ClipTitleColor = black;
CClipTitleColor = gray20;
FTitleColor = white;
PTitleColor = white;
UTitleColor = black;
FTitleBack = (solid, black);
PTitleBack = (solid, gray40);
UTitleBack = (solid, "rgb:aa/aa/aa");
MenuTitleColor = white;
MenuTextColor = black;
MenuDisabledColor = gray40;
MenuTitleBack = (solid, black);
MenuTextBack = (solid, "rgb:aa/aa/aa");
WorkspaceBack = (
spixmap,
"/usr/share/WindowMaker/Backgrounds/debian.tiff",
gray20
);
IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61");
IconTitleColor = white;
IconTitleBack = black;
ResizebarBack = (solid, "rgb:aa/aa/aa");
MenuStyle = normal;
}

26
debian/appearance.menu-method vendored Normal file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/install-menu
#
# Generates the Window Maker Appereance menu
compat="menu-1"
#!include menu.h
genmenu="appearance.menu"
rootprefix="/etc/X11/WindowMaker"
userprefix=shell("echo -n /${GNUSTEP_USER_ROOT-GNUstep}") "/Library/WindowMaker"
treewalk=(M)
supported
wmappearance = " \"" $title "\" " $command "\n"
endsupported
# Please note that items should specify "section=Appearance"
preoutput="/* Automatically generated file. Do not edit. */\n\n#include \"wmmacros\"\n\n"
postoutput="\n"
mainmenutitle=""
submenutitle= ""
startmenu= ifnempty ($title, $title " MENU \n")
endmenu= ifnempty ($title, $title " END \n")

2007
debian/changelog vendored Normal file

File diff suppressed because it is too large Load Diff

1
debian/compat vendored Normal file
View File

@@ -0,0 +1 @@
7

63
debian/control vendored Normal file
View File

@@ -0,0 +1,63 @@
Source: wmaker
Section: x11
Priority: optional
Maintainer: John H. Robinson, IV <jaqque@debian.org>
Standards-Version: 3.8.0.1
Build-Depends: debhelper (>= 4), automake1.4, gettext, dctrl-tools, libfontconfig1-dev, libjpeg62-dev, libpng12-dev, libsm-dev, libtiff4-dev, libtool, libgif-dev, libx11-dev, libxext-dev, libxft-dev, libxinerama-dev, libxkbfile-dev, libxpm-dev, libxt-dev, libxrender-dev, sharutils
Package: wmaker
Architecture: any
Section: x11
Priority: optional
Depends: ${shlibs:Depends}, cpp
Provides: x-window-manager
Suggests: wmaker-data, menu, x11-apps, xosview, wterm | x-terminal-emulator
Description: NeXTSTEP-like window manager for X
Written by Alfredo Kojima almost from scratch, resembles the NeXTStep look
very closely, and it is now an official GNU project. Window Maker is not
overloaded with features, and it is easier to configure than most other window
managers. Its final goal is to produce a window manager that doesn't require
editing of configuration files. Window Maker is fast and doesn't require tons
of memory to run.
.
Homepage: http://www.windowmaker.info/
Package: libwmaker0-dev
Architecture: any
Section: libdevel
Priority: optional
Depends: libc6-dev, libx11-dev
Description: Static libraries and headers for Window Maker applications
Contains libWMaker and header files, for building Window Maker aware
applications.
Package: libwraster3-dev
Architecture: any
Section: libdevel
Priority: optional
Depends: libwraster3 (= ${Source-Version}), libc6-dev, libx11-dev, libxext-dev, libxpm-dev, libjpeg62-dev, libpng12-0-dev, libgif-dev, libtiff4-dev
Provides: libwraster-dev
Description: Static libraries and headers of Window Maker rasterizer
Contains libwraster and header files, for manipulating and
rasterizing images.
Package: libwraster3
Architecture: any
Section: libs
Priority: optional
Depends: ${shlibs:Depends}
Description: Shared libraries of Window Maker rasterizer
Contains libwraster, for manipulating and rasterizing images.
Package: libwings-dev
Architecture: any
Section: libdevel
Priority: optional
Depends: libc6-dev, libx11-dev, libxext-dev, libwraster3-dev, libxft-dev, libfontconfig1-dev
Description: Window Maker's own widget set
WINGs Is Not GNUstep (WINGs) is a small widget set with the NeXTSTEP
look and feel. Its API is inspired in OpenSTEP and its
implementation borrows some ideas from Tk. It has a reasonable set of
widgets, sufficient for building small applications like a CDPlayer
or hacking something like rxvt. It is used for basic widgets in
the WindowMaker window manager.

97
debian/copyright vendored Normal file
View File

@@ -0,0 +1,97 @@
This package was debianized by Marcelo E. Magallon
<mmagallo@debian.org> on Sat, 1 Nov 1997 15:21:20 -0600.
The original package was debianized by Neil A. Rubin <nar5@po.cwru.edu>
on Sun, 18 May 1997 18:02:24 -0400.
It was downloaded from ftp://ftp.windowmaker.info/pub/source/release
Window Maker X11 Window Manager
Copyright (c) 1997 Alfredo Kengi Kojima
Window Maker is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
The libraries accompanying Window Maker, wrlib (libwraster), wmlib and
WINGs (libwings-dev) are distributed under the terms of the GNU Library
General Public License as published by the Free Software Foundation;
either version 2 of the license, or (at your option) any later version.
Window Maker is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You can find a copy of the GNU General Public License and the GNU
Library Public License in the directory /usr/share/common-licenses, in
the file GPL and LGPL respectively; if not, you can obtain a copy
writing to the Free Software Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA
The icons that are distributed with this program and were made by
Marco van Hylckama Vlieg are licensed through the OpenContent
License. Read the /usr/doc/wmaker/COPYING.OPL file for the complete
license.
NeXT, OpenStep and NEXTSTEP are trademarks of NeXT Computer, Inc.
All other trademarks are property of their respective owners.
The authors reserve the right to make changes in the software without
prior notice.
The following artwork were created by Banlu Kemiyatorn and
are distributed through the license in this file:
GNUstepGlow.tiff
GNUstepGlow.xpm
Magnify.tiff
Magnify.xpm
Terminal.tiff
Terminal.xpm
TerminalGNUstep.tiff
TerminalGNUstep.xpm
TerminalLinux.tiff
TerminalLinux.xpm
tiff/msty1.tiff
tiff/msty2.tiff
tiff/msty3.tiff
xpm/msty1.xpm
xpm/msty2.xpm
xpm/msty3.xpm
WPrefs.tiff
WPrefs.xpm
tiff/tdel.tiff
tiff/tedit.tiff
tiff/textr.tiff
tiff/tnew.tiff
xpm/tdel.xpm
xpm/tedit.xpm
xpm/textr.xpm
xpm/tnew.xpm
inside Resources/Images.tiff "the little house", "the trash can",
"the folder", "the floppies"
Ear.png
Ftp.png
ICQ.png
Jabber.png
Mozilla.png
Pen.png
Pencil.png
Shell.png
Speaker.png
XChat.png
do What The Fuck you want to Public License
Version 1.0, March 2000
Copyright (C) 2000 Banlu Kemiyatorn (]d).
136 Nives 7 Jangwattana 14 Laksi Bangkok
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Ok, the purpose of this license is simple
and you just
DO WHAT THE FUCK YOU WANT TO.

5683
debian/debian.tiff.uu vendored Normal file

File diff suppressed because it is too large Load Diff

2
debian/libwings-dev.dirs vendored Normal file
View File

@@ -0,0 +1,2 @@
usr/include/X11
usr/lib

3
debian/libwmaker0-dev.dirs vendored Normal file
View File

@@ -0,0 +1,3 @@
usr/include/X11
usr/lib
usr/share/doc/libwmaker0-dev

3
debian/libwraster3-dev.dirs vendored Normal file
View File

@@ -0,0 +1,3 @@
usr/include/X11
usr/lib
usr/share/doc/libwraster3-dev

3
debian/libwraster3-dev.docs vendored Normal file
View File

@@ -0,0 +1,3 @@
wrlib/NEWS
wrlib/README
wrlib/TODO

2
debian/libwraster3.dirs vendored Normal file
View File

@@ -0,0 +1,2 @@
usr/lib
usr/share/doc/libwraster3

20
debian/libwraster3.postinst vendored Normal file
View File

@@ -0,0 +1,20 @@
#! /bin/sh -e
case "$1" in
configure)
ldconfig
;;
abort-upgrade|abort-deconfigure|abort-remove)
# how did we got here? Force a non-zero exit code
exit 1
;;
*)
echo "postinst called with unknown argument: \$1" >&2
;;
esac
#DEBHELPER#
exit 0

56
debian/manpages/WPrefs.1x vendored Normal file
View File

@@ -0,0 +1,56 @@
.TH "Window Maker" 1x "March 2001" "Debian Project"
.SH NAME
WPrefs \- Window Maker configuration tool
.SH SYNOPSIS
.B WPrefs
.I "[-options]"
.SH "DESCRIPTION"
WPrefs.app is the preferences "editor" for the WindowMaker window manager. It
can be used to set most of the preference options of WindowMaker and define
it's applications menu. It also can change some settings that do not belong to
WindowMaker.
.PP
Although WPrefs.app is designed to be easy to use, you should read the
user guide to be fully aware of all available options and other features
of WindowMaker that are not related to configuration.
.PP
\fIOnly options that have different values than what is found in the
system-wide configuration file is saved.\fP
.SH "OPTIONS"
.TP
.B \-display host:display.screen
specify display to use.
.TP
.B \-\-version
display version number and exit
.TP
.B \-\-help
display help message and exit
.SH FILES
.TP
.B ~/GNUstep/Defaults/WindowMaker
general Window Maker defaults.
.TP
.B /etc/GNUstep/Defaults/WindowMaker
system wide Window Maker defaults.
.TP
.B ~/GNUstep/Defaults/WMRootMenu
Contains the name of the file to read the root menu from or the
menu itself, in property list format.
.TP
.B ~/GNUstep/Library/WindowMaker/autostart
This script is automatically executed when Window Maker is started. WPrefs
saves the mouse speed configuration is saved as a call for xset here.
.SH SEE ALSO
The Window Maker User Guide
.PP
The Window Maker FAQ
.PP
.BR wmaker (1x)
.SH AUTHOR
Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>,
Dan Pascu <dan@windowmaker.info> with contributions from many people around
the Internet.
.PP
This manual page was written by Marcelo E. Magallon, <mmagallo@debian.org>,
for the Debian Project and might be used freely by others.

1
debian/manpages/WindowMaker.1x vendored Normal file
View File

@@ -0,0 +1 @@
.so man1/wmaker.1x

32
debian/manpages/get-wings-flags.1 vendored Normal file
View File

@@ -0,0 +1,32 @@
.TH "get-wings-flags" "1" "22 March 2005"
.SH "NAME"
\fBget-wings-flags\fR \- output libWINGs compile and linker flags
.PP
.SH "SYNOPSIS"
.B get-wings-flags \fR[ \fI\-\-cflags \fR] [ \fI\-\-ldflags \fR]
[ \fI\-\-libs \fR]
.PP
.SH "DESCRIPTION"
\fBget-wings-flags \fR\- output include path, library search path or
library archive names needed to compile and link with libWINGs.
.PP
.SH "OPTIONS"
.TP
.B \-\-cflags
\fRoutput include file search path to find all header files needed to compile
source code using libWINGs functions.
.TP
.B \-\-ldflags
\fRoutput library search path required to find all library archives needed to
link object files with libWINGs.
.TP
.B \-\-libs
\fRoutput library archive names required to link object filed with libWINGs.
.PP
.SH "AUTHOR"
get-wings-flags is a part of Window Maker, wich was written by
Alfredo K. Kojima <kojima@windowmaker.info> and Dan Pascu <dan@windowmaker.info>,
with contributions from many people around the Internet.
.PP
This manpage was written by Frederik Schueler <fschueler@gmx.net> for the
Debian GNU/Linux system (but may be used by others).

32
debian/manpages/get-wraster-flags.1 vendored Normal file
View File

@@ -0,0 +1,32 @@
.TH "get-wraster-flags" "1" "22 March 2005"
.SH "NAME"
\fBget-wraster-flags\fR \- output libwraster compile and linker flags
.PP
.SH "SYNOPSIS"
.B get-wraster-flags \fR[ \fI\-\-cflags \fR] [ \fI\-\-ldflags \fR]
[ \fI\-\-libs \fR]
.PP
.SH "DESCRIPTION"
\fBget-wraster-flags \fR\- output include path, library search path or
library archive names needed to compile and link with libwraster.
.PP
.SH "OPTIONS"
.TP
.B \-\-cflags
\fRoutput include file search path to find all header files needed to compile
source code using libwraster functions.
.TP
.B \-\-ldflags
\fRoutput library search path required to find all library archives needed to
link object files with libwraster.
.TP
.B \-\-libs
\fRoutput library archive names required to link object filed with libwraster.
.PP
.SH "AUTHOR"
get-wraster-flags is a part of Window Maker, wich was written by
Alfredo K. Kojima <kojima@windowmaker.info> and Dan Pascu <dan@windowmaker.info>,
with contributions from many people around the Internet.
.PP
This manpage was written by Frederik Schueler <fschueler@gmx.net> for the
Debian GNU/Linux system (but may be used by others).

32
debian/manpages/get-wutil-flags.1 vendored Normal file
View File

@@ -0,0 +1,32 @@
.TH "get-wutil-flags" "1" "22 March 2005"
.SH "NAME"
\fBget-wutil-flags\fR \- output libwutil compile and linker flags
.PP
.SH "SYNOPSIS"
.B get-wutil-flags \fR[ \fI\-\-cflags \fR] [ \fI\-\-ldflags \fR]
[ \fI\-\-libs \fR]
.PP
.SH "DESCRIPTION"
\fBget-wutil-flags \fR\- output include path, library search path or
library archive names needed to compile and link with libWUtil.
.PP
.SH "OPTIONS"
.TP
.B \-\-cflags
\fRoutput include file search path to find all header files needed to compile
source code using libWUtil functions.
.TP
.B \-\-ldflags
\fRoutput library search path required to find all library archives needed to
link object files with libWUtil.
.TP
.B \-\-libs
\fRoutput library archive names required to link object filed with libWUtil.
.PP
.SH "AUTHOR"
get-wutil-flags is a part of Window Maker, wich was written by
Alfredo K. Kojima <kojima@windowmaker.info> and Dan Pascu <dan@windowmaker.info>,
with contributions from many people around the Internet.
.PP
This manpage was written by Frederik Schueler <fschueler@gmx.net> for the
Debian GNU/Linux system (but may be used by others).

View File

@@ -0,0 +1,23 @@
.TH "Window Maker" 8 "March 2001" "Debian Project"
.SH NAME
upgrade-windowmaker-defaults \- Convert old wmaker configuration files
.SH SYNOPSIS
.B upgrade-windowmaker-defaults
.SH DESCRIPTION
Some old versions of Window Maker used different names or different syntax
for some configuration options, which in turn used to cause some newer
versions of Window Maker not to start up correctly. Nowadays this is no
longer a problem but this utility is provided to support upgrades from these
old versions of Window Maker.
.SH SEE ALSO
The Window Maker User Guide
.PP
The Window Maker FAQ
.PP
The Window Maker changelog and NEWS files (in /usr/share/doc/wmaker)
.PP
.BR wmaker (1x)
.SH AUTHOR
This utility and manpage were written by Marcelo E. Magallon,
<mmagallo@debian.org>, for the Debian Project. It might be used freely by
others.

48
debian/manpages/wmagnify.1x vendored Normal file
View File

@@ -0,0 +1,48 @@
.TH WMAGNIFY 1 "March 22, 2006" "" "User Commands"
.SH NAME
wmagnify \- magnify parts of the screen
.SH SYNOPSIS
\fBwmagnify\fR [\fIoptions\fR]
.SH DESCRIPTION
\fBwmagnify\fR is a tool which allows you to magnify parts of the screen. The
main difference from \fBxmag\fR is that the image is refreshed automatically,
following the cursor on the screen.
.SH OPTIONS
The following command line options are available.
.TP
\fB\-m\fR \fIfactor\fR
Change the magnification factor, default is 2. You can change this also while
running the program, using the keys described below.
.TP
\fB\-r\fR \fIdelay\fR
Change the refresh delay, in milliseconds. Default is 200.
.TP
\fB\-display\fR \fIdisplay\fR
Use \fIdisplay\fR instead of the default one.
.SH KEYS
The following keys can be pressed while \fBwmagnify\fR is running to change its
behaviour.
.TP
\fB1,2,3,4,5,6,7,8,9\fR
Change the magnification factor.
.TP
\fB<space>, f\fR
Freeze the camera, making it magnify only the current position.
.TP
\fBn\fR
Create a new window.
.TP
\fBm\fR
Show/hide the pointer hotspot mark.
.SH SEE ALSO
\fBxmag(1)\fR, \fBwmaker(1)\fR
.SH AUTHOR
This manual page was written by Andrea Bolognani <eof@kiyuko.org> for the
Debian project, but may be used by others.

167
debian/manpages/wmaker.1x vendored Normal file
View File

@@ -0,0 +1,167 @@
.\" Hey, Emacs! This is an -*- nroff -*- source file.
.TH "Window Maker" 1x "January 1999" "Debian Project"
.SH NAME
wmaker \- X11 window manager with a NEXTSTEP look
.SH SYNOPSIS
.B wmaker
.I "[-options]"
.SH "DESCRIPTION"
Window Maker is a X11 window manager with a NEXTSTEP look. It tries to
emulate NeXT's look as much as possible, but it deviates from it as
necessary.
.PP
\fIPlease note this manpage has been modified to reflect changes in the
Debian installation of Window Maker.\fP
.SH "OPTIONS"
.TP
.B \-display host:display.screen
specify display to use.
On multiheaded machines, Window Maker will automatically manage all screens.
If you want Window Maker to manage only a specific screen, you must supply
the screen number you want to have managed with the
.B \-display
command line argument. For example, if you want Window Maker to manage only
screen 1, start it as:
.B wmaker -display :0.1
.TP
.B \-\-no\-cpp
disable preprocessing of configuration files
.TP
.B \-\-no\-dock
do not show the application Dock
.TP
.B \-\-no\-clip
do not show the workspace Clip
.TP
.B \-\-no\-autolaunch
do not autolaunch applications
.TP
.B \-\-dont\-restore
do not restore saved session
.TP
.B \-\-locale locale
specify the locale to use
.TP
.B \-\-create-stdcmap
create the standard colormap hint in PseudoColor visuals
.TP
.B \-\-visual\-id
visual id of visual to use
.TP
.B \-\-static
do not update or save configurations
.TP
.B \-\-version
display version number and exit
.TP
.B \-\-visual\-id
specify the ID of the visual to use. See
.BR xdpyinfo (1x)
for a list of visuals available in your display.
.TP
.B \-\-help
print a brief help message
.PP
.SH FILES
.TP
.B ~/GNUstep/Defaults/WindowMaker
general Window Maker defaults.
.TP
.B ~/GNUstep/Defaults/WMState
information about the Dock and Clip. DON'T edit this while running
Window Maker. It will be overwritten.
.TP
.B ~/GNUstep/Defaults/WMRootMenu
Contains the name of the file to read the root menu from or the
menu itself, in property list format.
.TP
.B ~/GNUstep/Defaults/WMWindowAttributes
Attributes for different application classes and instances. Use the
Attribute Editor (right drag the application's title bar, select
Attributes) instead of modifying this file directly. There are just a
few options not available using the Attributes Editor.
.TP
.B /etc/GNUstep/Defaults/
All the above-mentioned files are READ from here if not found except
for WMState, which is COPIED from here. No matter where they are read
from, if it's necesary to write configuration changes back into this
files, user's files will be written to.
.TP
.B ~/GNUstep/Library/WindowMaker/autostart
This script is automatically executed when Window Maker is started.
.TP
.B ~/GNUstep/Library/WindowMaker/exitscript
This script is automatically executed immediately before Window Maker is
exited.
.B Note:
If you need to run something that requires the X server to be running
from this script, make sure you do not use the
.I SHUTDOWN
command from the root menu to exit Window Maker. Otherwise, the X server
might be shut down before the script is executed.
.TP
.B ~/GNUstep/Library/WindowMaker/
The menu file indicated in WMRootMenu is looked for here...
.TP
.B /etc/X11/WindowMaker/
and here, in that order. Unless, the indicated path is an absolute path.
.TP
.B ~/GNUstep/Library/WindowMaker/Pixmaps/
Window Maker looks for \fBpixmaps\fP here
.TP
.B ~/GNUstep/Library/Icons/
Window Maker looks for \fBicons\fP here
.TP
.B ~/GNUstep/Library/WindowMaker/Backgrounds/
Window Maker looks for backgrounds here
.TP
.B ~/GNUstep/Library/WindowMaker/Styles/
Window Maker looks for style files here (not true... it looks like it
does, but you have to specify the full path anyway, it's just a place
to keep things nicely ordered)
.TP
.B ~/GNUstep/Library/WindowMaker/Themes/
Window Maker looks for theme files here (ibid)
.TP
.B /usr/share/WindowMaker/Pixmaps/
System-wide (Window Maker-specific) pixmaps are located here
.TP
.B /usr/share/WindowMaker/Styles/
System wide styles are here
.TP
.B /usr/share/WindowMaker/Themes/
Guess... ;-)
.SH ENVIRONMENT
.IP GNUSTEP_USER_ROOT
specifies the initial path for the Defaults directory. "Defaults/" is
appended to this variable to determine the actual location of the
databases. If the varialbe is not set, it defaults to "~/GNUstep"
.IP GNUSTEP_LOCAL_ROOT
specifies the location of the system-wide \fBlocal\fP GNUstep
directory (this is useful, for example, in those cases where the
system-wide location is really a network wide location). If this
variable is empty, GNUSTEP_SYSTEM_ROOT is looked for.
.IP GNUSTEP_SYSTEM_ROOT
specifies the location of the system-wide GNUstep directory. If this
variable is empty, it defaults to /etc/GNUstep
.SH SEE ALSO
The Window Maker User Guide
.PP
The Window Maker FAQ
.PP
.BR X (1x),
.BR wdwrite (1x),
.BR wxcopy (1x),
.BR geticonset (1x),
.BR seticons (1x),
.BR wmaker (1x),
.BR wxpaste (1x),
.BR getstyle (1x),
.BR setstyle (1x),
.BR wmsetbg (1x)
.SH AUTHOR
Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>,
Dan Pascu <dan@windowmaker.info> with contributions from many people around
the Internet.
.PP
This manual page was written by Marcelo E. Magallon, <mmagallo@debian.org>.

100
debian/nightly_build.sh vendored Executable file
View File

@@ -0,0 +1,100 @@
#!/bin/sh
CHLOGBKP="/tmp/$$-chlog"
BASEVERSION="0.93.0"
REPOVERSION="git-`date +%Y%m%d-%H%M`"
CHANGELOG="Automatic build from the GIT on `date`"
BUILDLOG="${HOME}/log/wmaker-testing-nightly.log"
STATUSCMD="git log -1 --pretty=oneline"
PULLCMD1="git fetch"
PULLCMD2="git checkout origin/master"
if [ -n "${WMAKER_DISTRO}" ]; then
case ${WMAKER_DISTRO} in
unstable)
PULLCMD2="git checkout origin/next"
BUILDLOG="${HOME}/log/wmaker-unstable-nightly.log"
;;
esac
fi
FORCE="0"
if [ $# -gt 0 ]; then
case $1 in
-f|--force)
FORCE="1"
;;
*)
echo "Usage $0 [-f|--force]"
exit 0
;;
esac
fi
cleanup() {
test -f ${CHLOGBKP} && mv ${CHLOGBKP} debian/changelog
}
errorExit() {
echo "$@" 1>&2
cleanup
exit 2
}
doPull() {
RC="1"
LATEST="`$STATUSCMD`"
$PULLCMD1 >>$BUILDLOG 2>&1 || errorExit "Error pulling from the repo"
$PULLCMD2 >>$BUILDLOG 2>&1 || errorExit "Error pulling from the repo"
CURRENT="`$STATUSCMD`"
if [ "$FORCE" = "1" -o "$LATEST" != "$CURRENT" ]; then
echo "last revision: $LATEST" >>$BUILDLOG
echo "new revision: $CURRENT" >>$BUILDLOG
echo "FORCE: $FORCE" >>$BUILDLOG
RC="0"
else
echo "No changes to build, and FORCE not given." >>$BUILDLOG
fi
return $RC
}
doEnv() {
for var in `env | grep GNUSTEP | sed "s/=.*//"`; do
unset $var
done
}
doChlog() {
cp debian/changelog ${CHLOGBKP}
debchange -v ${BASEVERSION}-${REPOVERSION} "${CHANGELOG}" || return 1
}
doBuild() {
ARGS=""
if [ -n "${WM_GPG_KEY}" ]; then
ARGS="-k${WM_GPG_KEY}"
fi
fakeroot dpkg-buildpackage $ARGS >>${BUILDLOG} 2>&1
}
install -d `dirname $BUILDLOG`
>$BUILDLOG
trap 'cleanup; exit 2' 2
trap 'cleanup; exit 2' 9
trap 'cleanup; exit 2' 15
test -d debian || errorExit "This script must be called from the toplevel source dir, ./debian must exist."
RC=0
if doPull ; then
doEnv
doChlog || errorExit "Error adding new changelog entry."
doBuild || errorExit "Error during build of .deb package."
else
RC=1
fi
cleanup
exit $RC

1
debian/patches/.keepme vendored Normal file
View File

@@ -0,0 +1 @@
Don't remove this directory

15
debian/patches/50_def_config_paths.diff vendored Normal file
View File

@@ -0,0 +1,15 @@
Index: src/wconfig.h.in
===================================================================
diff --git a/src/wconfig.h.in b/src/wconfig.h.in
index cab2bd0..e0dc434 100644
--- src/wconfig.h.in
+++ src/wconfig.h.in
@@ -146,7 +146,7 @@
*/
/* list of paths to look for the config files, searched in order of appearance */
-#define DEF_CONFIG_PATHS "~/GNUstep/Library/WindowMaker:"PKGDATADIR
+#define DEF_CONFIG_PATHS "~/GNUstep/Library/WindowMaker:/etc/X11/WindowMaker:"PKGDATADIR
#define DEF_MENU_FILE "menu"
/* name of the script to execute at startup */

414
debian/rules vendored Executable file
View File

@@ -0,0 +1,414 @@
#!/usr/bin/make -f
# GNU Copyright 1997-2005 Marcelo Magallon <mmagallo@debian.org>
package := wmaker
version := $(shell dpkg-parsechangelog | grep-dctrl -ne -sVersion -FVersion .)
# use '(>= some_version)' whenever version dependencies are needed
# libwraster_deps := (>= 0.90.0-1)
SHELL=/bin/sh
CFLAGS = -g -Wall -DGLOBAL_DEFAULTS_SUBDIR="\\\"GNUstep/Defaults\\\""
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CFLAGS += -DDEBUG
endif
LINGUAS := $(patsubst po/%.po, %, $(wildcard po/*.po))
#LINGUAS := $(filter-out zh_TW.Big5, $(LINGUAS))
# Options, options and more options!!!
XLOCALE := --disable-locale
MODELOCK := --enable-modelock
VDESKTOP := --enable-vdesktop
XINERAMA := --enable-xinerama
# USERMENU := --enable-usermenu
# SHAPE_EXT := --disable-shape
# USE_SHM := --disable-shm
# USE_XPM := --disable-xpm
# USE_PNG := --disable-png
# USE_JPEG := --disable-jpeg
# USE_GIF := --disable-gif
# USE_TIFF := --disable-tiff
WMAKER_OPTIONS := $(XLOCALE) $(MODELOCK) $(VDESKTOP) $(XINERAMA) \
$(USERMENU) $(SHAPE_EXT) $(USE_SHM) \
$(USE_XPM) $(USE_PNG) $(USE_JPEG) $(USE_GIF) $(USE_TIFF)
TOPSRCDIR := $(shell pwd)
DEBTMPDIR := $(TOPSRCDIR)/debian/wmaker
WMAKER := wmaker
WMAKER_BD := $(TOPSRCDIR)/$(WMAKER)
WMAKER_TMP := $(DEBTMPDIR)
# Be careful with the leading / because some of these values are going
# to be hardcoded into the executables
BASEDIR := /usr
CONFDIR := /etc
BINDIR := $(BASEDIR)/bin
INCLUDEDIR := $(BASEDIR)/include
SHAREDIR := $(BASEDIR)/share
DOCDIR := $(SHAREDIR)/doc
MANDIR := $(SHAREDIR)/man
MAN1DIR := $(MANDIR)/man1
MAN8DIR := $(MANDIR)/man8
LIBDIR := $(BASEDIR)/lib
PKGLIBDIR := $(BASEDIR)/lib/WindowMaker
NLSDIR := $(SHAREDIR)/locale
WMCONFDIR := $(CONFDIR)/X11/WindowMaker
WMSHAREDIR := $(SHAREDIR)/WindowMaker
WMDOCDIR := $(DOCDIR)/wmaker
GNUSTEPDIR := $(LIBDIR)/GNUstep/System
GNUSTEPCONFDIR := $(CONFDIR)/GNUstep
DEFAULTSDIR := $(GNUSTEPCONFDIR)/Defaults
PIXMAPDIR := $(INCLUDEDIR)/X11/pixmaps
GNUSTEPAPPS := $(GNUSTEPDIR)/Applications
WPREFSAPPDIR := $(GNUSTEPAPPS)/WPrefs.app
WPREFSSRCDIR := $(TOPSRCDIR)/WPrefs.app
WRASTERSRCDIR := $(TOPSRCDIR)/wrlib
WINGSSRCDIR := $(TOPSRCDIR)/WINGs
LIBWRASTER := libwraster3
LIBWRASTER_TMP := $(DEBTMPDIR)/../$(LIBWRASTER)
LIBWMAKER := libwmaker0
LIBWINGS := libwings-dev
LIBWINGS_TMP := $(DEBTMPDIR)/../$(LIBWINGS)
LTMAIN := $(shell: find /usr/share/libtool/ -name ltmain.sh | head -1)
RM := rm -f
RMDIR := rmdir --ignore-fail-on-non-empty
COMMON_OPTIONS := --prefix=$(BASEDIR) \
--mandir=$(MANDIR) \
--includedir=$(INCLUDEDIR) \
--sysconfdir=$(CONFDIR) \
--datadir=$(SHAREDIR) \
--with-nlsdir=$(NLSDIR) \
--with-pixmapdir=$(PIXMAPDIR) \
--with-gnustepdir=$(GNUSTEPDIR) \
--with-xft
AUTOMAKE_FILES := $(shell find -name Makefile.am)
IN_MAKEFILES := $(patsubst %.am,%.in,$(AUTOMAKE_FILES))
IN_FILES := $(filter-out $(IN_MAKEFILES),$(shell find -name \*.in))
GEN_FILES := $(patsubst %.in,%,$(IN_FILES))
LIST_PATCHES := find debian/patches -mindepth 1 -maxdepth 1 -name \*.diff -type f | sort
RLIST_PATCHES := find debian/patches -mindepth 1 -maxdepth 1 -name \*.diff -type f | sort -r
install_file := install -p -o root -g root -m 0644
install_prog := install -p -o root -g root -m 0755
install_dir := install -p -d -o root -g root -m 0755
build: build-stamp
build-stamp: build-wmaker-stamp
touch $@
build-wmaker-stamp: config-wmaker-stamp
$(RM) $(patsubst %.in,%,$(shell find WindowMaker -name \*.in ! -name Makefile.in))
test -x libtool || ln -sf $(WMAKER_BD)/libtool .
$(MAKE) -C $(WMAKER_BD)
touch $@
config-wmaker-stamp: patch-wmaker-stamp configure
dh_testdir
test -x config.guess || chmod +x config.guess
test -x config.sub || chmod +x config.sub
find -name \*.h.in | sed -e 's/\.in$$//' | xargs -r rm -f
mkdir -p $(WMAKER_BD)
cd $(WMAKER_BD) && \
LINGUAS="$(LINGUAS)" $(TOPSRCDIR)/configure $(COMMON_OPTIONS) \
$(WMAKER_OPTIONS) CFLAGS="$(CFLAGS)"
touch $@
patch-wmaker-stamp:
@$(LIST_PATCHES) | \
while read patch ; do \
echo $$patch ; \
if head -1 $$patch | grep -q ^Index: ; then \
patch -p0 < $$patch ; \
else \
patch -p1 < $$patch ; \
fi ; \
echo ; \
done
touch $@
test-patch-wmaker:
@$(LIST_PATCHES) | \
while read patch ; do \
echo $$patch ; \
if head -1 $$patch | grep -q ^Index: ; then \
patch --dry-run -p0 < $$patch ; \
else \
patch --dry-run -p1 < $$patch ; \
fi ; \
echo ; \
done
unpatch-wmaker:
@if [ -e patch-wmaker-stamp ] ; then \
$(RLIST_PATCHES) | \
while read patch ; do \
echo $$patch ; \
if head -1 $$patch | grep -q ^Index: ; then \
patch -p0 -R < $$patch ; \
else \
patch -p1 -R < $$patch ; \
fi ; \
echo ; \
done ; \
rm patch-wmaker-stamp ; \
fi
clean:
dh_testdir
dh_testroot
-$(MAKE) distclean
debian/rules unpatch-wmaker
$(RM) \
config.log
$(RM) *-stamp \
debian/*.files \
libtool \
src/config.h.in \
debian/shlibs.local
# debian/conffiles
$(RM) -r $(WMAKER_BD)
ifeq (skip,)
$(RM) \
configure \
config.guess \
config.sub \
aclocal.m4 \
ltmain.sh
$(RM) $(IN_MAKEFILES) $(GEN_FILES)
endif
dh_clean
binary-indep: build
# dh_testdir -i
# dh_testroot
# dh_clean -i -k
binary-arch: build
dh_testdir -a
dh_testroot
dh_clean -a -k
dh_installdirs -a
debian/rules install-wmaker-stamp
debian/rules debian/$(LIBWRASTER)-dev.files
debian/rules debian/$(LIBWRASTER).files
debian/rules debian/$(LIBWMAKER)-dev.files
debian/rules debian/$(LIBWINGS).files
dh_movefiles -a --sourcedir=debian/wmaker
# Remove cruft
$(RM) $(DEBTMPDIR)/usr/bin/wkdemenu.pl
# deal with menus
dh_installmenu -a --noscripts
$(install_prog) debian/appearance.menu-method \
$(DEBTMPDIR)/etc/menu-methods/wmappearance
$(install_file) WindowMaker/appearance.menu \
$(DEBTMPDIR)/$(WMCONFDIR)/
$(install_file) WindowMaker/background.menu \
$(DEBTMPDIR)/$(WMCONFDIR)/
$(install_file) WindowMaker/wmmacros \
$(DEBTMPDIR)/$(WMCONFDIR)/
touch $(DEBTMPDIR)/$(WMCONFDIR)/menu.prehook
touch $(DEBTMPDIR)/$(WMCONFDIR)/menu.posthook
$(install_file) debian/wmaker.desktop $(DEBTMPDIR)/usr/share/xsessions
# build a conffiles list AFTER installing the menus
# the sed part is there because of policy
# -cd $(DEBTMPDIR) && \
# find etc ! -type d \
# | sed -e "s:^etc/:/etc/:" > ../conffiles
dh_installdocs -a
$(install_file) $(WINGSSRCDIR)/README \
$(LIBWINGS_TMP)/$(DOCDIR)/$(LIBWINGS)/README.WINGs
$(install_file) $(WRASTERSRCDIR)/README \
$(LIBWRASTER_TMP)/$(DOCDIR)/$(LIBWRASTER)/README.wrlib
$(install_dir) $(DEBTMPDIR)/$(MAN1DIR)
$(RM) $(DEBTMPDIR)/$(MAN1DIR)/convertstyle*
dh_installman -pwmaker debian/manpages/*.1x
dh_installman -pwmaker debian/manpages/*.8
dh_installman -plibwraster3-dev debian/manpages/get-wraster-flags.1
dh_installman -plibwings-dev debian/manpages/get-wings-flags.1
dh_installman -plibwings-dev debian/manpages/get-wutil-flags.1
dh_installchangelogs -a ChangeLog
# dh_strip -a
dh_compress -a
dh_fixperms -a
cd debian && find -name \*.la -exec chmod a-X {} \;
dh_installdeb -a
dh_makeshlibs -p$(LIBWRASTER) -V '$(LIBWRASTER) $(libwraster_deps)'
dh_shlibdeps -u-L$(LIBWRASTER_TMP)/DEBIAN/shlibs
dh_gencontrol -a -u-isp
dh_md5sums -a
find debian -type d -empty -print0 | xargs -0r rm -rf
$(RMDIR) $(DEBTMPDIR)/$(INCLUDEDIR)
dh_builddeb -a
binary: binary-indep binary-arch
install-wmaker-stamp: DH_OPTIONS=-pwmaker
install-wmaker-stamp: build-wmaker-stamp
dh_testdir
dh_installdirs
$(MAKE) -C $(WMAKER_BD) install DESTDIR=$(DEBTMPDIR)/
# Ugly hack, FIXME
mv $(DEBTMPDIR)/etc/WindowMaker/* $(DEBTMPDIR)/$(DEFAULTSDIR)/
# Now begin fixing stuff
# First, provide a wrapper to compensate for Window Maker's funny first
# start up requierements
mv $(DEBTMPDIR)/$(BINDIR)/wmaker $(DEBTMPDIR)/$(PKGLIBDIR)/WindowMaker
dh_link $(PKGLIBDIR)/WindowMaker $(BINDIR)/WindowMaker
$(install_prog) debian/wmaker.sh $(DEBTMPDIR)/$(BINDIR)/wmaker
-mv $(DEBTMPDIR)/$(BINDIR)/convertfonts $(DEBTMPDIR)/$(PKGLIBDIR)/
# place wm-oldmenu2new under a more appropiate directory
-mv $(DEBTMPDIR)/$(BINDIR)/wm-oldmenu2new $(DEBTMPDIR)/$(WMDOCDIR)
# put a symlink in place because there's some hardcoded value that says
# Defaults is under /usr/share/WindowMaker.
ln -s $(DEFAULTSDIR) $(DEBTMPDIR)/$(WMSHAREDIR)/Defaults
# the next is stricly not necessary, because there's a symlink in place,
# but I don't want to abuse it. Some dumb program uses that path and is a
# PITA to modify it)
perl -pi -e 's:/$(WPREFSAPPDIR)/WPrefs:/$(BINDIR)/WPrefs:' \
$(DEBTMPDIR)/$(DEFAULTSDIR)/WMState
# Ditch this!
$(RM) $(DEBTMPDIR)/$(BINDIR)/wmaker.inst
$(RM) $(DEBTMPDIR)/$(BINDIR)/wmsetup
# this copyright is located in /$(DOCDIR)/wmaker
$(RM) $(DEBTMPDIR)/$(WMCONFDIR)/Copyright
# Fix permissions
chmod +x $(DEBTMPDIR)/usr/share/WindowMaker/autostart.sh
chmod +x $(DEBTMPDIR)/usr/share/WindowMaker/exitscript.sh
# Install our transition script
$(install_prog) debian/upgrade-windowmaker-defaults \
$(DEBTMPDIR)/usr/sbin/upgrade-windowmaker-defaults
# This file qualifies as "unpatchable"
cp debian/WMWindowAttributes $(DEBTMPDIR)/$(DEFAULTSDIR)/
# Need this file for start up
echo '"menu.hook"' > $(DEBTMPDIR)/$(DEFAULTSDIR)/WMRootMenu
# the plethora of readmes
-cp $(TOPSRCDIR)/po/README \
$(DEBTMPDIR)/$(WMDOCDIR)/README.po
-cp $(TOPSRCDIR)/README.definable-cursor \
$(DEBTMPDIR)/$(WMDOCDIR)/README.definable-cursor
-cp $(WPREFSSRCDIR)/README \
$(DEBTMPDIR)/$(WMDOCDIR)/README.WPrefs
-cp $(WPREFSSRCDIR)/po/README \
$(DEBTMPDIR)/$(WMDOCDIR)/README.WPrefs.po
# Copy in the Debian theme
cp debian/Debian.theme $(DEBTMPDIR)/$(WMSHAREDIR)/Themes/Debian
uudecode -o $(DEBTMPDIR)/$(WMSHAREDIR)/Backgrounds/debian.tiff \
debian/debian.tiff.uu
# This has the new default Debian theme settings.
cp debian/WindowMaker.default $(DEBTMPDIR)/$(DEFAULTSDIR)/WindowMaker
# Merry Christmas
# -mv $(DEBTMPDIR)/$(WMCONFDIR)/xtree.dat $(DEBTMPDIR)/$(WMSHAREDIR)
# Overrides lintian warnings
dh_installdirs usr/share/lintian/overrides
cp debian/wmaker.overrides debian/wmaker/usr/share/lintian/overrides/wmaker
# WPrefs
# fix the location of WPrefs
# mv $(DEBTMPDIR)/$(WPREFSAPPDIR)/WPrefs $(DEBTMPDIR)/$(BINDIR)
# dh_link $(BINDIR)/WPrefs $(WPREFSAPPDIR)/WPrefs
dh_link $(WPREFSAPPDIR)/WPrefs $(BINDIR)/WPrefs
# libwraster is compiled with tiff support, we don't need the xpm version
$(RM) -r $(DEBTMPDIR)/$(WPREFSAPPDIR)/xpm
$(RM) $(patsubst %.tiff,%.xpm,$(wildcard $(DEBTMPDIR)/$(WMSHAREDIR)/Icons/*.tiff))
# Fix the get-*-flags scripts
perl -pi -e '/^WCFLAGS/ && s:=.*:="-I/usr/X11R6/include":; /^WLFLAGS/ && s:=.*:="-L/usr/X11R6/lib":;' `find $(DEBTMPDIR) -name get-*-flags`
perl -pi -e '/^WLIBS/ && s:=.*:="-lwraster":' `find $(DEBTMPDIR) -name get-wraster-flags`
perl -pi -e '/^WLIBS/ && s:=.*:="-lWINGs -lwraster -lXft":' `find $(DEBTMPDIR) -name get-wings-flags`
perl -pi -e '/^WLIBS/ && s:=.*:="-lWUtil -lX11":' `find $(DEBTMPDIR) -name get-wutil-flags`
ifeq (skip,)
if [ -d $(DEBTMPDIR)/usr/include/WINGs ] ; then \
mv $(DEBTMPDIR)/usr/include/WINGs/* \
$(DEBTMPDIR)/usr/include ; \
rmdir $(DEBTMPDIR)/usr/include/WINGs ; \
fi
endif
debian/$(LIBWRASTER)-dev.files: build
( find $(DEBTMPDIR)/$(INCLUDEDIR) $(DEBTMPDIR)/$(LIBDIR) \
-name '*wraster*.h' \
-o -name '*wraster*.a' \
-o -name '*wraster*.la' \
-o -name '*wraster*.so' ; \
cd $(DEBTMPDIR) && \
find usr -name get-wraster-flags \
) | sed -e 's:$(DEBTMPDIR)/*::'> $@
debian/$(LIBWRASTER).files: build
( find $(DEBTMPDIR)/$(INCLUDEDIR) $(DEBTMPDIR)/$(LIBDIR) \
-name '*wraster*.so.*' \
) | sed -e 's:$(DEBTMPDIR)/*::'> $@
debian/$(LIBWMAKER)-dev.files: build
( find $(DEBTMPDIR)/$(INCLUDEDIR) $(DEBTMPDIR)/$(LIBDIR) \
-name '*WM*.h' \
-o -name '*WM*.a' \
-o -name '*WM*.la' \
-o -name '*WM*.so' \
) | sed -e 's:$(DEBTMPDIR)/*::'> $@
debian/libwings-dev.files: build
( find $(DEBTMPDIR)/$(INCLUDEDIR) $(DEBTMPDIR)/$(LIBDIR) \
-name '*WINGs*' \
-o -name '*WUtil*' | grep -v '\.so\.[0-9]' ; \
cd $(DEBTMPDIR) && \
find usr -name get-wutil-flags -o -name get-wings-flags \
) | sed -e 's:$(DEBTMPDIR)/*::'> $@
debian/shlibs.local:
echo 'libwraster $(patsubst libwraster%,%, $(LIBWRASTER)) $(LIBWRASTER) $(libwraster_deps)' > $@
aclocal.m4: acinclude.m4 configure.ac
aclocal
src/config.h.in: configure.ac
autoheader
ltmain.sh: aclocal.m4 $(LTMAIN)
libtoolize --force --copy --automake
$(IN_MAKEFILES): %.in: ltmain.sh %.am src/config.h.in
automake --add-missing --gnu --include-deps
configure: $(IN_MAKEFILES) configure.ac
autoconf
.PHONY: binary binary-arch binary-indep binary-custom clean build unpatch-wmaker

153
debian/upgrade-windowmaker-defaults vendored Normal file
View File

@@ -0,0 +1,153 @@
#! /bin/sh
# (c) 1998 Marcelo Magallon <mmagallo@debian.org>
# this script is distributed under the terms and conditions of the GPL.
#
# TODO:
#
# * Fix that ugly hack with fix*
# Is there something in the shell like Perl's hashes? It could be nice to
# do something like "foreach $var (keys %fixes)" to associate fixes with
# file names so I don't have to track things all over the place
#
# * Fix also the code that iterates over user directories to include system
# directories in one run
#
# upgrade-windowmaker-defaults (0.3)
#
# * Handles upgrade to Window Maker 0.19.0
# Logo.Clip -> Tile.Clip (crashing)
#
# upgrade-windowmaker-defaults (0.2)
#
# * Handles keyname changes between 0.16.1 and 0.17.2
#
# Tue Jul 21 08:05:00 CST 1998
#
# upgrade-windowmaker-defaults (0.1)
#
# * Initial release
# * Handles WindowPlaceOrigin syntax change
# * Handles name change Fiend -> Clip
#
# Sat Jun 13 16:18:36 CST 1998
# Fixes (these are not-optional changes)
# this one changes WindowPlaceOrigin = "..." to WindowPlaceOrigin = (...)
fix1='s/\(.*WindowPlaceOrigin = \)"\(.*\)";/\1(\2);/'
# and this one substitutes Fiend with Clip
fix2='s/\(.*\)Fiend\(.*\)=/\1Clip\2=/'
# this one applies to WMState
fix3='s/\( *\)Fiend\( *\)=/\1Clip\2=/'
fix4='s/\(.*\)Logo\.\(WMFiend\|WMClip\)\(.*\)=/\1Tile.WMClip\3=/'
# this one applies to Window Maker
fix5='s/\(.*\)NoSound\(.*\)=/\1DisableSound\2=/'
fix6='s/\(.*\)NoAutoWarp\(.*\)=/\1DontLinkWorspaces\2=/'
# this one is for WMWindowAttributes
# try to screen system accounts in the /etc/passwd file. If somebody
# has a better method for doing this, I'm open to suggestions. Please
# note that Debian Policy states accounts 0-99 are reserved for the
# Project, and 100 onwards *could* be used by the local sysadmin, but
# the default is 1000 and up
users='^[[:alnum:]]*:[[:alnum:]]*:[[:digit:]]\{4,\}:'
ask_n ()
{
echo -n $*'? [yN] '
read yn
test -n "$yn" || yn=n
case "$yn" in
[yY]*)
return 1
;;
*)
return 0
;;
esac
}
apply_fix ()
{
file_to_fix=$1; shift
if [ -e $file_to_fix ] ; then
echo -n "Fixing $file_to_fix... "
while [ $# -gt 0 ] ; do
sed -e "$1" $file_to_fix > $tempfile
cat $tempfile > $file_to_fix
shift
done
echo done.
fi
}
ask_permission ()
{
cat <<EOF
I can try to fix certain configuration parameters that have changed
between previous versions of Window Maker and this one, namely:
* WindowPlaceOrigin syntax change from "..." to (...)
* Name change of Fiend to Clip
* WMWindowAttributes: Logo.Clip -> Tile.Clip (crashing)
NOT fixing this could prevent Window Maker from starting. Please read
/usr/doc/wmaker/NEWS.gz and /usr/doc/wmaker/changelog.gz
I will fix *both* the system defaults and each user's files.
EOF
if ! ask_n "Do you want to proceed with the changes" ; then
return 0
else
return 1
fi
}
set -e
gs_dir=GNUstep
[ $GNUSTEP_USER_ROOT ] && gs_dir=$GNUSTEP_USER_ROOT
gs_defaults=$gs_dir/Defaults
gs_system_defaults=/etc/GNUstep/Defaults
if [ "$1" = "--non-interactive" ] || ask_permission ; then
tempfile=`tempfile`
# fix users' files
for dir in `cut -d : -f 6 /etc/passwd | sort -u` ; do
apply_fix $dir/$gs_defaults/WindowMaker "$fix1" "$fix2" "$fix5" "$fix6"
apply_fix $dir/$gs_defaults/WMState "$fix3"
apply_fix $dir/$gs_defaults/WMWindowAttributes "$fix4"
done
# fix system files
apply_fix $gs_system_defaults/WindowMaker "$fix1" "$fix2" "$fix5" "$fix6"
apply_fix $gs_system_defaults/WMState "$fix3"
apply_fix $gs_system_defaults/WMWindowAttributes "$fix4"
rm $tempfile
cat <<EOF
Done fixing things. If you want to run this script again you can do so by
typing:
$ $0
EOF
else
cat <<EOF
Ok, leaving things as they are now... you can run this script again using:
$ $0
EOF
fi
cat <<EOF
Press [ENTER] to continue...
EOF
read dummy
exit 0

8
debian/wmaker.desktop vendored Normal file
View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Encoding=UTF-8
Name=Window maker
Comment=This session logs you into Window Maker
Exec=/usr/bin/wmaker
# no icon yet, only the top three are currently used
Icon=
Type=Application

9
debian/wmaker.dirs vendored Normal file
View File

@@ -0,0 +1,9 @@
etc/GNUstep/Defaults
etc/X11/WindowMaker
etc/menu-methods
usr/bin
usr/sbin
usr/share/doc/wmaker
usr/lib/menu
usr/share/xsessions
usr/lib/WindowMaker

9
debian/wmaker.docs vendored Normal file
View File

@@ -0,0 +1,9 @@
AUTHORS
BUGFORM
BUGS
NEWS
README
TODO
FAQ
FAQ.I18N
debian/Debian.theme.txt

69
debian/wmaker.menu vendored Normal file
View File

@@ -0,0 +1,69 @@
?package(wmaker):needs="wm" \
section="Window Managers" title="Window Maker" \
command="/usr/bin/wmaker"
?package(wmaker):needs="wmaker" \
section="/" title="Exit" sort="ZZ" \
command="EXIT"
?package(wmaker):needs="wmaker" \
section="/" title="Exit session" sort="ZZ" \
command="SHUTDOWN"
?package(wmaker):needs="wmaker" \
section="Window Maker" title="Restart" \
command="RESTART"
?package(wmaker):needs="wmaker" \
section="Window Maker" title="Info Panel ..." \
command="INFO_PANEL"
?package(wmaker):needs="wmaker" \
section="Window Maker" title="Legal Panel ..." \
command="LEGAL_PANEL"
?package(wmaker):needs="wmaker" \
section="Window Maker" title="Preferences" \
command="EXEC" arg="WPrefs"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Workspaces" \
command="WORKSPACE_MENU"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Hide Others" \
command="HIDE_OTHERS"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Show All" \
command="SHOW_ALL"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Arrange Icons" \
command="ARRANGE_ICONS"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Save Session" \
command="SAVE_SESSION"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Clear Session" \
command="CLEAR_SESSION"
?package(wmaker):needs="wmaker" \
section="Window Maker" title="Refresh screen" \
command="REFRESH"
?package(wmaker):needs="wmaker" \
section="WorkSpace" title="Appearance" \
command="OPEN_MENU" arg="appearance.menu"
?package(wmaker):needs="wmappearance" \
section="Appearance" title="Background"\
sort="$" \
command="OPEN_MENU background.menu"
?package(wmaker):needs="wmappearance" \
section="Appearance" title="Styles"\
sort="$" \
command="OPEN_MENU -noext LOCAL_STYLES_DIR STYLES_DIR USER_STYLES_DIR WITH setstyle"
?package(wmaker):needs="wmappearance" \
section="Appearance" title="Themes"\
sort="$" \
command="OPEN_MENU -noext LOCAL_THEMES_DIR THEMES_DIR USER_THEMES_DIR WITH setstyle"
?package(wmaker):needs="wmappearance" \
section="Appearance" title="Icon Sets"\
sort="ss" \
command="OPEN_MENU -noext LOCAL_ICON_SETS_DIR ICON_SETS_DIR USER_ICON_SETS_DIR WITH seticons"
?package(wmaker):needs="wmappearance" \
section="Appearance" title="Save IconSet"\
sort="zz" \
command="EXEC geticonset USER_ICON_SETS_DIR/\"%a(IconSet name)\""
?package(wmaker):needs="wmappearance" \
section="Appearance" title="Save Theme"\
sort="zz" \
command="EXEC getstyle -t USER_THEMES_DIR/\"%a(Theme name)\""

Some files were not shown because too many files have changed in this diff Show More