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:
@@ -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]
|
||||||
|
|||||||
81
FAQ
81
FAQ
@@ -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,17 +425,17 @@ 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.
|
||||||
|
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -893,9 +893,12 @@ listCallback(void *self, void *clientData)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
item = WMGetListSelectedItem(lPtr);
|
item = WMGetListSelectedItem(lPtr);
|
||||||
if (!item || oldItem == item)
|
if (!item) {
|
||||||
|
oldItem = item;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldItem != item) {
|
||||||
for (i=0; i<bPtr->columnCount; i++) {
|
for (i=0; i<bPtr->columnCount; i++) {
|
||||||
if (lPtr == bPtr->columns[i])
|
if (lPtr == bPtr->columns[i])
|
||||||
break;
|
break;
|
||||||
@@ -914,6 +917,7 @@ listCallback(void *self, void *clientData)
|
|||||||
else
|
else
|
||||||
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
|
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
|
||||||
scrollToColumn(bPtr, i, True);
|
scrollToColumn(bPtr, i, True);
|
||||||
|
}
|
||||||
|
|
||||||
/* call callback for click */
|
/* call callback for click */
|
||||||
if (bPtr->action)
|
if (bPtr->action)
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user