b48aa2febf
x11 here. Only changes are: `wm' in category added and some paths fixed.
501 lines
12 KiB
Text
501 lines
12 KiB
Text
$NetBSD: patch-an,v 1.1.1.1 2000/12/12 02:03:49 wiz Exp $
|
||
|
||
--- menus.c.orig Thu Feb 9 21:09:18 1995
|
||
+++ menus.c
|
||
@@ -191,6 +191,7 @@
|
||
#include "gram.h"
|
||
#include "screen.h"
|
||
#include <X11/Xmu/CharSet.h> /* for XmuCompareISOLatin1() */
|
||
+#include <X11/Xmu/Drawing.h> /* for XmuLocateBitmapFile */
|
||
#include "version.h"
|
||
#include "vdt.h"
|
||
#include "add_window.h"
|
||
@@ -228,8 +229,6 @@
|
||
} MenuOrigins[MAXMENUDEPTH];
|
||
static Cursor LastCursor;
|
||
|
||
-void WarpAlongRing(), WarpToWindow();
|
||
-
|
||
extern char *Action;
|
||
extern int Context;
|
||
extern TwmWindow *ButtonWindow, *Tmp_win;
|
||
@@ -237,6 +236,12 @@
|
||
extern char *InitFile;
|
||
static void Identify();
|
||
|
||
+/* Local function prototypes */
|
||
+Bool Deferrable(int func);
|
||
+int DeferExecution(int context, int func, char *action, Cursor cursor);
|
||
+void WarpToWindow (TwmWindow *t);
|
||
+void WarpAlongRing (XButtonEvent *ev, Bool forward);
|
||
+
|
||
#define MAX(x,y) ((x)>(y)?(x):(y))
|
||
|
||
|
||
@@ -527,7 +532,7 @@
|
||
|
||
|
||
|
||
-PaintEntry(mr, mi, exposure)
|
||
+void PaintEntry(mr, mi, exposure)
|
||
MenuRoot *mr;
|
||
MenuItem *mi;
|
||
int exposure;
|
||
@@ -602,9 +607,9 @@
|
||
#endif
|
||
|
||
Scr->pullrightPm.pm = FindPixmap(Scr->pullrightPm.name,
|
||
- &Scr->pullrightPm.width,
|
||
- &Scr->pullrightPm.height,
|
||
- &Scr->pullrightPm.isXpm,
|
||
+ &(Scr->pullrightPm.width),
|
||
+ &(Scr->pullrightPm.height),
|
||
+ &(Scr->pullrightPm.isXpm),
|
||
NULL,
|
||
#ifdef XPM
|
||
ctrans, 2,
|
||
@@ -684,7 +689,7 @@
|
||
|
||
|
||
|
||
-PaintMenu(mr, e)
|
||
+void PaintMenu(mr, e)
|
||
MenuRoot *mr;
|
||
XEvent *e;
|
||
{
|
||
@@ -710,7 +715,7 @@
|
||
|
||
static Bool fromMenu;
|
||
|
||
-#if 1
|
||
+void
|
||
UpdateMenu()
|
||
{
|
||
MenuItem *mi;
|
||
@@ -787,13 +792,8 @@
|
||
if (Event.type != MotionNotify)
|
||
continue;
|
||
|
||
-#if 1
|
||
XQueryPointer( dpy, ActiveMenu->w, &aJunkRoot, &aJunkChild,
|
||
&x_root, &y_root, &x, &y, &aJunkMask);
|
||
-#else
|
||
- x = ((XMotionEvent *)&Event)->x;
|
||
- y = ((XMotionEvent *)&Event)->y;
|
||
-#endif
|
||
|
||
/* if we are in the parent, pop back down, this should prevent
|
||
* menus that are slow to pop up from hanging around too long.
|
||
@@ -910,137 +910,6 @@
|
||
}
|
||
|
||
}
|
||
-#else
|
||
-UpdateMenu()
|
||
-{
|
||
- MenuItem *mi;
|
||
- int i, x, y, x_root, y_root, entry;
|
||
- int done;
|
||
- MenuItem *badItem = NULL;
|
||
- Window aJunkRoot, aJunkChild;
|
||
- unsigned int aJunkMask;
|
||
- static int firstTime = True;
|
||
-
|
||
- fromMenu = TRUE;
|
||
-
|
||
- while (TRUE) {
|
||
- while (XCheckMaskEvent(dpy, ButtonPressMask | ButtonReleaseMask |
|
||
- EnterWindowMask | ExposureMask, &Event)) {
|
||
- if (!DispatchEvent())
|
||
- continue;
|
||
-
|
||
- if (Event.type == ButtonRelease || ActiveMenu == NULL) {
|
||
- menuFromFrameOrWindowOrTitlebar = FALSE;
|
||
- fromMenu = FALSE;
|
||
- if (Scr->StayUpMenus) {
|
||
- if (firstTime == True) {
|
||
- /* it was the first release of the button */
|
||
- firstTime = False;
|
||
- }
|
||
- /* end if */
|
||
- else {
|
||
- /* thats the second we need to return now */
|
||
- firstTime = True;
|
||
- return;
|
||
- } /* end else */
|
||
- }
|
||
- /* end if */
|
||
- else {
|
||
- return;
|
||
- } /* end else */
|
||
- }
|
||
- if (Event.type == Cancel) {
|
||
- menuFromFrameOrWindowOrTitlebar = FALSE;
|
||
- fromMenu = FALSE;
|
||
- return;
|
||
- }
|
||
- }
|
||
-
|
||
- done = FALSE;
|
||
- XQueryPointer(dpy, ActiveMenu->w, &aJunkRoot, &aJunkChild,
|
||
- &x_root, &y_root, &x, &y, &aJunkMask);
|
||
-
|
||
- /* if we haven't received the enter notify yet, wait */
|
||
- if (!ActiveMenu || !ActiveMenu->entered)
|
||
- continue;
|
||
-
|
||
- XFindContext(dpy, ActiveMenu->w, ScreenContext, (caddr_t *) & Scr);
|
||
-
|
||
- if (x < 0 || y < 0 ||
|
||
- x >= ActiveMenu->width || y >= ActiveMenu->height) {
|
||
- if (ActiveItem && ActiveItem->func != F_TITLE) {
|
||
- ActiveItem->state = 0;
|
||
- PaintEntry(ActiveMenu, ActiveItem, False);
|
||
- }
|
||
- ActiveItem = NULL;
|
||
- continue;
|
||
- }
|
||
- /* look for the entry that the mouse is in */
|
||
- entry = y / Scr->EntryHeight;
|
||
- for (i = 0, mi = ActiveMenu->first; mi != NULL; i++, mi = mi->next) {
|
||
- if (i == entry)
|
||
- break;
|
||
- }
|
||
-
|
||
- /* if there is an active item, we might have to turn it off */
|
||
- if (ActiveItem) {
|
||
- /* is the active item the one we are on ? */
|
||
- if (ActiveItem->item_num == entry && ActiveItem->state)
|
||
- done = TRUE;
|
||
-
|
||
- /*
|
||
- * if we weren't on the active entry, let's turn the old active
|
||
- * one off
|
||
- */
|
||
- if (!done && ActiveItem->func != F_TITLE) {
|
||
- ActiveItem->state = 0;
|
||
- PaintEntry(ActiveMenu, ActiveItem, False);
|
||
- }
|
||
- }
|
||
- /*
|
||
- * if we weren't on the active item, change the active item and turn
|
||
- * it on
|
||
- */
|
||
- if (!done) {
|
||
- ActiveItem = mi;
|
||
- if (ActiveItem->func != F_TITLE && !ActiveItem->state) {
|
||
- ActiveItem->state = 1;
|
||
- PaintEntry(ActiveMenu, ActiveItem, False);
|
||
- }
|
||
- }
|
||
- /* now check to see if we were over the arrow of a pull right entry */
|
||
- if ((ActiveItem->func == F_MENU || ActiveItem->func == F_MENUFUNC) &&
|
||
- ((ActiveMenu->width - x) * 100 <
|
||
- (ActiveMenu->width * Scr->PopupSensitivity))) {
|
||
- MenuRoot *save = ActiveMenu;
|
||
- int savex = MenuOrigins[MenuDepth - 1].x;
|
||
- int savey = MenuOrigins[MenuDepth - 1].y;
|
||
- if (MenuDepth < MAXMENUDEPTH) {
|
||
- PopUpMenu(ActiveItem->sub,
|
||
- (savex + (int)(ActiveMenu->width
|
||
- * (100-Scr->PopupSensitivity) / 100.0)),
|
||
- (savey + ActiveItem->item_num * Scr->EntryHeight)
|
||
- /*
|
||
- * (savey + ActiveItem->item_num * Scr->EntryHeight +
|
||
- * (Scr->EntryHeight >> 1))
|
||
- */ , False);
|
||
- } else if (!badItem) {
|
||
- XBell(dpy, 0);
|
||
- badItem = ActiveItem;
|
||
- }
|
||
- /* if the menu did get popped up, unhighlight the active item */
|
||
- if (save != ActiveMenu && ActiveItem->state) {
|
||
- ActiveItem->state = 0;
|
||
- PaintEntry(save, ActiveItem, False);
|
||
- ActiveItem = NULL;
|
||
- }
|
||
- }
|
||
- if (badItem != ActiveItem)
|
||
- badItem = NULL;
|
||
- XFlush(dpy);
|
||
- }
|
||
-}
|
||
-#endif
|
||
|
||
|
||
|
||
@@ -1205,7 +1074,7 @@
|
||
|
||
|
||
|
||
-MakeMenus()
|
||
+void MakeMenus(void)
|
||
{
|
||
MenuRoot *mr;
|
||
|
||
@@ -1220,7 +1089,7 @@
|
||
|
||
|
||
|
||
-MakeMenu(mr)
|
||
+void MakeMenu(mr)
|
||
MenuRoot *mr;
|
||
{
|
||
MenuItem *start, *end, *cur, *tmp;
|
||
@@ -1472,10 +1341,11 @@
|
||
* *
|
||
\********************************************************************/
|
||
|
||
+void
|
||
HandleChangingMenus(menu)
|
||
MenuRoot *menu;
|
||
{
|
||
- int WindowNameOffset, WindowNameCount;
|
||
+ int /*WindowNameOffset,*/ WindowNameCount;
|
||
TwmWindow **WindowNames;
|
||
TwmWindow *tmp_win2, *tmp_win3;
|
||
TwmWindow **sortlist, *bakwin;
|
||
@@ -1524,8 +1394,8 @@
|
||
AddToMenu(menu,sortlist[loop]->name, (char *)sortlist[loop],
|
||
NULL, F_POPUP, NULLSTR, NULLSTR);
|
||
} else {
|
||
- WindowNameOffset=(char *)Scr->TwmRoot.next->name -
|
||
- (char *)Scr->TwmRoot.next;
|
||
+/* WindowNameOffset=(char *)Scr->TwmRoot.next->name -
|
||
+ (char *)Scr->TwmRoot.next;*/
|
||
for(tmp_win = Scr->TwmRoot.next , WindowNameCount=0;
|
||
tmp_win != NULL;
|
||
tmp_win = tmp_win->next)
|
||
@@ -1665,7 +1535,7 @@
|
||
***********************************************************************
|
||
*/
|
||
|
||
-PopDownMenu()
|
||
+void PopDownMenu()
|
||
{
|
||
MenuRoot *tmp;
|
||
|
||
@@ -1770,19 +1640,19 @@
|
||
Window w;
|
||
TwmWindow *tmp_win;
|
||
{
|
||
- int lastx, lasty, width, height, bw2;
|
||
- int namelen;
|
||
- int stat;
|
||
+ int lastx, lasty, /*width, height,*/ bw2;
|
||
+/* int namelen;
|
||
+ int stat;*/
|
||
XEvent event;
|
||
- Window junk;
|
||
+/* Window junk;*/
|
||
|
||
- namelen = strlen (tmp_win->name);
|
||
+/* namelen = strlen (tmp_win->name);*/
|
||
bw2 = tmp_win->frame_bw * 2;
|
||
AddingW = tmp_win->attr.width + bw2;
|
||
AddingH = tmp_win->attr.height + tmp_win->title_height + bw2;
|
||
- width = (SIZE_HINDENT + XTextWidth (Scr->SizeFont.font,
|
||
+/* width = (SIZE_HINDENT + XTextWidth (Scr->SizeFont.font,
|
||
tmp_win->name, namelen));
|
||
- height = Scr->SizeFont.height + SIZE_VINDENT * 2;
|
||
+ height = Scr->SizeFont.height + SIZE_VINDENT * 2;*/
|
||
XGetGeometry(dpy, w, &JunkRoot, &origDragX, &origDragY,
|
||
(unsigned int *)&DragWidth, (unsigned int *)&DragHeight,
|
||
&JunkBW, &JunkDepth);
|
||
@@ -1953,18 +1823,14 @@
|
||
int context;
|
||
int pulldown;
|
||
{
|
||
- static Time last_time = 0;
|
||
short Real_OpaqueMove; /* holder for F_OPAQUEMOVE */
|
||
char tmp[200];
|
||
char *ptr;
|
||
char buff[MAX_FILE_SIZE];
|
||
int count, fd;
|
||
- Window rootw;
|
||
- int origX, origY;
|
||
+/* Window rootw;*/
|
||
int do_next_action = TRUE;
|
||
- int moving_icon = FALSE;
|
||
Bool fromtitlebar = False;
|
||
- extern int ConstrainedMoveTime;
|
||
struct MenuItem *item;
|
||
|
||
RootFunction = 0;
|
||
@@ -2049,6 +1915,7 @@
|
||
case F_SCROLLUP:
|
||
case F_SCROLLDOWN:
|
||
case F_SCROLLBACK:
|
||
+ FocusOnRoot();
|
||
ScrollDesktop(func, action);
|
||
break;
|
||
|
||
@@ -2092,8 +1959,6 @@
|
||
return TRUE;
|
||
|
||
if (Scr->VirtualDesktop) {
|
||
- int x, y;
|
||
-
|
||
if (tmp_win->sticky) {
|
||
if (Scr->StickyAbove) {
|
||
XReparentWindow(dpy, tmp_win->frame, Scr->VirtualDesktop,
|
||
@@ -2300,7 +2165,7 @@
|
||
return TRUE;
|
||
|
||
PopDownMenu();
|
||
- rootw = eventp->xbutton.root;
|
||
+/* rootw = eventp->xbutton.root;*/
|
||
MoveFunction = func;
|
||
if (MoveFunction == F_OPAQUEMOVE) {
|
||
Real_OpaqueMove = Scr->OpaqueMove;
|
||
@@ -2313,11 +2178,11 @@
|
||
|
||
if (context == C_ICON && tmp_win->icon.w)
|
||
{
|
||
- DragIcon(tmp_win, eventp, pulldown);
|
||
+ DragIcon(tmp_win, (XButtonEvent *) eventp, pulldown);
|
||
}
|
||
else if (w != tmp_win->icon.w)
|
||
{
|
||
- DragFrame(tmp_win, eventp, pulldown);
|
||
+ DragFrame(tmp_win, (XButtonEvent *) eventp, pulldown);
|
||
}
|
||
#ifdef OLD_MOVE
|
||
if (DeferExecution(context, func, action, Scr->MoveCursor))
|
||
@@ -3149,7 +3014,7 @@
|
||
***********************************************************************
|
||
*/
|
||
|
||
-ReGrab()
|
||
+void ReGrab(void)
|
||
{
|
||
XGrabPointer(dpy, Scr->Root, True,
|
||
ButtonPressMask | ButtonReleaseMask,
|
||
@@ -3171,6 +3036,7 @@
|
||
***********************************************************************
|
||
*/
|
||
|
||
+Bool
|
||
Deferrable(func)
|
||
int func;
|
||
{
|
||
@@ -3205,7 +3071,7 @@
|
||
}
|
||
}
|
||
|
||
-NeedToDefer(root)
|
||
+Bool NeedToDefer(root)
|
||
MenuRoot *root;
|
||
{
|
||
MenuItem *mitem;
|
||
@@ -3321,7 +3187,7 @@
|
||
Scr->FocusRoot = TRUE;
|
||
}
|
||
|
||
-DeIconify(tmp_win)
|
||
+void DeIconify(tmp_win)
|
||
TwmWindow *tmp_win;
|
||
{
|
||
TwmWindow *t;
|
||
@@ -3396,7 +3262,7 @@
|
||
|
||
|
||
|
||
-Iconify(tmp_win, def_x, def_y)
|
||
+void Iconify(tmp_win, def_x, def_y)
|
||
TwmWindow *tmp_win;
|
||
int def_x, def_y;
|
||
{
|
||
@@ -3603,7 +3469,7 @@
|
||
|
||
|
||
|
||
-SetMapStateProp(tmp_win, state)
|
||
+void SetMapStateProp(tmp_win, state)
|
||
TwmWindow *tmp_win;
|
||
int state;
|
||
{
|
||
@@ -3647,7 +3513,7 @@
|
||
|
||
|
||
|
||
-WarpToScreen (n, inc)
|
||
+void WarpToScreen (n, inc)
|
||
int n, inc;
|
||
{
|
||
Window dumwin;
|
||
@@ -3691,7 +3557,7 @@
|
||
* BumpWindowColormap - rotate our internal copy of WM_COLORMAP_WINDOWS
|
||
*/
|
||
|
||
-BumpWindowColormap (tmp, inc)
|
||
+void BumpWindowColormap (tmp, inc)
|
||
TwmWindow *tmp;
|
||
int inc;
|
||
{
|
||
@@ -3704,9 +3570,9 @@
|
||
cwins = (ColormapWindow **) malloc(sizeof(ColormapWindow *)*
|
||
tmp->cmaps.number_cwins);
|
||
if (cwins) {
|
||
- if (previously_installed =
|
||
- /* SUPPRESS 560 */(Scr->cmapInfo.cmaps == &tmp->cmaps &&
|
||
- tmp->cmaps.number_cwins)) {
|
||
+ if ((previously_installed =
|
||
+ (Scr->cmapInfo.cmaps == &tmp->cmaps &&
|
||
+ tmp->cmaps.number_cwins))) {
|
||
for (i = tmp->cmaps.number_cwins; i-- > 0; )
|
||
tmp->cmaps.cwins[i]->colormap->state = 0;
|
||
}
|
||
@@ -3737,7 +3603,7 @@
|
||
|
||
|
||
|
||
-HideIconManager ()
|
||
+void HideIconManager ()
|
||
{
|
||
SetMapStateProp (Scr->iconmgr.twm_win, WithdrawnState);
|
||
UnmapFrame(Scr->iconmgr.twm_win);
|
||
@@ -3749,7 +3615,7 @@
|
||
|
||
|
||
|
||
-SetBorder (tmp, onoroff)
|
||
+void SetBorder (tmp, onoroff)
|
||
TwmWindow *tmp;
|
||
Bool onoroff;
|
||
{
|
||
@@ -3768,7 +3634,7 @@
|
||
|
||
|
||
|
||
-DestroyMenu (menu)
|
||
+void DestroyMenu (menu)
|
||
MenuRoot *menu;
|
||
{
|
||
MenuItem *item;
|
||
@@ -3890,14 +3756,14 @@
|
||
XSendEvent (dpy, w, False, 0L, (XEvent *) &ev);
|
||
}
|
||
|
||
-SendDeleteWindowMessage (tmp, timestamp)
|
||
+void SendDeleteWindowMessage (tmp, timestamp)
|
||
TwmWindow *tmp;
|
||
Time timestamp;
|
||
{
|
||
send_clientmessage (tmp->w, _XA_WM_DELETE_WINDOW, timestamp);
|
||
}
|
||
|
||
-SendSaveYourselfMessage (tmp, timestamp)
|
||
+void SendSaveYourselfMessage (tmp, timestamp)
|
||
TwmWindow *tmp;
|
||
Time timestamp;
|
||
{
|
||
@@ -3905,7 +3771,7 @@
|
||
}
|
||
|
||
|
||
-SendTakeFocusMessage (tmp, timestamp)
|
||
+void SendTakeFocusMessage (tmp, timestamp)
|
||
TwmWindow *tmp;
|
||
Time timestamp;
|
||
{
|