aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver/hw')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/CHANGELOG8
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Events.c31
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.c51
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.h5
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Window.c4
5 files changed, 30 insertions, 69 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG b/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG
index 9e067d407..7310959ef 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG
+++ b/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG
@@ -1,5 +1,13 @@
ChangeLog:
+nxagent-3.4.0-9
+
+- Fixed TR06H02362. No icon was swown in the task bar.
+
+- Fixed keyboard grab in fullscreen mode.
+
+- Fixed compiler warnings.
+
nxagent-3.4.0-8
- Grab the keyboard in fullscreen mode on EnterNotify only if mode is
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c
index 33eafa55b..40b30308c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Events.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c
@@ -1728,14 +1728,11 @@ FIXME: Don't enqueue the KeyRelease event if the key was
nxagentLastEnteredWindow = NULL;
}
- if (nxagentPointerAndKeyboardGrabbed == 1)
+ if (X.xcrossing.window == nxagentDefaultWindows[0] &&
+ X.xcrossing.detail != NotifyInferior &&
+ X.xcrossing.mode == NotifyNormal)
{
- if (X.xcrossing.window == nxagentDefaultWindows[0] &&
- X.xcrossing.detail != NotifyInferior &&
- X.xcrossing.mode == NotifyNormal)
- {
- nxagentUngrabPointerAndKeyboard(&X);
- }
+ nxagentUngrabPointerAndKeyboard(&X);
}
if (X.xcrossing.detail != NotifyInferior)
@@ -2123,14 +2120,8 @@ FIXME: Don't enqueue the KeyRelease event if the key was
if (nxagentWMIsRunning)
{
- if (nxagentOption(Fullscreen))
- {
- nxagentMinimizeFromFullScreen(pScreen);
- }
- else
- {
- XIconifyWindow(nxagentDisplay, nxagentDefaultWindows[0], DefaultScreen(nxagentDisplay));
- }
+ XIconifyWindow(nxagentDisplay, nxagentDefaultWindows[0],
+ DefaultScreen(nxagentDisplay));
}
}
@@ -3791,6 +3782,11 @@ void nxagentGrabPointerAndKeyboard(XEvent *X)
int resource;
+ if (nxagentPointerAndKeyboardGrabbed == 1)
+ {
+ return;
+ }
+
#ifdef TEST
fprintf(stderr, "nxagentGrabPointerAndKeyboard: Grabbing pointer and keyboard with event at [%p].\n",
(void *) X);
@@ -3856,6 +3852,11 @@ void nxagentUngrabPointerAndKeyboard(XEvent *X)
{
unsigned long now;
+ if (nxagentPointerAndKeyboardGrabbed == 0)
+ {
+ return;
+ }
+
#ifdef TEST
fprintf(stderr, "nxagentUngrabPointerAndKeyboard: Ungrabbing pointer and keyboard with event at [%p].\n",
(void *) X);
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 3522d7e2e..2db7df8fe 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -287,57 +287,6 @@ void nxagentSetPixmapFormats(ScreenInfo *screenInfo)
}
}
-void nxagentMinimizeFromFullScreen(ScreenPtr pScreen)
-{
- XUnmapWindow(nxagentDisplay, nxagentFullscreenWindow);
-}
-
-void nxagentMaximizeToFullScreen(ScreenPtr pScreen)
-{
- if(nxagentIpaq)
- {
- XMapWindow(nxagentDisplay, nxagentFullscreenWindow);
- }
- else
- {
-/*
-FIXME: We'll chech for ReparentNotify and LeaveNotify events after XReparentWindow()
- in order to avoid the session window is iconified.
- We could avoid the sesssion window is iconified when a LeaveNotify event is received,
- so this check would be unnecessary.
-*/
- struct timeval timeout;
- int i;
- XEvent e;
-
- XReparentWindow(nxagentDisplay, nxagentFullscreenWindow,
- RootWindow(nxagentDisplay, DefaultScreen(nxagentDisplay)), 0, 0);
-
- for (i = 0; i < 100 && nxagentWMIsRunning; i++)
- {
- #ifdef TEST
- fprintf(stderr, "nxagentSwitchFullscreen: WARNING! Going to wait for the ReparentNotify event.\n");
- #endif
-
- if (XCheckTypedWindowEvent(nxagentDisplay, nxagentFullscreenWindow, ReparentNotify, &e))
- {
- break;
- }
-
- XSync(nxagentDisplay, 0);
-
- timeout.tv_sec = 0;
- timeout.tv_usec = 50 * 1000;
-
- nxagentWaitEvents(nxagentDisplay, &timeout);
- }
-
- XMapRaised(nxagentDisplay, nxagentFullscreenWindow);
-
- while (XCheckTypedWindowEvent(nxagentDisplay, nxagentFullscreenWindow, LeaveNotify, &e));
- }
-}
-
Bool nxagentMagicPixelZone(int x, int y)
{
return (x >= nxagentOption(Width) - 1 && y < 1);
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.h b/nx-X11/programs/Xserver/hw/nxagent/Screen.h
index 3bf66b2f5..1ab6caad2 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.h
@@ -60,6 +60,8 @@ extern short nxagentShadowUid;
void nxagentSetScreenInfo(ScreenInfo *screenInfo);
void nxagentSetPixmapFormats(ScreenInfo *screenInfo);
+void nxagentPrintGeometry();
+
extern Window nxagentDefaultWindows[MAXSCREENS];
extern Window nxagentInputWindows[MAXSCREENS];
extern Window nxagentScreenSaverWindows[MAXSCREENS];
@@ -85,9 +87,6 @@ extern int nxagentBitsPerPixel(int depth);
void nxagentSetScreenSaverTime(void);
-void nxagentMinimizeFromFullScreen(ScreenPtr pScreen);
-void nxagentMaximizeToFullScreen(ScreenPtr pScreen);
-
Bool nxagentMagicPixelZone(int x, int y);
Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height,
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c
index 2403390b8..2da21b91c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Window.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c
@@ -768,10 +768,14 @@ void nxagentSwitchFullscreen(ScreenPtr pScreen, Bool switchOn)
if (switchOn == 1)
{
nxagentFullscreenWindow = nxagentDefaultWindows[pScreen -> myNum];
+
+ nxagentGrabPointerAndKeyboard(NULL);
}
else
{
nxagentFullscreenWindow = None;
+
+ nxagentUngrabPointerAndKeyboard(NULL);
}
}