summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmando Di Cianno <fafhrd@gentoo.org>2005-06-23 22:53:01 +0000
committerArmando Di Cianno <fafhrd@gentoo.org>2005-06-23 22:53:01 +0000
commite7a573e63eea2dcbef41c0ae0ae7e45e19d5b8cd (patch)
treeaae05ece92e327e9c89274368f97aa47d9260c7a /x11-wm/windowmaker/files/0.80.2
parentforgot to remove an old file (diff)
downloadgentoo-2-e7a573e63eea2dcbef41c0ae0ae7e45e19d5b8cd.tar.gz
gentoo-2-e7a573e63eea2dcbef41c0ae0ae7e45e19d5b8cd.tar.bz2
gentoo-2-e7a573e63eea2dcbef41c0ae0ae7e45e19d5b8cd.zip
Cleanup of windowmaker ebuild files, patches, etc
(Portage version: 2.0.51.22-r1)
Diffstat (limited to 'x11-wm/windowmaker/files/0.80.2')
-rw-r--r--x11-wm/windowmaker/files/0.80.2/gtk2flickerfix.patch59
-rw-r--r--x11-wm/windowmaker/files/0.80.2/trance.patch.WM-0.80.2.diff334
-rw-r--r--x11-wm/windowmaker/files/0.80.2/windowmaker-0.80.2-r1-gentoo.patch121
-rw-r--r--x11-wm/windowmaker/files/0.80.2/wlist.patch90
-rw-r--r--x11-wm/windowmaker/files/0.80.2/wmfpo.patch233
-rw-r--r--x11-wm/windowmaker/files/0.80.2/xinerama.patch.bz2bin0 -> 5908 bytes
6 files changed, 837 insertions, 0 deletions
diff --git a/x11-wm/windowmaker/files/0.80.2/gtk2flickerfix.patch b/x11-wm/windowmaker/files/0.80.2/gtk2flickerfix.patch
new file mode 100644
index 000000000000..188c6e3a031d
--- /dev/null
+++ b/x11-wm/windowmaker/files/0.80.2/gtk2flickerfix.patch
@@ -0,0 +1,59 @@
+diff -urN WindowMaker-0.80.2/src/actions.c WindowMaker-0.80.2-modified/src/actions.c
+--- WindowMaker-0.80.2/src/actions.c 2002-07-02 01:30:25.000000000 +0100
++++ WindowMaker-0.80.2-modified/src/actions.c 2004-01-08 20:52:01.384657458 +0000
+@@ -144,14 +144,21 @@
+ old_scr=scr;
+ old_focused=old_scr->focused_window;
+
++ /*
++ * Safeguard: make sure the timestamp is monotonically increasing
++ * (very unlikely that this will be needed, still a safeguard)
++ */
++ if (timestamp <= LastFocusChange)
++ timestamp = LastFocusChange + 1;
++
+ LastFocusChange = timestamp;
+
+ /*
+ * This is a hack, because XSetInputFocus() should have a proper
+ * timestamp instead of CurrentTime but it seems that some times
+ * clients will not receive focus properly that way.
+- if (ignoreTimestamp)
+ */
++ if (ignoreTimestamp)
+ timestamp = CurrentTime;
+
+ if (old_focused)
+diff -urN WindowMaker-0.80.2/src/event.c WindowMaker-0.80.2-modified/src/event.c
+--- WindowMaker-0.80.2/src/event.c 2002-01-08 13:45:13.000000000 +0000
++++ WindowMaker-0.80.2-modified/src/event.c 2004-01-08 20:52:35.321986539 +0000
+@@ -402,7 +402,6 @@
+ static void
+ saveTimestamp(XEvent *event)
+ {
+- LastTimestamp = CurrentTime;
+
+ switch (event->type) {
+ case ButtonRelease:
+diff -urN WindowMaker-0.80.2/src/workspace.c WindowMaker-0.80.2-modified/src/workspace.c
+--- WindowMaker-0.80.2/src/workspace.c 2002-01-08 13:45:33.000000000 +0000
++++ WindowMaker-0.80.2-modified/src/workspace.c 2004-01-08 20:55:00.691545736 +0000
+@@ -574,11 +574,13 @@
+ &foo, &foo, &foo, &foo, &mask)) {
+ tmp = wWindowFor(win);
+ }
+- if (!tmp && wPreferences.focus_mode == WKF_SLOPPY) {
+- wSetFocusTo(scr, foc);
+- } else {
+- wSetFocusTo(scr, tmp);
+- }
++ if (!tmp) {
++ if (wPreferences.focus_mode == WKF_SLOPPY) {
++ wSetFocusTo(scr, foc);
++ } else {
++ wSetFocusTo(scr, tmp);
++ }
++ }
+ }
+ }
+
diff --git a/x11-wm/windowmaker/files/0.80.2/trance.patch.WM-0.80.2.diff b/x11-wm/windowmaker/files/0.80.2/trance.patch.WM-0.80.2.diff
new file mode 100644
index 000000000000..c5ef62f76cee
--- /dev/null
+++ b/x11-wm/windowmaker/files/0.80.2/trance.patch.WM-0.80.2.diff
@@ -0,0 +1,334 @@
+--- WindowMaker-0.80.2/WPrefs.app/Appearance.c Tue Jan 8 08:44:38 2002
++++ WindowMaker-0.80.2-trance/WPrefs.app/Appearance.c Tue Feb 4 20:45:34 2003
+@@ -82,6 +82,11 @@
+ WMFrame *taliF;
+ WMButton *taliB[3];
+
++ WMFrame *tranceF;
++ WMButton *tranceB;
++ WMSlider *tranceSl;
++ WMLabel *tranceL;
++
+ /* root bg */
+ WMFrame *bgF;
+
+@@ -1683,6 +1688,23 @@
+ }
+ }
+
++static void
++tranceCallback(WMWidget *self, void *data)
++{
++ _Panel *panel = (_Panel*)data;
++ char buffer[5];
++ int i;
++
++ i = WMGetSliderValue(panel->tranceSl);
++ i = 10*(10-i);
++
++ if (i == 0) {
++ WMSetLabelText(panel->tranceL, "OFF");
++ } else {
++ sprintf(buffer, "%i%%", i);
++ WMSetLabelText(panel->tranceL, buffer);
++ }
++}
+
+ static void
+ createPanel(Panel *p)
+@@ -1974,7 +1996,7 @@
+
+
+ panel->taliF = WMCreateFrame(panel->optF);
+- WMResizeWidget(panel->taliF, 110, 80);
++ WMResizeWidget(panel->taliF, 105, 80);
+ WMMoveWidget(panel->taliF, 15, 100);
+ WMSetFrameTitle(panel->taliF, _("Title Alignment"));
+
+@@ -1992,7 +2014,7 @@
+ WMSetButtonText(panel->taliB[i], _("Right"));
+ break;
+ }
+- WMResizeWidget(panel->taliB[i], 90, 18);
++ WMResizeWidget(panel->taliB[i], 85, 18);
+ WMMoveWidget(panel->taliB[i], 10, 15 + 20*i);
+ }
+ WMGroupButtons(panel->taliB[0], panel->taliB[1]);
+@@ -2000,6 +2022,38 @@
+
+ WMMapSubwidgets(panel->taliF);
+
++
++
++ panel->tranceF = WMCreateFrame(panel->optF);
++ WMResizeWidget(panel->tranceF, 105,80);
++ WMMoveWidget(panel->tranceF, 125, 100);
++ WMSetFrameTitle(panel->tranceF,_("Transparency"));
++
++ WMSetBalloonTextForView(_("<yermom> i love windowmaker\n"
++ "<tarzeau> get some fresh sand-wich-es\n"
++ "<flip-> heh\n"
++ "<flip-> transparency\n"
++ "<flip-> moo\n"
++ "<flip-> :P\n"), WMWidgetView(panel->tranceF));
++
++ panel->tranceB = WMCreateSwitchButton(panel->tranceF);
++ WMSetButtonText(panel->tranceB, _("Menu"));
++ WMResizeWidget(panel->tranceB,85,18);
++ WMMoveWidget(panel->tranceB, 10, 15);
++
++ panel->tranceSl = WMCreateSlider(panel->tranceF);
++ WMResizeWidget(panel->tranceSl, 70, 18);
++ WMMoveWidget(panel->tranceSl, 17, 15 + 20*2);
++ WMSetSliderMinValue(panel->tranceSl, 0);
++ WMSetSliderMaxValue(panel->tranceSl, 10);
++ WMSetSliderAction(panel->tranceSl, tranceCallback, panel);
++
++ panel->tranceL = WMCreateLabel(panel->tranceF);
++ WMResizeWidget(panel->tranceL, 27, 18);
++ WMMoveWidget(panel->tranceL, 40, 35);
++
++ WMMapSubwidgets(panel->tranceF);
++
+ WMMapSubwidgets(panel->optF);
+
+ /**/
+@@ -2058,6 +2112,7 @@
+ static void
+ showData(_Panel *panel)
+ {
++ int x;
+ int i;
+ char *str;
+
+@@ -2103,6 +2158,13 @@
+
+ WMSetButtonSelected(panel->mstyB[panel->menuStyle], True);
+ WMSetButtonSelected(panel->taliB[panel->titleAlignment], True);
++
++
++ WMSetButtonSelected(panel->tranceB, GetBoolForKey("MenuTrance"));
++
++ x = GetIntegerForKey("TranceAmount");
++ WMSetSliderValue(panel->tranceSl, x);
++ tranceCallback(NULL, panel);
+ }
+
+
+@@ -2154,6 +2216,9 @@
+ SetStringForKey("center", "TitleJustify");
+ break;
+ }
++
++ SetBoolForKey(WMGetButtonSelected(panel->tranceB), "MenuTrance");
++ SetIntegerForKey(WMGetSliderValue(panel->tranceSl), "TranceAmount");
+ }
+
+
+--- WindowMaker-0.80.2/src/WindowMaker.h Thu Feb 21 06:28:48 2002
++++ WindowMaker-0.80.2-trance/src/WindowMaker.h Tue Feb 4 19:13:20 2003
+@@ -337,6 +337,8 @@
+ char opaque_move; /* update window position during */
+ /* move */
+
++ char menu_trance; /* whether menu should be translucent */
++ int trance_amount; /* percentage of translucency */
+ char wrap_menus; /* wrap menus at edge of screen */
+ char scrollable_menus; /* let them be scrolled */
+ char align_menus; /* align menu with their parents */
+--- WindowMaker-0.80.2/src/defaults.c Tue Jan 8 08:45:07 2002
++++ WindowMaker-0.80.2-trance/src/defaults.c Tue Feb 4 19:13:07 2003
+@@ -494,6 +494,12 @@
+ {"UseSaveUnders", "NO", NULL,
+ &wPreferences.use_saveunders, getBool, NULL
+ },
++ {"MenuTrance", "NO", NULL,
++ &wPreferences.menu_trance, getBool, NULL
++ },
++ {"TranceAmount", "30", NULL,
++ &wPreferences.trance_amount, getInt, NULL
++ },
+ {"OpaqueMove", "NO", NULL,
+ &wPreferences.opaque_move, getBool, NULL
+ },
+--- WindowMaker-0.80.2/src/menu.c Thu Feb 21 06:28:48 2002
++++ WindowMaker-0.80.2-trance/src/menu.c Tue Feb 4 18:50:02 2003
+@@ -85,6 +85,7 @@
+ static void menuCloseClick(WCoreWindow *sender, void *data, XEvent *event);
+
+ static void updateTexture(WMenu *menu);
++static void clipDimensionsToScreen(WMenu *menu, int *x, int *y, int *width, int *height);
+
+ #ifndef LITE
+ static int saveMenuRecurs(WMPropList *menus, WScreen *scr, WMenu *menu);
+@@ -480,16 +481,129 @@
+ menu->menu->width-1, i*menu->entry_height,
+ &light);
+ }
+- }
+- if (!RConvertImage(scr->rcontext, img, &pix)) {
+- wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode));
+- }
++ }
++ if (!RConvertImage(scr->rcontext, img, &pix)) {
++ wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode));
++ }
+ RReleaseImage(img);
+
+ return pix;
+ }
+
+
++ static void
++clipDimensionsToScreen(WMenu *menu, int *x, int *y, int *width, int *height)
++{
++ int sw, sh;
++ int fx, fy;
++
++ sw = menu->menu->screen_ptr->scr_width;
++ sh = menu->menu->screen_ptr->scr_height;
++
++ fx = *x + *width;
++ fy = *y + *height;
++
++ /* CLAMP everything */
++ if (*x > sw) { *x = sw; } else if (*x < 0) { *x = 0; }
++ if (*y > sh) { *y = sh; } else if (*y < 0) { *y = 0; }
++ if (fx > sw) { fx = sw; } else if (fx < 0) { fx = 0; }
++ if (fy > sh) { fy = sh; } else if (fy < 0) { fy = 0; }
++
++ /* Make sure that height and width are positive */
++ if (fx < *x) { *width = 0; } else { *width = fx - *x; }
++ if (fy < *y) { *height = 0; } else { *height = fy - *y; }
++}
++
++static Pixmap
++tranceMenu(WMenu *menu)
++{
++ WScreen *scr = menu->menu->screen_ptr;
++
++ XImage *back, *front;
++ RImage *trance, *menu_image, *msnormal;
++ Pixmap original, result;
++
++ int mw, mh, dx, dy; /* these correspond to the menu proper */
++ int gx, gy, gw, gh; /* these correspond to what we grab from the root window */
++ int tamount;
++ unsigned long red_mask, green_mask, blue_mask;
++
++ unsigned int w, h, bar;
++ int foo;
++ Window baz;
++
++ mw = gw = menu->menu->width;
++ mh = gh = menu->menu->height;
++ dx = gx = menu->frame_x + 1;
++ dy = gy = menu->frame_y + menu->frame->top_width + 1;
++
++ tamount = wPreferences.trance_amount;
++ clipDimensionsToScreen(menu, &gx, &gy, &gw, &gh);
++ back = XGetImage(dpy, scr->root_win, gx, gy, gw, gh,
++ AllPlanes, ZPixmap);
++ if (!back) {
++ wwarning(_("error capturing \"back\" image"),RMessageForError(RErrorCode));
++ return None;
++ } else {
++ red_mask = back->red_mask;
++ green_mask = back->green_mask;
++ blue_mask = back->blue_mask;
++
++ trance = RCreateImageFromXImage(scr->rcontext, back, NULL);
++ XDestroyImage(back);
++ if (!trance) {
++ wwarning(_("error rendering \"trance\" image"),
++ RMessageForError(RErrorCode));
++ return None;
++ } else {
++ /************************************************************/
++ original = renderTexture(menu);
++
++ XGetGeometry(dpy, original, &baz, &foo,
++ &foo, &w, &h, &bar, &bar);
++ front = XGetImage(dpy, original, 0, 0, w, h,
++ AllPlanes, ZPixmap);
++ if (!front) {
++ wwarning(_("error capturing \"front\" image"),
++ RMessageForError(RErrorCode));
++ return None;
++ }
++ front->red_mask = red_mask;
++ front->green_mask = green_mask;
++ front->blue_mask = blue_mask;
++
++ menu_image=RCreateImageFromXImage(scr->rcontext,front,NULL);
++
++ XDestroyImage(front);
++ /************************************************************/
++ if (original) {
++ FREE_PIXMAP(original);
++ }
++ if (!menu_image) {
++ wwarning(_("error rendering \"menu_image\""),
++ RMessageForError(RErrorCode));
++ return None;
++ } else {
++ if (wPreferences.menu_style == MS_NORMAL) {
++ msnormal = RMakeTiledImage(menu_image, mw, mh);
++ RCombineAreaWithOpaqueness(trance, msnormal,0,0,gw,gh,
++ gx - dx,gy - dy,256*tamount/10);
++ RReleaseImage(menu_image);
++ RReleaseImage(msnormal);
++ } else {
++ RCombineAreaWithOpaqueness(trance, menu_image,0,0,gw,gh,
++ gx - dx,gy - dy,256*tamount/10);
++ RReleaseImage(menu_image);
++ }
++ RConvertImage(scr->rcontext, trance,
++ &result);
++ }
++ RReleaseImage(trance);
++ }
++ }
++ return result;
++}
++
+ static void
+ updateTexture(WMenu *menu)
+ {
+@@ -500,7 +614,11 @@
+ if (!menu->flags.brother) {
+ FREE_PIXMAP(menu->menu_texture_data);
+
+- menu->menu_texture_data = renderTexture(menu);
++ if (wPreferences.menu_trance) {
++ menu->menu_texture_data = tranceMenu(menu);
++ } else {
++ menu->menu_texture_data = renderTexture(menu);
++ }
+
+ XSetWindowBackgroundPixmap(dpy, menu->menu->window,
+ menu->menu_texture_data);
+@@ -1154,6 +1272,11 @@
+ XMoveWindow(dpy, menu->frame->core->window, x, y);
+ menu->frame_x = x;
+ menu->frame_y = y;
++ /* FIXME: needs an if */
++ if (wPreferences.menu_trance) {
++ updateTexture(menu);
++ }
++ /* */
+ XMapWindow(dpy, menu->frame->core->window);
+ wRaiseFrame(menu->frame->core);
+ menu->flags.mapped = 1;
+@@ -1178,6 +1301,11 @@
+ menu->frame_y = menu->frame->screen_ptr->app_menu_y;
+ XMoveWindow(dpy, menu->frame->core->window, menu->frame_x, menu->frame_y);
+ }
++ /* FIXME: needs an if */
++ if (wPreferences.menu_trance) {
++ updateTexture(menu);
++ }
++ /* */
+ XMapWindow(dpy, menu->frame->core->window);
+ wRaiseFrame(menu->frame->core);
+ menu->flags.mapped = 1;
diff --git a/x11-wm/windowmaker/files/0.80.2/windowmaker-0.80.2-r1-gentoo.patch b/x11-wm/windowmaker/files/0.80.2/windowmaker-0.80.2-r1-gentoo.patch
new file mode 100644
index 000000000000..75c081e86f49
--- /dev/null
+++ b/x11-wm/windowmaker/files/0.80.2/windowmaker-0.80.2-r1-gentoo.patch
@@ -0,0 +1,121 @@
+diff -urN WindowMaker-0.80.1/WPrefs.app/po/zh_TW.Big5.po WindowMaker-0.80.1-modified/WPrefs.app/po/zh_TW.Big5.po
+--- WindowMaker-0.80.1/WPrefs.app/po/zh_TW.Big5.po Tue Jan 8 07:44:42 2002
++++ WindowMaker-0.80.1-modified/WPrefs.app/po/zh_TW.Big5.po Tue Aug 6 21:40:32 2002
+@@ -1887,11 +1887,11 @@
+
+ #: ../../WPrefs.app/WindowHandling.c:366
+ msgid "...do not cover icons"
+-msgstr "...¤£­nÂл\\¹Ï¥Ü"
++msgstr "...¤£­nÂл\¹Ï¥Ü"
+
+ #: ../../WPrefs.app/WindowHandling.c:372
+ msgid "...do not cover dock"
+-msgstr "...¤£­nÂл\\°±¾a°Ï"
++msgstr "...¤£­nÂл\°±¾a°Ï"
+
+ #: ../../WPrefs.app/WindowHandling.c:381
+ msgid "Edge Resistance"
+@@ -2063,3 +2063,4 @@
+ #: ../../WPrefs.app/main.c:161
+ msgid "could not initialize application"
+ msgstr "µLªk±Ò©lÀ³¥Îµ{¦¡"
++
+diff -urN WindowMaker-0.80.1/WindowMaker/plmenu WindowMaker-0.80.1-modified/WindowMaker/plmenu
+--- WindowMaker-0.80.1/WindowMaker/plmenu Mon Jul 1 19:30:25 2002
++++ WindowMaker-0.80.1-modified/WindowMaker/plmenu Tue Aug 6 21:41:19 2002
+@@ -95,7 +95,7 @@
+ ),
+ ("Save Theme", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""),
+ ("Save IconSet", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""),
+- ("Preferences Utility", EXEC, "/usr/local/GNUstep/Apps/WPrefs.app/WPrefs")
++ ("Preferences Utility", EXEC, "/usr/lib/GNUstep/Apps/WPrefs.app/WPrefs")
+ ),
+ ("Exit",
+ ("Restart", RESTART),
+diff -urN WindowMaker-0.80.1/po/zh_TW.Big5.po WindowMaker-0.80.1-modified/po/zh_TW.Big5.po
+--- WindowMaker-0.80.1/po/zh_TW.Big5.po Tue Jan 8 07:45:06 2002
++++ WindowMaker-0.80.1-modified/po/zh_TW.Big5.po Tue Aug 6 21:40:32 2002
+@@ -519,8 +519,8 @@
+ "is docked in the same positions on the other workspaces and the Clip is not "
+ "full in some workspace."
+ msgstr ""
+-"¬Y¨Ç¹Ï¥ÜµLªk³]¦¨µL©Ò¤£¦b¡C½Ð½T»{¦b¨ä¥L¤u§@°Ï¦P¤@­Ó¦ì¸m¤W¨S¦³¨ä¥L¹Ï¥Ü°±¾a¥B¦b¬"
+-"Y¨Ç¤u§@°Ïªº°j¯¾°w¥¼º¡¡C"
++"¬Y¨Ç¹Ï¥ÜµLªk³]¦¨µL©Ò¤£¦b¡C "
++"½Ð½T»{¦b¨ä¥L¤u§@°Ï¦P¤@­Ó¦ì¸m¤W¨S¦³¨ä¥L¹Ï¥Ü°±¾a¥B¦b¬Y¨Ç¤u§@°Ïªº°j¯¾°w¥¼º¡¡C"
+
+ #: ../src/dock.c:529
+ msgid ""
+@@ -528,8 +528,8 @@
+ "docked in the same position on the other workspaces and the Clip is not full "
+ "in some workspace."
+ msgstr ""
+-"¹Ï¥ÜµLªk³]¦¨µL©Ò¤£¦b¡C½Ð½T»{¦b¨ä¥L¤u§@°Ï¦P¤@­Ó¦ì¸m¤W¨S¦³¨ä¥L¹Ï¥Ü°±¾a¥B¦b¬Y¨Ç¤"
+-"u§@°Ïªº°j¯¾°w¥¼º¡¡C"
++"¹Ï¥ÜµLªk³]¦¨µL©Ò¤£¦b¡C "
++"½Ð½T»{¦b¨ä¥L¤u§@°Ï¦P¤@­Ó¦ì¸m¤W¨S¦³¨ä¥L¹Ï¥Ü°±¾a¥B¦b¬Y¨Ç¤u§@°Ïªº°j¯¾°w¥¼º¡¡C"
+
+ #: ../src/dock.c:556
+ msgid "Workspace Clip"
+@@ -1142,13 +1142,13 @@
+ msgid ""
+ "There are more than one WORKSPACE_MENU commands in the applications menu. "
+ "Only one is allowed."
+-msgstr "À³¥Îµ{¦¡¿ï³æ¤¤¦³¶W¹L¤@­Ó WORKSPACE_MENU ©R¥O¡C¥u¤¹³\\¤@­Ó¡C"
++msgstr "À³¥Îµ{¦¡¿ï³æ¤¤¦³¶W¹L¤@­Ó WORKSPACE_MENU ©R¥O¡C¥u¤¹³\¤@­Ó¡C"
+
+ #: ../src/rootmenu.c:834
+ msgid ""
+ "There are more than one WINDOWS_MENU commands in the applications menu. Only "
+ "one is allowed."
+-msgstr "À³¥Îµ{¦¡¿ï³æ¤¤¦³¶W¹L¤@­Ó WINDOWS_MENU ©R¥O¡C¥u¤¹³\\¤@­Ó¡C"
++msgstr "À³¥Îµ{¦¡¿ï³æ¤¤¦³¶W¹L¤@­Ó WINDOWS_MENU ©R¥O¡C¥u¤¹³\¤@­Ó¡C"
+
+ #: ../src/rootmenu.c:839
+ msgid "Window List"
+@@ -1502,11 +1502,11 @@
+ #: ../src/winspector.c:1121
+ #, c-format
+ msgid "Inspecting %s.%s"
+-msgstr "À˾\\ %s.%s"
++msgstr "À˾\ %s.%s"
+
+ #: ../src/winspector.c:1147
+ msgid "Click in the window you wish to inspect."
+-msgstr "¦b§A·QÀ˾\\ªºµøµ¡ÂI¤@¤U"
++msgstr "¦b§A·QÀ˾\ªºµøµ¡ÂI¤@¤U"
+
+ #: ../src/winspector.c:1186
+ msgid ""
+@@ -1620,7 +1620,7 @@
+ msgid ""
+ "Keep the window over other windows, not allowing\n"
+ "them to cover it."
+-msgstr "Åýµøµ¡«O«ù¦b¨ä¥Lµøµ¡¤§¤W¡A¤£³\\¥¦­ÌÂл\\¥¦¡C"
++msgstr "Åýµøµ¡«O«ù¦b¨ä¥Lµøµ¡¤§¤W¡A¤£³\¥¦­ÌÂл\¥¦¡C"
+
+ #: ../src/winspector.c:1370
+ msgid "Keep at bottom (sunken)"
+@@ -1682,7 +1682,7 @@
+ "of your shortcut configuration."
+ msgstr ""
+ "·í¦¹µøµ¡±o¨ìµJÂI®É¤£­n±q Window Maker µ²¦XÁä½L±¶®|¡C\n"
+-"³o¤¹³\\µøµ¡±o¨ì©Ò¦³Áä½L²Õ¦X¤£²z·|§Aªº±¶®|³]©w¡C"
++"³o¤¹³\µøµ¡±o¨ì©Ò¦³Áä½L²Õ¦X¤£²z·|§Aªº±¶®|³]©w¡C"
+
+ #: ../src/winspector.c:1436
+ msgid "Do not bind mouse clicks"
+@@ -1720,7 +1720,7 @@
+ msgid ""
+ "Do not allow the window to move itself completely\n"
+ "outside the screen. For bug compatibility.\n"
+-msgstr "¤£¤¹³\\µøµ¡§¹¥þ²¾¥X¿Ã¹õ¡C¥Î©ó¿ù»~¬Û®e©Ê¡C\n"
++msgstr "¤£¤¹³\µøµ¡§¹¥þ²¾¥X¿Ã¹õ¡C¥Î©ó¿ù»~¬Û®e©Ê¡C\n"
+
+ #: ../src/winspector.c:1460
+ msgid "Ignore 'Hide Others'"
+@@ -1848,3 +1848,4 @@
+ #: ../src/workspace.c:936
+ msgid "Destroy Last"
+ msgstr "§R°£³Ì«áªº¤u§@°Ï"
++
diff --git a/x11-wm/windowmaker/files/0.80.2/wlist.patch b/x11-wm/windowmaker/files/0.80.2/wlist.patch
new file mode 100644
index 000000000000..4e24e6f0d211
--- /dev/null
+++ b/x11-wm/windowmaker/files/0.80.2/wlist.patch
@@ -0,0 +1,90 @@
+--- wlist.c.orig Sat Apr 20 20:17:16 2002
++++ wlist.c Sun Apr 21 14:12:06 2002
+@@ -4,6 +4,8 @@
+
+ #include "WINGsP.h"
+
++#include <X11/keysym.h>
++
+ char *WMListDidScrollNotification = "WMListDidScrollNotification";
+ char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification";
+
+@@ -42,6 +44,7 @@
+ unsigned int redrawPending:1;
+ unsigned int buttonPressed:1;
+ unsigned int buttonWasPressed:1;
++ unsigned int focused:1;
+ } flags;
+ } List;
+
+@@ -115,10 +118,10 @@
+ lPtr->view->delegate = &_ListViewDelegate;
+
+ WMCreateEventHandler(lPtr->view, ExposureMask|StructureNotifyMask
+- |ClientMessageMask, handleEvents, lPtr);
++ |FocusChangeMask|ClientMessageMask, handleEvents, lPtr);
+
+ WMCreateEventHandler(lPtr->view, ButtonPressMask|ButtonReleaseMask
+- |EnterWindowMask|LeaveWindowMask|ButtonMotionMask,
++ |EnterWindowMask|LeaveWindowMask|ButtonMotionMask|KeyPressMask,
+ handleActionEvents, lPtr);
+
+ lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
+@@ -1011,6 +1014,11 @@
+ int topItem = lPtr->topItem;
+ static int lastClicked = -1, prevItem = -1;
+
++ /* for arrow keys handling */
++ char buffer[64];
++ KeySym ksym;
++ int count, row;
++
+ CHECK_CLASS(data, WC_List);
+
+ switch (event->type) {
+@@ -1063,6 +1071,10 @@
+ case ButtonPress:
+ if (event->xbutton.x <= WMWidgetWidth(lPtr->vScroller))
+ break;
++ /* need focus for keyboard events */
++ if (!lPtr->flags.focused);
++ WMSetFocusToWidget(lPtr);
++
+ if (event->xbutton.button == WINGsConfiguration.mouseWheelDown ||
+ event->xbutton.button == WINGsConfiguration.mouseWheelUp) {
+ int amount = 0;
+@@ -1169,6 +1181,34 @@
+ prevItem = tmp;
+ }
+ break;
++ case KeyPress:
++ /* handle arrow keys, space and return */
++ count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL);
++ buffer[count] = '\0';
++ switch(ksym) {
++ case XK_Up:
++ row = WMGetListSelectedItemRow(lPtr);
++ WMSelectListItem(lPtr, row - 1);
++ if (row <= topItem)
++ scrollByAmount(lPtr, -1);
++ break;
++ case XK_Down:
++ row = WMGetListSelectedItemRow(lPtr);
++ WMSelectListItem(lPtr, row + 1);
++ if (row - topItem >= lPtr->fullFitLines)
++ scrollByAmount(lPtr, 1);
++ break;
++ case XK_space:
++ if (lPtr->action)
++ (*lPtr->action)(lPtr, lPtr->clientData);
++ break;
++ case XK_Return:
++ if (lPtr->doubleAction)
++ (*lPtr->doubleAction)(lPtr, lPtr->clientData);
++ break;
++ }
++ break;
++
+ }
+ if (lPtr->topItem != topItem)
+ WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
diff --git a/x11-wm/windowmaker/files/0.80.2/wmfpo.patch b/x11-wm/windowmaker/files/0.80.2/wmfpo.patch
new file mode 100644
index 000000000000..662e4949ee18
--- /dev/null
+++ b/x11-wm/windowmaker/files/0.80.2/wmfpo.patch
@@ -0,0 +1,233 @@
+diff -ur WindowMaker-0.80.0/WPrefs.app/Expert.c WindowMaker-0.80.0fpo1/WPrefs.app/Expert.c
+--- WindowMaker-0.80.0/WPrefs.app/Expert.c Mon May 21 18:11:17 2001
++++ WindowMaker-0.80.0fpo1/WPrefs.app/Expert.c Sat Jan 5 03:08:10 2002
+@@ -33,7 +33,7 @@
+
+ WMWidget *parent;
+
+- WMButton *swi[8];
++ WMButton *swi[10];
+
+ } _Panel;
+
+@@ -54,6 +54,8 @@
+ WMSetButtonSelected(panel->swi[4], GetBoolForKey("WindozeCycling"));
+ WMSetButtonSelected(panel->swi[5], GetBoolForKey("DontConfirmKill"));
+ WMSetButtonSelected(panel->swi[6], GetBoolForKey("DisableBlinking"));
++ WMSetButtonSelected(panel->swi[7], GetBoolForKey("DCMaximize"));
++ WMSetButtonSelected(panel->swi[8], GetBoolForKey("SingleClickLaunch"));
+ }
+
+
+@@ -66,10 +68,10 @@
+ panel->box = WMCreateBox(panel->parent);
+ WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2);
+
+- for (i=0; i<7; i++) {
++ for (i=0; i<9; i++) {
+ panel->swi[i] = WMCreateSwitchButton(panel->box);
+ WMResizeWidget(panel->swi[i], FRAME_WIDTH-40, 25);
+- WMMoveWidget(panel->swi[i], 20, 20+i*25);
++ WMMoveWidget(panel->swi[i], 20, 20+i*23);
+ }
+
+ WMSetButtonText(panel->swi[0], _("Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME."));
+@@ -79,6 +81,8 @@
+ WMSetButtonText(panel->swi[4], _("Use Windoze style cycling."));
+ WMSetButtonText(panel->swi[5], _("Disable confirmation panel for the Kill command."));
+ WMSetButtonText(panel->swi[6], _("Disable selection animation for selected icons."));
++ WMSetButtonText(panel->swi[7], _("Double click on title bar maximize"));
++ WMSetButtonText(panel->swi[8], _("Launch applications and restore windows with a single click"));
+
+ WMRealizeWidget(panel->box);
+ WMMapSubwidgets(panel->box);
+@@ -101,6 +105,8 @@
+ SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "WindozeCycling");
+ SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DontConfirmKill");
+ SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "DisableBlinking");
++ SetBoolForKey(WMGetButtonSelected(panel->swi[7]), "DCMaximize");
++ SetBoolForKey(WMGetButtonSelected(panel->swi[8]), "SingleClickLaunch");
+ }
+
+
+diff -ur WindowMaker-0.80.0/src/WindowMaker.h WindowMaker-0.80.0fpo1/src/WindowMaker.h
+--- WindowMaker-0.80.0/src/WindowMaker.h Fri Dec 21 21:38:08 2001
++++ WindowMaker-0.80.0fpo1/src/WindowMaker.h Sat Jan 5 14:12:14 2002
+@@ -463,6 +463,12 @@
+ /* shading animation */
+ signed char shade_speed;
+
++ /* double click on title bar maximize */
++ char dc_maximize;
++
++ /* single click to lauch applications */
++ char single_click;
++
+ int edge_resistance;
+ char attract;
+
+diff -ur WindowMaker-0.80.0/src/appicon.c WindowMaker-0.80.0fpo1/src/appicon.c
+--- WindowMaker-0.80.0/src/appicon.c Tue Dec 18 03:43:48 2001
++++ WindowMaker-0.80.0fpo1/src/appicon.c Sat Jan 5 14:12:14 2002
+@@ -596,6 +596,7 @@
+ int shad_x = 0, shad_y = 0, docking=0, dockable, collapsed = 0;
+ int ix, iy;
+ int clickButton = event->xbutton.button;
++ Bool hasMoved = False;
+ Pixmap ghost = None;
+ Window wins[2];
+ Bool movingSingle = False;
+@@ -676,6 +677,7 @@
+ break;
+
+ case MotionNotify:
++ hasMoved = True;
+ if (!grabbed) {
+ if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD
+ || abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) {
+@@ -812,6 +814,8 @@
+
+ if (wPreferences.auto_arrange_icons)
+ wArrangeIcons(scr, True);
++ if (!hasMoved && wPreferences.single_click)
++ iconDblClick(desc, event);
+
+ done = 1;
+ break;
+diff -ur WindowMaker-0.80.0/src/defaults.c WindowMaker-0.80.0fpo1/src/defaults.c
+--- WindowMaker-0.80.0/src/defaults.c Fri Dec 21 21:38:08 2001
++++ WindowMaker-0.80.0fpo1/src/defaults.c Sat Jan 5 14:12:14 2002
+@@ -548,6 +548,12 @@
+ {"DisableBlinking", "NO", NULL,
+ &wPreferences.dont_blink, getBool, NULL
+ },
++ {"DCMaximize", "NO", NULL,
++ &wPreferences.dc_maximize, getBool, NULL
++ },
++ {"SingleClickLaunch", "NO", NULL,
++ &wPreferences.single_click, getBool, NULL
++ },
+ /* style options */
+ {"MenuStyle", "normal", seMenuStyles,
+ &wPreferences.menu_style, getEnum, setMenuStyle
+diff -ur WindowMaker-0.80.0/src/dock.c WindowMaker-0.80.0fpo1/src/dock.c
+--- WindowMaker-0.80.0/src/dock.c Fri Dec 21 21:38:08 2001
++++ WindowMaker-0.80.0fpo1/src/dock.c Sat Jan 5 14:12:14 2002
+@@ -3772,7 +3772,7 @@
+
+
+
+-static void
++static Bool
+ handleIconMove(WDock *dock, WAppIcon *aicon, XEvent *event)
+ {
+ WScreen *scr = dock->screen_ptr;
+@@ -3788,6 +3788,7 @@
+ int tmp;
+ Pixmap ghost = None;
+ Bool docked;
++ Bool hasMoved = False;
+ int superfluous = wPreferences.superfluous; /* we catch it to avoid problems */
+ int omnipresent = aicon->omnipresent; /* this must be cached!!! */
+
+@@ -3842,6 +3843,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) {
+@@ -3991,7 +3993,7 @@
+ #ifdef DEBUG
+ puts("End icon move");
+ #endif
+- return;
++ return hasMoved;
+ }
+ }
+ }
+@@ -4130,8 +4132,11 @@
+ handleClipChangeWorkspace(scr, event);
+ else
+ handleDockMove(dock, aicon, event);
+- } else
+- handleIconMove(dock, aicon, event);
++ } else {
++ Bool hasMoved = handleIconMove(dock, aicon, event);
++ if (!hasMoved && wPreferences.single_click)
++ iconDblClick(desc, event);
++ }
+
+ } else if (event->xbutton.button==Button2 && dock->type==WM_CLIP &&
+ aicon==scr->clip_icon) {
+diff -ur WindowMaker-0.80.0/src/icon.c WindowMaker-0.80.0fpo1/src/icon.c
+--- WindowMaker-0.80.0/src/icon.c Tue Jul 24 06:51:05 2001
++++ WindowMaker-0.80.0fpo1/src/icon.c Sat Jan 5 14:16:16 2002
+@@ -877,6 +877,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;
+@@ -928,6 +929,7 @@
+ break;
+
+ case MotionNotify:
++ hasMoved = True;
+ if (!grabbed) {
+ if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD
+ || abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) {
+@@ -965,6 +967,9 @@
+
+ if (wPreferences.auto_arrange_icons)
+ wArrangeIcons(wwin->screen_ptr, True);
++ if (!hasMoved && wPreferences.single_click)
++ miniwindowDblClick(desc, event);
++
+ return;
+
+ }
+diff -ur WindowMaker-0.80.0/src/window.c WindowMaker-0.80.0fpo1/src/window.c
+--- WindowMaker-0.80.0/src/window.c Fri Dec 21 21:38:08 2001
++++ WindowMaker-0.80.0fpo1/src/window.c Sat Jan 5 14:18:07 2002
+@@ -2984,14 +2984,29 @@
+
+ if (event->xbutton.button==Button1) {
+ if (event->xbutton.state == 0) {
+- if (!WFLAGP(wwin, no_shadeable)) {
+- /* shade window */
+- if (wwin->flags.shaded)
+- wUnshadeWindow(wwin);
+- else
+- wShadeWindow(wwin);
+- }
+- } else {
++ /* check preferences, maximize or shade */
++ if (wPreferences.dc_maximize) {
++ if (!WFLAGP(wwin, no_resizable)) {
++ /* maximize window */
++ if (wwin->flags.maximized != 0) {
++ wUnmaximizeWindow(wwin);
++ wwin->flags.maximized = 0;
++ }
++ else {
++ wMaximizeWindow(wwin, MAX_VERTICAL|MAX_HORIZONTAL);
++ wwin->flags.maximized = MAX_VERTICAL|MAX_HORIZONTAL;
++ }
++ }
++ } else {
++ if (!WFLAGP(wwin, no_shadeable)) {
++ /* shade window */
++ if (wwin->flags.shaded)
++ wUnshadeWindow(wwin);
++ else
++ wShadeWindow(wwin);
++ }
++ }
++ } else {
+ int dir = 0;
+
+ if (event->xbutton.state & ControlMask)
diff --git a/x11-wm/windowmaker/files/0.80.2/xinerama.patch.bz2 b/x11-wm/windowmaker/files/0.80.2/xinerama.patch.bz2
new file mode 100644
index 000000000000..61d7417af13b
--- /dev/null
+++ b/x11-wm/windowmaker/files/0.80.2/xinerama.patch.bz2
Binary files differ