Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
82ab807f
Commit
82ab807f
authored
Dec 28, 2011
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'nxagent'
parents
aa166550
c29053f8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
212 additions
and
84 deletions
+212
-84
CHANGELOG
nx-X11/programs/Xserver/hw/nxagent/CHANGELOG
+14
-0
Colormap.c
nx-X11/programs/Xserver/hw/nxagent/Colormap.c
+8
-2
Display.c
nx-X11/programs/Xserver/hw/nxagent/Display.c
+80
-47
Events.c
nx-X11/programs/Xserver/hw/nxagent/Events.c
+17
-13
Keyboard.c
nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
+22
-2
Keyboard.h
nx-X11/programs/Xserver/hw/nxagent/Keyboard.h
+3
-0
Screen.c
nx-X11/programs/Xserver/hw/nxagent/Screen.c
+61
-20
Window.c
nx-X11/programs/Xserver/hw/nxagent/Window.c
+7
-0
No files found.
nx-X11/programs/Xserver/hw/nxagent/CHANGELOG
View file @
82ab807f
ChangeLog:
nxagent-3.5.0-7
- Fixed TR10I02622. Corrected function searching for icon file.
nxagent-3.5.0-6
- Fixed TR10I02621. Avoided explicit call to XMapWindow() at recon-
nection stage.
- Fixed TR10I02620. Solved error in default visual set up.
- Fixed TR10H02390. Get the actual remote key code for CapsLock and
NumLock.
nxagent-3.5.0-5
- The NX agent failed to resize its own window to fit the desktop size
...
...
nx-X11/programs/Xserver/hw/nxagent/Colormap.c
View file @
82ab807f
...
...
@@ -69,8 +69,9 @@ Bool nxagentCreateColormap(ColormapPtr pCmap)
Visual
*
visual
;
int
class
;
#ifdef TEST
fprintf
(
stderr
,
"nxagentCreateColormap: Going to create new colormap.
\n
"
);
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"nxagentCreateColormap: Going to create new colormap with "
" visual [%lu].
\n
"
,
pCmap
->
pVisual
);
#endif
pVisual
=
pCmap
->
pVisual
;
...
...
@@ -511,6 +512,11 @@ Bool nxagentCreateDefaultColormap(ScreenPtr pScreen)
unsigned
short
zero
=
0
,
ones
=
0xFFFF
;
Pixel
wp
,
bp
;
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"Debug: Searching for the root visual [%lu].
\n
"
,
pScreen
->
rootVisual
);
#endif
for
(
pVisual
=
pScreen
->
visuals
;
pVisual
->
vid
!=
pScreen
->
rootVisual
;
pVisual
++
);
...
...
nx-X11/programs/Xserver/hw/nxagent/Display.c
View file @
82ab807f
...
...
@@ -1482,6 +1482,10 @@ void nxagentSetDefaultVisual(void)
int
i
;
nxagentDefaultVisualIndex
=
3
;
return
;
if
(
nxagentUserDefaultClass
||
nxagentUserDefaultDepth
)
{
nxagentDefaultVisualIndex
=
UNDEFINED
;
...
...
@@ -1840,68 +1844,98 @@ FIXME: Is this needed?
nxagentDisplay
=
NULL
;
}
static
FILE
*
nxagentLookForIconFile
(
char
*
iconName
,
const
char
*
permission
,
char
*
return_path
)
{
char
*
path
;
char
*
end
;
char
singlePath
[
PATH_MAX
];
int
breakLoop
;
FILE
*
fptr
=
NULL
;
#ifdef WIN32
const
char
separator
=
';'
;
const
char
*
slash
=
"
\\
"
;
#else
const
char
separator
=
':'
;
const
char
*
slash
=
"/"
;
#endif
if
((
path
=
getenv
(
"PATH"
))
==
NULL
)
{
return
NULL
;
}
for
(
breakLoop
=
0
;
breakLoop
==
0
&&
fptr
==
NULL
;
)
{
end
=
strchr
(
path
,
separator
);
if
(
end
!=
NULL
)
{
strncpy
(
singlePath
,
path
,
(
unsigned
long
)(
end
-
path
));
singlePath
[(
unsigned
long
)(
end
-
path
)]
=
0
;
path
=
end
+
1
;
}
else
{
strcpy
(
singlePath
,
path
);
breakLoop
=
1
;
}
if
(
singlePath
[
strlen
(
singlePath
)
-
1
]
==
slash
[
0
])
{
singlePath
[
strlen
(
singlePath
)
-
1
]
=
0
;
}
if
(
strlen
(
singlePath
)
+
strlen
(
iconName
)
+
1
<
PATH_MAX
)
{
strncat
(
singlePath
,
slash
,
1
);
strcat
(
singlePath
,
iconName
);
if
((
fptr
=
fopen
(
singlePath
,
permission
))
!=
NULL
)
{
strcpy
(
return_path
,
singlePath
);
}
}
else
{
fprintf
(
stderr
,
"Error: Path too long.
\n
"
);
}
}
return
fptr
;
}
Bool
nxagentMakeIcon
(
Display
*
display
,
Pixmap
*
nxIcon
,
Pixmap
*
nxMask
)
{
char
*
env_path
=
getenv
(
"PATH"
);
int
lenght_env_path
=
0
;
char
icon_filename
[
256
];
char
default_path
[
256
];
char
*
icon_path
=
malloc
(
strlen
(
env_path
)
+
sizeof
(
icon_filename
)
);
char
default_path
[
PATH_MAX
];
char
icon_path
[
PATH_MAX
];
FILE
*
icon_fp
;
int
status
;
Bool
success
=
False
;
XlibPixmap
IconPixmap
;
XlibPixmap
IconShape
;
if
(
env_path
==
NULL
)
lenght_env_path
=
0
;
else
lenght_env_path
=
strlen
(
env_path
)
+
1
;
strncpy
(
icon_filename
,
""
,
255
);
strncpy
(
default_path
,
""
,
255
);
strcat
(
icon_filename
,
NXAGENT_ICON_NAME
);
strcat
(
default_path
,
"/usr/NX/share/images/"
);
strcat
(
default_path
,
icon_filename
);
snprintf
(
default_path
,
PATH_MAX
-
1
,
"/usr/NX/share/images/%s"
,
NXAGENT_ICON_NAME
);
if
((
icon_fp
=
fopen
(
default_path
,
"r"
))
==
NULL
)
{
char
*
s
;
char
*
temp_path
=
malloc
(
lenght_env_path
+
strlen
(
icon_filename
)
);
char
*
temp_path1
=
malloc
(
lenght_env_path
+
strlen
(
icon_filename
)
);
strncpy
(
temp_path
,
env_path
,
strlen
(
env_path
));
strncpy
(
temp_path1
,
""
,
lenght_env_path
+
strlen
(
icon_filename
)
);
icon_fp
=
nxagentLookForIconFile
(
NXAGENT_ICON_NAME
,
"r"
,
icon_path
);
while
(
strlen
(
temp_path
)
>
0
)
if
(
icon_fp
!=
NULL
)
{
s
=
strpbrk
(
temp_path
,
":"
);
if
(
s
==
NULL
)
break
;
strncpy
(
temp_path1
,
temp_path
,
strlen
(
temp_path
)
-
strlen
(
s
)
);
strncat
(
temp_path1
,
"/"
,
1
);
strncat
(
temp_path1
,
icon_filename
,
strlen
(
icon_filename
));
if
((
icon_fp
=
fopen
(
temp_path1
,
"r"
))
!=
NULL
)
{
fclose
(
icon_fp
);
success
=
True
;
strcpy
(
icon_path
,
temp_path1
);
break
;
}
strncpy
(
temp_path1
,
""
,
lenght_env_path
+
strlen
(
icon_filename
)
);
strncpy
(
temp_path1
,
s
+
1
,
strlen
(
s
)
-
1
);
strncpy
(
temp_path
,
""
,
lenght_env_path
+
strlen
(
icon_filename
)
);
strcpy
(
temp_path
,
temp_path1
);
strncpy
(
temp_path1
,
""
,
lenght_env_path
+
strlen
(
icon_filename
)
);
}
free
(
temp_path
);
free
(
temp_path1
);
fclose
(
icon_fp
);
success
=
True
;
}
}
else
{
fclose
(
icon_fp
);
success
=
True
;
strcpy
(
icon_path
,
default_path
);
fclose
(
icon_fp
);
success
=
True
;
strcpy
(
icon_path
,
default_path
);
}
if
(
success
)
...
...
@@ -1948,7 +1982,6 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask)
}
}
free
(
icon_path
);
*
nxIcon
=
IconPixmap
;
*
nxMask
=
IconShape
;
...
...
nx-X11/programs/Xserver/hw/nxagent/Events.c
View file @
82ab807f
...
...
@@ -395,8 +395,10 @@ void nxagentRemoteWindowInfo(Window win, int indent, Bool newLine)
fprintf
(
stderr
,
"x=%d y=%d width=%d height=%d class=%s map_state=%s "
"override_redirect=%s
\n
"
,
attributes
.
x
,
attributes
.
y
,
attributes
.
width
,
attributes
.
height
,
(
attributes
.
class
==
0
)
?
"InputOutput"
:
"InputOnly"
,
(
attributes
.
map_state
==
0
)
?
attributes
.
width
,
attributes
.
height
,
(
attributes
.
class
==
0
)
?
"CopyFromParent"
:
((
attributes
.
class
==
1
)
?
"InputOutput"
:
"InputOnly"
),
(
attributes
.
map_state
==
0
)
?
"IsUnmapped"
:
(
attributes
.
map_state
==
1
?
"IsUnviewable"
:
"IsViewable"
),
(
attributes
.
override_redirect
==
0
)
?
...
...
@@ -415,9 +417,9 @@ void nxagentRemoteWindowInfo(Window win, int indent, Bool newLine)
void
nxagentRemoteWindowsTree
(
Window
window
,
int
level
)
{
int
i
,
j
;
Window
rootWin
,
parentWin
;
unsigned
long
rootWin
,
parentWin
;
unsigned
int
numChildren
;
Window
*
childList
;
unsigned
long
*
childList
;
if
(
!
XQueryTree
(
nxagentDisplay
,
window
,
&
rootWin
,
&
parentWin
,
&
childList
,
&
numChildren
))
...
...
@@ -517,9 +519,11 @@ void nxagentInternalWindowInfo(WindowPtr pWin, int indent, Bool newLine)
fprintf
(
stderr
,
"x=%d y=%d width=%d height=%d class=%s map_state=%s "
"override_redirect=%s"
,
pWin
->
drawable
.
x
,
pWin
->
drawable
.
y
,
pWin
->
drawable
.
width
,
pWin
->
drawable
.
height
,
(
pWin
->
drawable
.
class
==
0
)
?
"InputOutput"
:
"InputOnly"
,
(
pWin
->
mapped
==
0
)
?
"IsUnmapped"
:
(
pWin
->
mapped
==
1
?
(
pWin
->
drawable
.
class
==
0
)
?
"CopyFromParent"
:
((
pWin
->
drawable
.
class
==
1
)
?
"InputOutput"
:
"InputOnly"
),
(
pWin
->
mapped
==
0
)
?
"IsUnmapped"
:
(
pWin
->
realized
==
0
?
"IsUnviewable"
:
"IsViewable"
),
(
pWin
->
overrideRedirect
==
0
)
?
"No"
:
"Yes"
);
...
...
@@ -1142,11 +1146,11 @@ FIXME: Don't enqueue the KeyRelease event if the key was
if
(
nxagentXkbState
.
Initialized
==
0
)
{
if
(
X
.
xkey
.
keycode
==
66
)
if
(
X
.
xkey
.
keycode
==
nxagentCapsLockKeycode
)
{
nxagentXkbCapsTrap
=
1
;
}
else
if
(
X
.
xkey
.
keycode
==
77
)
else
if
(
X
.
xkey
.
keycode
==
nxagentNumLockKeycode
)
{
nxagentXkbNumTrap
=
1
;
}
...
...
@@ -2292,11 +2296,11 @@ int nxagentHandleKeyPress(XEvent *X, enum HandleEventResult *result)
if
(
nxagentXkbState
.
Initialized
==
0
)
{
if
(
X
->
xkey
.
keycode
==
66
)
if
(
X
->
xkey
.
keycode
==
nxagentCapsLockKeycode
)
{
nxagentXkbCapsTrap
=
1
;
}
else
if
(
X
->
xkey
.
keycode
==
77
)
else
if
(
X
->
xkey
.
keycode
==
nxagentNumLockKeycode
)
{
nxagentXkbNumTrap
=
1
;
}
...
...
@@ -2312,11 +2316,11 @@ int nxagentHandleKeyPress(XEvent *X, enum HandleEventResult *result)
return
1
;
}
if
(
X
->
xkey
.
keycode
==
66
)
if
(
X
->
xkey
.
keycode
==
nxagentCapsLockKeycode
)
{
nxagentXkbState
.
Caps
=
(
~
nxagentXkbState
.
Caps
&
1
);
}
else
if
(
X
->
xkey
.
keycode
==
77
)
else
if
(
X
->
xkey
.
keycode
==
nxagentNumLockKeycode
)
{
nxagentXkbState
.
Num
=
(
~
nxagentXkbState
.
Num
&
1
);
}
...
...
nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
View file @
82ab807f
...
...
@@ -189,7 +189,12 @@ static char *nxagentXkbGetRules(void);
unsigned
int
nxagentAltMetaMask
;
void
nxagentCheckAltMetaKeys
(
CARD8
,
int
);
static
void
nxagentCheckAltMetaKeys
(
CARD8
,
int
);
CARD8
nxagentCapsLockKeycode
=
66
;
CARD8
nxagentNumLockKeycode
=
77
;
static
void
nxagentCheckRemoteKeycodes
(
void
);
static
CARD8
nxagentConvertedKeycodes
[]
=
{
...
...
@@ -784,6 +789,8 @@ N/A
}
XFreeModifiermap
(
modifier_keymap
);
nxagentCheckRemoteKeycodes
();
keySyms
.
minKeyCode
=
min_keycode
;
keySyms
.
maxKeyCode
=
max_keycode
;
keySyms
.
mapWidth
=
mapWidth
;
...
...
@@ -1343,7 +1350,7 @@ int nxagentResetKeyboard(void)
}
}
void
nxagentCheckAltMetaKeys
(
CARD8
keycode
,
int
j
)
void
nxagentCheckAltMetaKeys
(
CARD8
keycode
,
int
j
)
{
if
(
keycode
==
XKeysymToKeycode
(
nxagentDisplay
,
XK_Meta_L
))
{
...
...
@@ -1366,6 +1373,19 @@ void nxagentCheckAltMetaKeys(CARD8 keycode, int j)
}
}
void
nxagentCheckRemoteKeycodes
()
{
nxagentCapsLockKeycode
=
XKeysymToKeycode
(
nxagentDisplay
,
XK_Caps_Lock
);
nxagentNumLockKeycode
=
XKeysymToKeycode
(
nxagentDisplay
,
XK_Num_Lock
);
#ifdef DEBUG
fprintf
(
stderr
,
"nxagentCheckRemoteKeycodes: Remote CapsLock keycode "
"is [%d] NumLock [%d].
\n
"
,
nxagentCapsLockKeycode
,
nxagentNumLockKeycode
);
#endif
}
static
int
nxagentSaveKeyboardDeviceData
(
DeviceIntPtr
dev
,
DeviceIntPtr
devBackup
)
{
if
(
devBackup
==
NULL
)
...
...
nx-X11/programs/Xserver/hw/nxagent/Keyboard.h
View file @
82ab807f
...
...
@@ -115,4 +115,7 @@ void nxagentResetKeycodeConversion(void);
CARD8
nxagentConvertKeycode
(
CARD8
k
);
extern
CARD8
nxagentCapsLockKeycode
;
extern
CARD8
nxagentNumLockKeycode
;
#endif
/* __Keyboard_H__ */
nx-X11/programs/Xserver/hw/nxagent/Screen.c
View file @
82ab807f
...
...
@@ -839,6 +839,8 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
int
bitsPerPixel
;
int
sizeInBytes
;
int
defaultVisualIndex
=
0
;
#ifdef TEST
fprintf
(
stderr
,
"nxagentOpenScreen: Called for screen index [%d].
\n
"
,
index
);
...
...
@@ -1163,6 +1165,11 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
* Initialize the visuals.
*/
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"Debug: Setting up visuals. Original array has size "
"[%d].
\n
"
,
nxagentNumVisuals
);
#endif
numVisuals
=
0
;
numDepths
=
nxagentNumDepths
;
...
...
@@ -1186,26 +1193,46 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
* Check for and remove the duplicates.
*/
for
(
j
=
0
;
j
<
numVisuals
;
j
++
)
if
(
i
==
nxagentDefaultVisualIndex
)
{
if
(
visuals
[
numVisuals
].
class
==
visuals
[
j
].
class
&&
visuals
[
numVisuals
].
bitsPerRGBValue
==
visuals
[
j
].
bitsPerRGBValue
&&
visuals
[
numVisuals
].
ColormapEntries
==
visuals
[
j
].
ColormapEntries
&&
visuals
[
numVisuals
].
nplanes
==
visuals
[
j
].
nplanes
&&
visuals
[
numVisuals
].
redMask
==
visuals
[
j
].
redMask
&&
visuals
[
numVisuals
].
greenMask
==
visuals
[
j
].
greenMask
&&
visuals
[
numVisuals
].
blueMask
==
visuals
[
j
].
blueMask
&&
visuals
[
numVisuals
].
offsetRed
==
visuals
[
j
].
offsetRed
&&
visuals
[
numVisuals
].
offsetGreen
==
visuals
[
j
].
offsetGreen
&&
visuals
[
numVisuals
].
offsetBlue
==
visuals
[
j
].
offsetBlue
)
break
;
defaultVisualIndex
=
numVisuals
;
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"Debug: Set default visual index [%d].
\n
"
,
defaultVisualIndex
);
#endif
}
else
{
for
(
j
=
0
;
j
<
numVisuals
;
j
++
)
{
if
(
visuals
[
numVisuals
].
class
==
visuals
[
j
].
class
&&
visuals
[
numVisuals
].
bitsPerRGBValue
==
visuals
[
j
].
bitsPerRGBValue
&&
visuals
[
numVisuals
].
ColormapEntries
==
visuals
[
j
].
ColormapEntries
&&
visuals
[
numVisuals
].
nplanes
==
visuals
[
j
].
nplanes
&&
visuals
[
numVisuals
].
redMask
==
visuals
[
j
].
redMask
&&
visuals
[
numVisuals
].
greenMask
==
visuals
[
j
].
greenMask
&&
visuals
[
numVisuals
].
blueMask
==
visuals
[
j
].
blueMask
&&
visuals
[
numVisuals
].
offsetRed
==
visuals
[
j
].
offsetRed
&&
visuals
[
numVisuals
].
offsetGreen
==
visuals
[
j
].
offsetGreen
&&
visuals
[
numVisuals
].
offsetBlue
==
visuals
[
j
].
offsetBlue
)
break
;
}
if
(
j
<
numVisuals
)
continue
;
if
(
j
<
numVisuals
)
continue
;
}
depthIndex
=
UNDEFINED
;
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"Debug: Added visual [%lu].
\n
"
,
visuals
[
numVisuals
].
vid
);
#endif
for
(
j
=
0
;
j
<
numDepths
;
j
++
)
{
if
(
depths
[
j
].
depth
==
nxagentVisuals
[
i
].
depth
)
...
...
@@ -1240,11 +1267,25 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
depths
[
depthIndex
].
numVids
++
;
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"Debug: Registered visual [%lu] for depth [%d (%d)].
\n
"
,
visuals
[
numVisuals
].
vid
,
depthIndex
,
depths
[
depthIndex
].
depth
);
#endif
numVisuals
++
;
}
defaultVisual
=
visuals
[
nxagentDefaultVisualIndex
].
vid
;
rootDepth
=
visuals
[
nxagentDefaultVisualIndex
].
nplanes
;
#if defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"Debug: Setting default visual [%d (%lu)].
\n
"
,
defaultVisualIndex
,
visuals
[
defaultVisualIndex
].
vid
);
fprintf
(
stderr
,
"Debug: Setting root depth [%d].
\n
"
,
visuals
[
defaultVisualIndex
].
nplanes
);
#endif
defaultVisual
=
visuals
[
defaultVisualIndex
].
vid
;
rootDepth
=
visuals
[
defaultVisualIndex
].
nplanes
;
nxagentInitAlphaVisual
();
...
...
@@ -1271,7 +1312,7 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
return
FALSE
;
}
#if
def TEST
#if
defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"nxagentOpenScreen: Before fbScreenInit numVisuals [%d] numDepths [%d] "
"rootDepth [%d] defaultVisual [%ld].
\n
"
,
numVisuals
,
numDepths
,
rootDepth
,
defaultVisual
);
...
...
@@ -1288,7 +1329,7 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
return
FALSE
;
}
#if
def TEST
#if
defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"nxagentOpenScreen: After fbScreenInit numVisuals [%d] numDepths [%d] "
"rootDepth [%d] defaultVisual [%ld].
\n
"
,
numVisuals
,
numDepths
,
rootDepth
,
defaultVisual
);
...
...
@@ -1300,7 +1341,7 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
* and will modify numVisuals and numDepths.
*/
#if
def TEST
#if
defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"nxagentOpenScreen: Before GLX numVisuals [%d] numDepths [%d] "
"rootDepth [%d] defaultVisual [%ld].
\n
"
,
numVisuals
,
numDepths
,
rootDepth
,
defaultVisual
);
...
...
@@ -1309,7 +1350,7 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
nxagentInitGlxExtension
(
&
visuals
,
&
depths
,
&
numVisuals
,
&
numDepths
,
&
rootDepth
,
&
defaultVisual
);
#if
def TEST
#if
defined(DEBUG) || defined(DEBUG_COLORMAP)
fprintf
(
stderr
,
"nxagentOpenScreen: After GLX numVisuals [%d] numDepths [%d] "
"rootDepth [%d] defaultVisual [%ld].
\n
"
,
numVisuals
,
numDepths
,
rootDepth
,
defaultVisual
);
...
...
nx-X11/programs/Xserver/hw/nxagent/Window.c
View file @
82ab807f
...
...
@@ -3170,10 +3170,17 @@ static void nxagentReconfigureWindow(pointer param0, XID param1, pointer data_bu
{
nxagentRealizeWindow
(
pWin
);
}
/*
XXX: This would break Motif menus.
If pWin is mapped but not realized, a followin UnmapWindow() wouldn't
do anything, leaving this mapped window around. XMapWindow()
is called in nxagentRealizeWindow() and there it is enough.
else if (pWin->mapped)
{
XMapWindow(nxagentDisplay, nxagentWindow(pWin));
}
*/
else
if
(
nxagentOption
(
Rootless
)
&&
pWin
->
overrideRedirect
==
0
&&
nxagentWindowTopLevel
(
pWin
)
&&
nxagentIsIconic
(
pWin
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment