mirror of
https://github.com/Interlisp/maiko.git
synced 2026-05-01 06:09:21 +00:00
Implement -noscroll option to ldex to disable X window scroll bars (#399)
Adds a -noscroll option, parsed as an X option, also accessible via resource ldex*noscroll, which avoids adding the bottom and side scroll bars and the bit-gravity control buttons to the main Lisp display window. Unless the geometry given for the X window in which the Lisp screen is displayed is at least as big as the Lisp screen part of the Lisp screen (bottom, right) will not be visible. On macOS with XQuartz, maximizing the X window will bring it to the size of the Lisp screen (or the size of the display, whichever is smaller)
This commit is contained in:
@@ -210,7 +210,8 @@ int UnixPipeIn;
|
|||||||
int UnixPipeOut;
|
int UnixPipeOut;
|
||||||
int UnixPID;
|
int UnixPID;
|
||||||
int please_fork = 1;
|
int please_fork = 1;
|
||||||
|
/* disable X11 scroll bars if requested */
|
||||||
|
int noscroll = 0;
|
||||||
/*** STACK handle staff(Takeshi) **/
|
/*** STACK handle staff(Takeshi) **/
|
||||||
LispPTR *STACKOVERFLOW_word;
|
LispPTR *STACKOVERFLOW_word;
|
||||||
LispPTR *GuardStackAddr_word;
|
LispPTR *GuardStackAddr_word;
|
||||||
|
|||||||
29
src/xinit.c
29
src/xinit.c
@@ -51,6 +51,7 @@
|
|||||||
extern DLword *Lisp_world;
|
extern DLword *Lisp_world;
|
||||||
extern char Display_Name[128];
|
extern char Display_Name[128];
|
||||||
extern DLword *DisplayRegion68k;
|
extern DLword *DisplayRegion68k;
|
||||||
|
extern int noscroll;
|
||||||
bool Lisp_Xinitialized = false;
|
bool Lisp_Xinitialized = false;
|
||||||
int xsync = False;
|
int xsync = False;
|
||||||
|
|
||||||
@@ -86,15 +87,16 @@ void init_Xevent(DspInterface dsp)
|
|||||||
|
|
||||||
XSelectInput(dsp->display_id, dsp->LispWindow, dsp->EnableEventMask);
|
XSelectInput(dsp->display_id, dsp->LispWindow, dsp->EnableEventMask);
|
||||||
XSelectInput(dsp->display_id, dsp->DisplayWindow, dsp->EnableEventMask);
|
XSelectInput(dsp->display_id, dsp->DisplayWindow, dsp->EnableEventMask);
|
||||||
XSelectInput(dsp->display_id, dsp->HorScrollBar, BarMask);
|
if (noscroll == 0) {
|
||||||
XSelectInput(dsp->display_id, dsp->VerScrollBar, BarMask);
|
XSelectInput(dsp->display_id, dsp->HorScrollBar, BarMask);
|
||||||
XSelectInput(dsp->display_id, dsp->HorScrollButton, NoEventMask);
|
XSelectInput(dsp->display_id, dsp->VerScrollBar, BarMask);
|
||||||
XSelectInput(dsp->display_id, dsp->VerScrollButton, NoEventMask);
|
XSelectInput(dsp->display_id, dsp->HorScrollButton, NoEventMask);
|
||||||
XSelectInput(dsp->display_id, dsp->NEGrav, GravMask);
|
XSelectInput(dsp->display_id, dsp->VerScrollButton, NoEventMask);
|
||||||
XSelectInput(dsp->display_id, dsp->SEGrav, GravMask);
|
XSelectInput(dsp->display_id, dsp->NEGrav, GravMask);
|
||||||
XSelectInput(dsp->display_id, dsp->SWGrav, GravMask);
|
XSelectInput(dsp->display_id, dsp->SEGrav, GravMask);
|
||||||
XSelectInput(dsp->display_id, dsp->NWGrav, GravMask);
|
XSelectInput(dsp->display_id, dsp->SWGrav, GravMask);
|
||||||
|
XSelectInput(dsp->display_id, dsp->NWGrav, GravMask);
|
||||||
|
}
|
||||||
} /*end init_Xevent */
|
} /*end init_Xevent */
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
@@ -237,8 +239,13 @@ DspInterface X_init(DspInterface dsp, char *lispbitmap, int width_hint, int heig
|
|||||||
Xscreen = ScreenOfDisplay(dsp->display_id, DefaultScreen(dsp->display_id));
|
Xscreen = ScreenOfDisplay(dsp->display_id, DefaultScreen(dsp->display_id));
|
||||||
|
|
||||||
/* Set the scrollbar and border widths */
|
/* Set the scrollbar and border widths */
|
||||||
dsp->ScrollBarWidth = SCROLL_WIDTH;
|
if (noscroll == 0) {
|
||||||
dsp->InternalBorderWidth = DEF_BDRWIDE;
|
dsp->ScrollBarWidth = SCROLL_WIDTH;
|
||||||
|
dsp->InternalBorderWidth = DEF_BDRWIDE;
|
||||||
|
} else {
|
||||||
|
dsp->ScrollBarWidth = 0;
|
||||||
|
dsp->InternalBorderWidth = 0;
|
||||||
|
}
|
||||||
|
|
||||||
dsp->Visible.x = LispDisplayRequestedX;
|
dsp->Visible.x = LispDisplayRequestedX;
|
||||||
dsp->Visible.y = LispDisplayRequestedY;
|
dsp->Visible.y = LispDisplayRequestedY;
|
||||||
|
|||||||
148
src/xlspwin.c
148
src/xlspwin.c
@@ -58,6 +58,7 @@ Cursor WaitCursor, DefaultCursor, VertScrollCursor, VertThumbCursor, ScrollUpCur
|
|||||||
|
|
||||||
extern int LispWindowRequestedX, LispWindowRequestedY;
|
extern int LispWindowRequestedX, LispWindowRequestedY;
|
||||||
extern unsigned LispWindowRequestedWidth, LispWindowRequestedHeight;
|
extern unsigned LispWindowRequestedWidth, LispWindowRequestedHeight;
|
||||||
|
extern int noscroll;
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
@@ -187,86 +188,87 @@ void Create_LispWindow(DspInterface dsp)
|
|||||||
set_Xcursor(dsp, scrollup_cursor.cuimage, (int)scrollup_cursor.cuhotspotx,
|
set_Xcursor(dsp, scrollup_cursor.cuimage, (int)scrollup_cursor.cuhotspotx,
|
||||||
(int)(15 - scrollup_cursor.cuhotspoty), &ScrollUpCursor, 0);
|
(int)(15 - scrollup_cursor.cuhotspoty), &ScrollUpCursor, 0);
|
||||||
|
|
||||||
/********************************/
|
if (noscroll == 0) {
|
||||||
/* Make all the toolkit windows */
|
/********************************/
|
||||||
/********************************/
|
/* Make all the toolkit windows */
|
||||||
dsp->VerScrollBar = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col2,
|
/********************************/
|
||||||
0 - dsp->InternalBorderWidth, /* y */
|
dsp->VerScrollBar = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col2,
|
||||||
dsp->ScrollBarWidth, /* width */
|
0 - dsp->InternalBorderWidth, /* y */
|
||||||
dsp->Visible.height, dsp->InternalBorderWidth,
|
dsp->ScrollBarWidth, /* width */
|
||||||
BlackPixelOfScreen(screen), WhitePixelOfScreen(screen));
|
dsp->Visible.height, dsp->InternalBorderWidth,
|
||||||
DefineCursor(dsp, dsp->VerScrollBar, &VertScrollCursor);
|
BlackPixelOfScreen(screen), WhitePixelOfScreen(screen));
|
||||||
XMapWindow(dsp->display_id, dsp->VerScrollBar);
|
DefineCursor(dsp, dsp->VerScrollBar, &VertScrollCursor);
|
||||||
|
XMapWindow(dsp->display_id, dsp->VerScrollBar);
|
||||||
|
|
||||||
dsp->HorScrollBar = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow,
|
dsp->HorScrollBar = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow,
|
||||||
0 - dsp->InternalBorderWidth, Row2, /* y */
|
0 - dsp->InternalBorderWidth, Row2, /* y */
|
||||||
dsp->Visible.width, /* width */
|
dsp->Visible.width, /* width */
|
||||||
dsp->ScrollBarWidth, dsp->InternalBorderWidth,
|
dsp->ScrollBarWidth, dsp->InternalBorderWidth,
|
||||||
BlackPixelOfScreen(screen), WhitePixelOfScreen(screen));
|
BlackPixelOfScreen(screen), WhitePixelOfScreen(screen));
|
||||||
DefineCursor(dsp, dsp->HorScrollBar, &HorizScrollCursor);
|
DefineCursor(dsp, dsp->HorScrollBar, &HorizScrollCursor);
|
||||||
XChangeWindowAttributes(dsp->display_id, dsp->HorScrollBar, CWOverrideRedirect,
|
XChangeWindowAttributes(dsp->display_id, dsp->HorScrollBar, CWOverrideRedirect,
|
||||||
&Lisp_SetWinAttributes);
|
&Lisp_SetWinAttributes);
|
||||||
XMapWindow(dsp->display_id, dsp->HorScrollBar);
|
XMapWindow(dsp->display_id, dsp->HorScrollBar);
|
||||||
|
|
||||||
dsp->VerScrollButton = XCreateSimpleWindow(
|
dsp->VerScrollButton = XCreateSimpleWindow(
|
||||||
dsp->display_id, dsp->VerScrollBar, 0 - dsp->InternalBorderWidth, /* x */
|
dsp->display_id, dsp->VerScrollBar, 0 - dsp->InternalBorderWidth, /* x */
|
||||||
(int)((dsp->Visible.y * dsp->Visible.height) / dsp->Display.height), /* y */
|
(int)((dsp->Visible.y * dsp->Visible.height) / dsp->Display.height), /* y */
|
||||||
dsp->ScrollBarWidth, /* width */
|
dsp->ScrollBarWidth, /* width */
|
||||||
(int)((dsp->Visible.height * dsp->Visible.height) / dsp->Display.height) + 1,
|
(int)((dsp->Visible.height * dsp->Visible.height) / dsp->Display.height) + 1,
|
||||||
dsp->InternalBorderWidth, BlackPixelOfScreen(screen), WhitePixelOfScreen(screen));
|
dsp->InternalBorderWidth, BlackPixelOfScreen(screen), WhitePixelOfScreen(screen));
|
||||||
XChangeWindowAttributes(dsp->display_id, dsp->VerScrollButton, CWOverrideRedirect,
|
XChangeWindowAttributes(dsp->display_id, dsp->VerScrollButton, CWOverrideRedirect,
|
||||||
&Lisp_SetWinAttributes);
|
&Lisp_SetWinAttributes);
|
||||||
XSetWindowBackgroundPixmap(dsp->display_id, dsp->VerScrollButton, dsp->ScrollBarPixmap);
|
XSetWindowBackgroundPixmap(dsp->display_id, dsp->VerScrollButton, dsp->ScrollBarPixmap);
|
||||||
XClearWindow(dsp->display_id, dsp->VerScrollButton);
|
XClearWindow(dsp->display_id, dsp->VerScrollButton);
|
||||||
XMapWindow(dsp->display_id, dsp->VerScrollButton);
|
XMapWindow(dsp->display_id, dsp->VerScrollButton);
|
||||||
|
|
||||||
dsp->HorScrollButton = XCreateSimpleWindow(
|
dsp->HorScrollButton = XCreateSimpleWindow(
|
||||||
dsp->display_id, dsp->HorScrollBar,
|
dsp->display_id, dsp->HorScrollBar,
|
||||||
(int)((dsp->Visible.x * dsp->Visible.width) / dsp->Display.width),
|
(int)((dsp->Visible.x * dsp->Visible.width) / dsp->Display.width),
|
||||||
0 - dsp->InternalBorderWidth, /* y */
|
0 - dsp->InternalBorderWidth, /* y */
|
||||||
(int)((dsp->Visible.width * dsp->Visible.width) / dsp->Display.width) + 1,
|
(int)((dsp->Visible.width * dsp->Visible.width) / dsp->Display.width) + 1,
|
||||||
dsp->ScrollBarWidth, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
dsp->ScrollBarWidth, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
||||||
WhitePixelOfScreen(screen));
|
WhitePixelOfScreen(screen));
|
||||||
XChangeWindowAttributes(dsp->display_id, dsp->HorScrollButton, CWOverrideRedirect,
|
XChangeWindowAttributes(dsp->display_id, dsp->HorScrollButton, CWOverrideRedirect,
|
||||||
&Lisp_SetWinAttributes);
|
&Lisp_SetWinAttributes);
|
||||||
XSetWindowBackgroundPixmap(dsp->display_id, dsp->HorScrollButton, dsp->ScrollBarPixmap);
|
XSetWindowBackgroundPixmap(dsp->display_id, dsp->HorScrollButton, dsp->ScrollBarPixmap);
|
||||||
XClearWindow(dsp->display_id, dsp->HorScrollButton);
|
XClearWindow(dsp->display_id, dsp->HorScrollButton);
|
||||||
XMapWindow(dsp->display_id, dsp->HorScrollButton);
|
XMapWindow(dsp->display_id, dsp->HorScrollButton);
|
||||||
|
|
||||||
dsp->NWGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col2, Row2, GravSize,
|
dsp->NWGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col2, Row2, GravSize,
|
||||||
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
||||||
WhitePixelOfScreen(screen));
|
WhitePixelOfScreen(screen));
|
||||||
XSetWindowBackgroundPixmap(dsp->display_id, dsp->NWGrav, dsp->GravityOnPixmap);
|
XSetWindowBackgroundPixmap(dsp->display_id, dsp->NWGrav, dsp->GravityOnPixmap);
|
||||||
DefineCursor(dsp, dsp->NWGrav, &DefaultCursor);
|
DefineCursor(dsp, dsp->NWGrav, &DefaultCursor);
|
||||||
XChangeWindowAttributes(dsp->display_id, dsp->NWGrav, CWOverrideRedirect, &Lisp_SetWinAttributes);
|
XChangeWindowAttributes(dsp->display_id, dsp->NWGrav, CWOverrideRedirect, &Lisp_SetWinAttributes);
|
||||||
XClearWindow(dsp->display_id, dsp->NWGrav);
|
XClearWindow(dsp->display_id, dsp->NWGrav);
|
||||||
XMapWindow(dsp->display_id, dsp->NWGrav);
|
XMapWindow(dsp->display_id, dsp->NWGrav);
|
||||||
|
|
||||||
dsp->SEGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col3, Row3, GravSize,
|
dsp->SEGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col3, Row3, GravSize,
|
||||||
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
||||||
WhitePixelOfScreen(screen));
|
WhitePixelOfScreen(screen));
|
||||||
XSetWindowBackgroundPixmap(dsp->display_id, dsp->SEGrav, dsp->GravityOffPixmap);
|
XSetWindowBackgroundPixmap(dsp->display_id, dsp->SEGrav, dsp->GravityOffPixmap);
|
||||||
DefineCursor(dsp, dsp->SEGrav, &DefaultCursor);
|
DefineCursor(dsp, dsp->SEGrav, &DefaultCursor);
|
||||||
XChangeWindowAttributes(dsp->display_id, dsp->SEGrav, CWOverrideRedirect, &Lisp_SetWinAttributes);
|
XChangeWindowAttributes(dsp->display_id, dsp->SEGrav, CWOverrideRedirect, &Lisp_SetWinAttributes);
|
||||||
XClearWindow(dsp->display_id, dsp->NWGrav);
|
XClearWindow(dsp->display_id, dsp->NWGrav);
|
||||||
XMapWindow(dsp->display_id, dsp->SEGrav);
|
XMapWindow(dsp->display_id, dsp->SEGrav);
|
||||||
|
|
||||||
dsp->SWGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col2, Row3, GravSize,
|
dsp->SWGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col2, Row3, GravSize,
|
||||||
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
||||||
WhitePixelOfScreen(screen));
|
WhitePixelOfScreen(screen));
|
||||||
XSetWindowBackgroundPixmap(dsp->display_id, dsp->SWGrav, dsp->GravityOffPixmap);
|
XSetWindowBackgroundPixmap(dsp->display_id, dsp->SWGrav, dsp->GravityOffPixmap);
|
||||||
DefineCursor(dsp, dsp->SWGrav, &DefaultCursor);
|
DefineCursor(dsp, dsp->SWGrav, &DefaultCursor);
|
||||||
XClearWindow(dsp->display_id, dsp->NWGrav);
|
XClearWindow(dsp->display_id, dsp->NWGrav);
|
||||||
XMapWindow(dsp->display_id, dsp->SWGrav);
|
XMapWindow(dsp->display_id, dsp->SWGrav);
|
||||||
|
|
||||||
dsp->NEGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col3, Row2, GravSize,
|
|
||||||
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
|
||||||
WhitePixelOfScreen(screen));
|
|
||||||
XSetWindowBackgroundPixmap(dsp->display_id, dsp->NEGrav, dsp->GravityOffPixmap);
|
|
||||||
DefineCursor(dsp, dsp->NEGrav, &DefaultCursor);
|
|
||||||
XClearWindow(dsp->display_id, dsp->NWGrav);
|
|
||||||
XMapWindow(dsp->display_id, dsp->NEGrav);
|
|
||||||
|
|
||||||
|
dsp->NEGrav = XCreateSimpleWindow(dsp->display_id, dsp->LispWindow, Col3, Row2, GravSize,
|
||||||
|
GravSize, dsp->InternalBorderWidth, BlackPixelOfScreen(screen),
|
||||||
|
WhitePixelOfScreen(screen));
|
||||||
|
XSetWindowBackgroundPixmap(dsp->display_id, dsp->NEGrav, dsp->GravityOffPixmap);
|
||||||
|
DefineCursor(dsp, dsp->NEGrav, &DefaultCursor);
|
||||||
|
XClearWindow(dsp->display_id, dsp->NWGrav);
|
||||||
|
XMapWindow(dsp->display_id, dsp->NEGrav);
|
||||||
|
}
|
||||||
/* DefineCursor( dsp, dsp->DisplayWindow, &WaitCursor ); */
|
/* DefineCursor( dsp, dsp->DisplayWindow, &WaitCursor ); */
|
||||||
|
|
||||||
XLOCK;
|
XLOCK;
|
||||||
|
|||||||
15
src/xrdopt.c
15
src/xrdopt.c
@@ -68,6 +68,7 @@ static XrmOptionDescRec opTable[] = {
|
|||||||
{"-m", "*memory", XrmoptionSepArg, (XPointer)NULL},
|
{"-m", "*memory", XrmoptionSepArg, (XPointer)NULL},
|
||||||
{"-NF", "*NoFork", XrmoptionIsArg, (XPointer)NULL},
|
{"-NF", "*NoFork", XrmoptionIsArg, (XPointer)NULL},
|
||||||
{"-NoFork", "*NoFork", XrmoptionIsArg, (XPointer)NULL},
|
{"-NoFork", "*NoFork", XrmoptionIsArg, (XPointer)NULL},
|
||||||
|
{"-noscroll", "*noscroll", XrmoptionIsArg, (XPointer) NULL},
|
||||||
{"-INIT", "*Init", XrmoptionIsArg, (XPointer)NULL},
|
{"-INIT", "*Init", XrmoptionIsArg, (XPointer)NULL},
|
||||||
{"-EtherNet", "*EtherNet", XrmoptionSepArg, (XPointer)NULL},
|
{"-EtherNet", "*EtherNet", XrmoptionSepArg, (XPointer)NULL},
|
||||||
{"-E", "*EtherNet", XrmoptionSepArg, (XPointer)NULL},
|
{"-E", "*EtherNet", XrmoptionSepArg, (XPointer)NULL},
|
||||||
@@ -85,7 +86,7 @@ char Window_Title[255];
|
|||||||
char Icon_Title[255];
|
char Icon_Title[255];
|
||||||
|
|
||||||
extern char sysout_name[];
|
extern char sysout_name[];
|
||||||
extern int sysout_size, for_makeinit, please_fork;
|
extern int sysout_size, for_makeinit, please_fork, noscroll;
|
||||||
/* diagnostic flag for sysout dumping */
|
/* diagnostic flag for sysout dumping */
|
||||||
/* extern int maxpages; */
|
/* extern int maxpages; */
|
||||||
|
|
||||||
@@ -173,8 +174,7 @@ void read_Xoption(int *argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
sysout_name[0] = '\0';
|
sysout_name[0] = '\0';
|
||||||
if (*argc == 2) /* There was probably a sysoutarg */
|
if (*argc == 2) { /* There was probably a sysoutarg */
|
||||||
{
|
|
||||||
(void)strncpy(sysout_name, argv[1], PATH_MAX - 1);
|
(void)strncpy(sysout_name, argv[1], PATH_MAX - 1);
|
||||||
} else if ((envname = getenv("LDESRCESYSOUT")) != NULL) {
|
} else if ((envname = getenv("LDESRCESYSOUT")) != NULL) {
|
||||||
strncpy(sysout_name, envname, PATH_MAX - 1);
|
strncpy(sysout_name, envname, PATH_MAX - 1);
|
||||||
@@ -184,8 +184,9 @@ void read_Xoption(int *argc, char *argv[])
|
|||||||
envname = getenv("HOME");
|
envname = getenv("HOME");
|
||||||
(void)strcat(sysout_name, envname);
|
(void)strcat(sysout_name, envname);
|
||||||
(void)strcat(sysout_name, "/lisp.virtualmem");
|
(void)strcat(sysout_name, "/lisp.virtualmem");
|
||||||
|
}
|
||||||
if (access(sysout_name, R_OK) != 0) { (void)strcat(sysout_name, ""); }
|
if (access(sysout_name, R_OK) != 0) {
|
||||||
|
sysout_name[0] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* In order to access other DB's we have to open the main display now */
|
/* In order to access other DB's we have to open the main display now */
|
||||||
@@ -278,6 +279,10 @@ void read_Xoption(int *argc, char *argv[])
|
|||||||
please_fork = 0;
|
please_fork = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (XrmGetResource(rDB, "ldex.noscroll", "Ldex.noscroll", str_type, &value) == True) {
|
||||||
|
noscroll = 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* if (XrmGetResource(rDB,
|
/* if (XrmGetResource(rDB,
|
||||||
"ldex.maxpages",
|
"ldex.maxpages",
|
||||||
"Ldex.maxpages",
|
"Ldex.maxpages",
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ int Mouse_Included = FALSE;
|
|||||||
|
|
||||||
extern Cursor WaitCursor, DefaultCursor, VertScrollCursor, VertThumbCursor, ScrollUpCursor,
|
extern Cursor WaitCursor, DefaultCursor, VertScrollCursor, VertThumbCursor, ScrollUpCursor,
|
||||||
ScrollDownCursor, HorizScrollCursor, HorizThumbCursor, ScrollLeftCursor, ScrollRightCursor;
|
ScrollDownCursor, HorizScrollCursor, HorizThumbCursor, ScrollLeftCursor, ScrollRightCursor;
|
||||||
|
extern int noscroll;
|
||||||
extern DspInterface currentdsp;
|
extern DspInterface currentdsp;
|
||||||
|
|
||||||
extern DLword *EmCursorX68K, *EmCursorY68K;
|
extern DLword *EmCursorX68K, *EmCursorY68K;
|
||||||
@@ -109,33 +109,35 @@ static void lisp_Xconfigure(DspInterface dsp, int x, int y, int lspWinWidth, int
|
|||||||
XLOCK;
|
XLOCK;
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->DisplayWindow, 0, 0, dsp->Visible.width,
|
XMoveResizeWindow(dsp->display_id, dsp->DisplayWindow, 0, 0, dsp->Visible.width,
|
||||||
dsp->Visible.height);
|
dsp->Visible.height);
|
||||||
/* Scroll bars */
|
if (noscroll == 0) {
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->VerScrollBar, Col2, 0 - dsp->InternalBorderWidth, /* y */
|
/* Scroll bars */
|
||||||
dsp->ScrollBarWidth, /* width */
|
XMoveResizeWindow(dsp->display_id, dsp->VerScrollBar, Col2, 0 - dsp->InternalBorderWidth, /* y */
|
||||||
dsp->Visible.height); /* height */
|
dsp->ScrollBarWidth, /* width */
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->HorScrollBar, 0 - dsp->InternalBorderWidth, Row2, /* y */
|
dsp->Visible.height); /* height */
|
||||||
dsp->Visible.width, /* width */
|
XMoveResizeWindow(dsp->display_id, dsp->HorScrollBar, 0 - dsp->InternalBorderWidth, Row2, /* y */
|
||||||
dsp->ScrollBarWidth); /* height */
|
dsp->Visible.width, /* width */
|
||||||
|
dsp->ScrollBarWidth); /* height */
|
||||||
|
|
||||||
/* Scroll buttons */
|
/* Scroll buttons */
|
||||||
XMoveResizeWindow(
|
XMoveResizeWindow(
|
||||||
dsp->display_id, dsp->HorScrollButton,
|
dsp->display_id, dsp->HorScrollButton,
|
||||||
(int)((dsp->Visible.x * dsp->Visible.width) / dsp->Display.width), /* x */
|
(int)((dsp->Visible.x * dsp->Visible.width) / dsp->Display.width), /* x */
|
||||||
0 - dsp->InternalBorderWidth, /* y */
|
0 - dsp->InternalBorderWidth, /* y */
|
||||||
(int)((dsp->Visible.width * dsp->Visible.width) / dsp->Display.width) + 1, /* width */
|
(int)((dsp->Visible.width * dsp->Visible.width) / dsp->Display.width) + 1, /* width */
|
||||||
dsp->ScrollBarWidth); /* height */
|
dsp->ScrollBarWidth); /* height */
|
||||||
XMoveResizeWindow(
|
XMoveResizeWindow(
|
||||||
dsp->display_id, dsp->VerScrollButton, 0 - dsp->InternalBorderWidth, /* x */
|
dsp->display_id, dsp->VerScrollButton, 0 - dsp->InternalBorderWidth, /* x */
|
||||||
(int)((dsp->Visible.y * dsp->Visible.height) / dsp->Display.height), /* y */
|
(int)((dsp->Visible.y * dsp->Visible.height) / dsp->Display.height), /* y */
|
||||||
dsp->ScrollBarWidth, /* width */
|
dsp->ScrollBarWidth, /* width */
|
||||||
(int)((dsp->Visible.height * dsp->Visible.height) / dsp->Display.height) + 1); /* height */
|
(int)((dsp->Visible.height * dsp->Visible.height) / dsp->Display.height) + 1); /* height */
|
||||||
|
|
||||||
/* Gravity windows */
|
/* Gravity windows */
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->NWGrav, Col2, Row2, GravSize, GravSize);
|
XMoveResizeWindow(dsp->display_id, dsp->NWGrav, Col2, Row2, GravSize, GravSize);
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->NEGrav, Col3, Row2, GravSize, GravSize);
|
XMoveResizeWindow(dsp->display_id, dsp->NEGrav, Col3, Row2, GravSize, GravSize);
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->SEGrav, Col3, Row3, GravSize, GravSize);
|
XMoveResizeWindow(dsp->display_id, dsp->SEGrav, Col3, Row3, GravSize, GravSize);
|
||||||
XMoveResizeWindow(dsp->display_id, dsp->SWGrav, Col2, Row3, GravSize, GravSize);
|
XMoveResizeWindow(dsp->display_id, dsp->SWGrav, Col2, Row3, GravSize, GravSize);
|
||||||
Scroll(dsp, dsp->Visible.x, dsp->Visible.y);
|
Scroll(dsp, dsp->Visible.x, dsp->Visible.y);
|
||||||
|
}
|
||||||
XFlush(dsp->display_id);
|
XFlush(dsp->display_id);
|
||||||
XUNLOCK(dsp);
|
XUNLOCK(dsp);
|
||||||
} /* end lisp_Xconfigure */
|
} /* end lisp_Xconfigure */
|
||||||
|
|||||||
Reference in New Issue
Block a user