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

Some fixes over 0.51.2-pre2, in WINGs, wwindow.c, and FAQ

This commit is contained in:
dan
1999-03-10 15:47:10 +00:00
parent 1160cbdb9d
commit ea5d3bcde3
6 changed files with 78 additions and 75 deletions

View File

@@ -1,6 +1,7 @@
Changes since version 0.51.1: Changes since version 0.51.1:
............................. .............................
- fixed bug with window that can get focus if both shaded and hidden.
- maximize for full screen - maximize for full screen
- fixed problem with frame drawing in non-opaque - fixed problem with frame drawing in non-opaque
- fixed installation path prob [jmknoble@pobox.com] - fixed installation path prob [jmknoble@pobox.com]

83
FAQ
View File

@@ -1,7 +1,7 @@
WindowMaker FAQ WindowMaker FAQ
==================================================================== ====================================================================
Last modified: Thursday November 26 12:50PM EST 1998 Last modified: Wednesday March 10 01:05AM EET 1999
the latest info can be found at the latest info can be found at
http://www.dpo.uab.edu/~grapeape/wmfaq.html or http://www.dpo.uab.edu/~grapeape/wmfaq.html or
@@ -156,13 +156,16 @@ crash.
1.3 Where are the mailing list archives? 1.3 Where are the mailing list archives?
---------------------------------- ----------------------------------------
UPDATE: Ed has moved to Utah to work for Caldera, so the list has Phillip Smith from Netplex, our wonderful provider of windowmaker.org, has set
moved. The new address is up some new lists from the domain. Please read the information on the web
http://www.caldera.com/linuxcenter/forums/wmaker.html pages at http://www.windowmaker.org/lists.html for information on how to
subscribe, the posting guidelines, and how to access the web archives.
We are currently archiveless after the move. Hopefully this will change in the Many thanks to Ed Orcutt who hosted the original lists from his own machine
near future. 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?
@@ -231,7 +234,7 @@ Installation:
-=-=-=-=-=-=- -=-=-=-=-=-=-
2.1 Where can I get proplist.h? 2.1 Where can I get proplist.h?
---------------------------------- -------------------------------
My first hint would be to look through the documentation a little more My first hint would be to look through the documentation a little more
closely. libPropList.tar.gz is located in the root of the Window Maker closely. libPropList.tar.gz is located in the root of the Window Maker
distribution source tree. Untar libproplist, compile and install it so that the it distribution source tree. Untar libproplist, compile and install it so that the it
@@ -240,14 +243,18 @@ will be available to compile Window Maker.
2.2 Why do no icons show up after installing Window Maker >= 0.15.x 2.2 Why do no icons show up after installing Window Maker >= 0.15.x
when I've followed all the directions? when I've followed all the directions?
---------------------------------- -------------------------------------------------------------------
According to Dan Pascu should not happen because Window Maker Under normal circumstances, this should not happen because Window Maker
should detect if libtiff is going to be compiled in and then it will make the should detect if libtiff is going to be compiled in and then it will make the
default theme based around .xpm instead of .tif. default theme use .tiff or .xpm icons, depending if TIFF support is compiled
in or not.
As of Window Maker version 0.15.0, the default setup includes .tiff icons As of Window Maker version 0.15.0, the default setup includes .tiff icons
which require you to have compiled Window Maker with libtiff support. For which require you to have compiled Window Maker with libtiff support, if you
some help on compiling with libtiff, at the libtiff section of this FAQ. want them to be used. If you are happy with the .xpm icons, then you don't
need libtiff. Window Maker will detect that TIFF support is not available and
use .xpm icons instead. For some help on compiling with libtiff, look at the
libtiff section of this FAQ.
2.3 How do I get libtiff to work? 2.3 How do I get libtiff to work?
@@ -380,7 +387,8 @@ mouse.
2.9 How do I get Window Maker working with xdm in Redhat 5.[01]? 2.9 How do I get Window Maker working with xdm in Redhat 5.[01]?
---------------------------------- ----------------------------------
After running wmaker.inst and letting it write to .xinitrc, cp .xinitrc .xsession After running wmaker.inst and letting it write to .xinitrc,
cp .xinitrc .xsession
and make sure that /usr/local/bin is in your $PATH for the Xserver. You can and make sure that /usr/local/bin is in your $PATH for the Xserver. You can
make sure of this by including a statement like make sure of this by including a statement like
@@ -417,19 +425,19 @@ of this question.
2.10 Do I need to rerun wmaker.inst with every new version of 2.10 Do I need to rerun wmaker.inst with every new version of
Window Maker? Window Maker?
---------------------------------- ----------------------------------
Dan Pascu reveals the answer: There is no need to do this. You can do it, but keep in mind, that all your
preferences will be lost, overwritten by the defaults. You can update the
files and add the changes yourself if you need to, but else in most cases is
sufficient to rely on WPrefs and it will update for you the new missing
options if they differ from the default ones.
When the user will need to run wmaker.inst again in a new release of The way domain files are read beginning from 0.15.0 makes the need for update
wmaker, we will write that down in the NEWS file. almost redundant. The user config files are merged with the global ones in
(as I've done in 0.15.0).
The way domain files are read beginning from 0.15.0 makes this
redundant. The user config files are merged with the global ones in
/usr/local/share/WindowMaker/Defaults. /usr/local/share/WindowMaker/Defaults.
So even if new options are added, they will reflect in the user configuration. So even if new options are added, they will be reflected in the user
configuration.
Only if user wishes to change the default behavior, he needs to add that Only if user wishes to change the default behavior, he needs to add that
option to the config file. option to the config file.
2.11 When I install Window Maker, I've used wmaker.inst correctly 2.11 When I install Window Maker, I've used wmaker.inst correctly
@@ -604,17 +612,15 @@ windowmaker, exit windowmaker with the "exit session" option.
3.2 What is the difference between the 'Exit' and 'Exit Session' Options? 3.2 What is the difference between the 'Exit' and 'Exit Session' Options?
---------------------------------- ----------------------------------
Another Answer from Dan Pascu: 'Exit' exits wmaker, but leaves the other apps running, and if wmaker was
not the last app launched in the .xinitrc the X server is not closed, until
"'Exit' exits wmaker, but leaves the other apps running, and if wmaker was the last app started by .xinitrc is closed.
not the last app launched in the .xinitrc the X server is not closed, until the 'Exit session' will exit wmaker, but also will close all running apps, thus
last app started by .xinitrc is closed. the X server will be closed, and your session will end.
'Exit session' will exit wmaker, but also will close all running apps, thus the
X server will be closed."
3.3 How do I "dock" AppIcons on the Clip? 3.3 How do I "dock" AppIcons on the Clip?
---------------------------------- -----------------------------------------
Just drag icons near it like you would for the dock. If you are having a Just drag icons near it like you would for the dock. If you are having a
problem docking icons, you should try moving the Clip away from the dock. problem docking icons, you should try moving the Clip away from the dock.
@@ -1239,17 +1245,15 @@ Programming:
6.1 How do I get a normal X application to produce an appicon? 6.1 How do I get a normal X application to produce an appicon?
---------------------------------- ----------------------------------
Another insightful answer from who else but Dan Pascu. You must define the WM_CLASS (XSetClassHint()) and the
"You must define the WM_CLASS (XSetClassHint()) and the
CLIENT_LEADER or XWMHints.window_group properties, which are CLIENT_LEADER or XWMHints.window_group properties, which are
automatically set by most applications that use Xt (Motif, Athena ...), but if automatically set by most applications that use Xt (Motif, Athena ...),
you use plain Xlib you must set them by hand. but if you use plain Xlib you must set them by hand.
Also you must make a call to XSetCommand(dpy, leader, argv, argc); Also you must make a call to XSetCommand(dpy, leader, argv, argc);
Take a look at Window Maker-0.1x.x/test/test.c that is an example for Take a look at Window Maker-0.1x.x/test/test.c that is an example for
writing such an app (which also have an app menu)." writing such an app (which also have an app menu).
6.2 How do I get my tcl/tk application to produce an appicon? 6.2 How do I get my tcl/tk application to produce an appicon?
@@ -1368,8 +1372,7 @@ the files manually. Or download the whole distribution.
7.5 Will you add GNOME support? 7.5 Will you add GNOME support?
---------------------------------- ----------------------------------
Yes. But don't ask me when. Support for GNOME hints is included since 0.50.0.
-=-=-=-=- -=-=-=-=-
Themes: Themes:

View File

@@ -893,27 +893,31 @@ listCallback(void *self, void *clientData)
int i; int i;
item = WMGetListSelectedItem(lPtr); item = WMGetListSelectedItem(lPtr);
if (!item || oldItem == item) if (!item) {
return; oldItem = item;
return;
for (i=0; i<bPtr->columnCount; i++) {
if (lPtr == bPtr->columns[i])
break;
} }
assert(i<bPtr->columnCount);
/* columns at right must be cleared */ if (oldItem != item) {
removeColumn(bPtr, i+1); for (i=0; i<bPtr->columnCount; i++) {
/* open directory */ if (lPtr == bPtr->columns[i])
if (item->isBranch) { break;
WMAddBrowserColumn(bPtr); }
loadColumn(bPtr, bPtr->usedColumnCount-1); assert(i<bPtr->columnCount);
/* columns at right must be cleared */
removeColumn(bPtr, i+1);
/* open directory */
if (item->isBranch) {
WMAddBrowserColumn(bPtr);
loadColumn(bPtr, bPtr->usedColumnCount-1);
}
if (bPtr->usedColumnCount < bPtr->maxVisibleColumns)
i = 0;
else
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
scrollToColumn(bPtr, i, True);
} }
if (bPtr->usedColumnCount < bPtr->maxVisibleColumns)
i = 0;
else
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
scrollToColumn(bPtr, i, True);
/* call callback for click */ /* call callback for click */
if (bPtr->action) if (bPtr->action)

View File

@@ -104,22 +104,16 @@ textChangedObserver(void *observerData, WMNotification *notification)
char *text; char *text;
WMList *list; WMList *list;
int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1;
int i, textEvent = (int)WMGetNotificationClientData(notification); int i, textEvent;
static int running = 0;
if (running)
return;
running = 1;
if (panel->flags.ignoreTextChangeNotification) if (panel->flags.ignoreTextChangeNotification)
return; return;
list = WMGetBrowserListInColumn(panel->browser, col); if (!(list = WMGetBrowserListInColumn(panel->browser, col)))
if (!list)
return; return;
text = WMGetTextFieldText(panel->fileField); text = WMGetTextFieldText(panel->fileField);
textEvent = (int)WMGetNotificationClientData(notification);
if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent) if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent)
i = closestListItem(list, text, False); i = closestListItem(list, text, False);
@@ -132,14 +126,16 @@ textChangedObserver(void *observerData, WMNotification *notification)
int textLen = strlen(text), itemTextLen = strlen(item->text); int textLen = strlen(text), itemTextLen = strlen(item->text);
int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list); int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list);
if (textEvent!=WMSetTextEvent || textLen<itemTextLen) WMSetListPosition(list, i - visibleItems/2);
WMSetListPosition(list, i - visibleItems/2);
if (textEvent!=WMDeleteTextEvent && textLen<itemTextLen) { if (textEvent!=WMDeleteTextEvent) {
WMRange range; WMRange range;
panel->flags.ignoreTextChangeNotification = 1;
WMInsertTextFieldText(panel->fileField, &item->text[textLen], WMInsertTextFieldText(panel->fileField, &item->text[textLen],
textLen); textLen);
panel->flags.ignoreTextChangeNotification = 0;
WMSetTextFieldCursorPosition(panel->fileField, itemTextLen); WMSetTextFieldCursorPosition(panel->fileField, itemTextLen);
range.position = textLen; range.position = textLen;
range.count = itemTextLen - textLen; range.count = itemTextLen - textLen;
@@ -148,7 +144,6 @@ textChangedObserver(void *observerData, WMNotification *notification)
} }
free(text); free(text);
running = 0;
} }

View File

@@ -366,7 +366,7 @@ WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title, int index)
index = mPtr->itemCount; index = mPtr->itemCount;
if (mPtr->itemCount == mPtr->itemsAlloced) { if (mPtr->itemCount == mPtr->itemsAlloced) {
WEditMenuItem *newList; WEditMenuItem **newList;
newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10)); newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));
memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10)); memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));

View File

@@ -423,7 +423,7 @@ wWindowSetupInitialAttributes(WWindow *wwin, int *level, int *workspace)
Bool Bool
wWindowCanReceiveFocus(WWindow *wwin) wWindowCanReceiveFocus(WWindow *wwin)
{ {
if (!wwin->flags.mapped && !wwin->flags.shaded) if (!wwin->flags.mapped && (!wwin->flags.shaded || wwin->flags.hidden))
return False; return False;
if (WFLAGP(wwin, no_focusable) || wwin->flags.miniaturized) if (WFLAGP(wwin, no_focusable) || wwin->flags.miniaturized)
return False; return False;