aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/kdrive/ephyr/hostx.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-08-07 07:51:02 +0200
committermarha <marha@users.sourceforge.net>2012-08-07 07:51:02 +0200
commitf8e35ebbe71eed74ccf68af8ccda4182f1edc7f0 (patch)
tree0451299b4aaaaf6d2423d1faf07dc9f35c9f80d8 /xorg-server/hw/kdrive/ephyr/hostx.c
parent18e75aa6ae27a6e44d93babd96afbbe0cd6077c8 (diff)
downloadvcxsrv-f8e35ebbe71eed74ccf68af8ccda4182f1edc7f0.tar.gz
vcxsrv-f8e35ebbe71eed74ccf68af8ccda4182f1edc7f0.tar.bz2
vcxsrv-f8e35ebbe71eed74ccf68af8ccda4182f1edc7f0.zip
mesa xserver xkeyboard-config git update 7 Aug 2012
Diffstat (limited to 'xorg-server/hw/kdrive/ephyr/hostx.c')
-rw-r--r--xorg-server/hw/kdrive/ephyr/hostx.c36
1 files changed, 29 insertions, 7 deletions
diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c
index 6988f1625..02729d6f6 100644
--- a/xorg-server/hw/kdrive/ephyr/hostx.c
+++ b/xorg-server/hw/kdrive/ephyr/hostx.c
@@ -345,7 +345,11 @@ hostx_init(void)
attr.event_mask =
ButtonPressMask
| ButtonReleaseMask
- | PointerMotionMask | KeyPressMask | KeyReleaseMask | ExposureMask;
+ | PointerMotionMask
+ | KeyPressMask
+ | KeyReleaseMask
+ | ExposureMask
+ | StructureNotifyMask;
EPHYR_DBG("mark");
@@ -693,12 +697,14 @@ hostx_screen_init(EphyrScreenInfo screen,
XResizeWindow(HostX.dpy, host_screen->win, width, height);
/* Ask the WM to keep our size static */
- size_hints = XAllocSizeHints();
- size_hints->max_width = size_hints->min_width = width;
- size_hints->max_height = size_hints->min_height = height;
- size_hints->flags = PMinSize | PMaxSize;
- XSetWMNormalHints(HostX.dpy, host_screen->win, size_hints);
- XFree(size_hints);
+ if (host_screen->win_pre_existing == None) {
+ size_hints = XAllocSizeHints();
+ size_hints->max_width = size_hints->min_width = width;
+ size_hints->max_height = size_hints->min_height = height;
+ size_hints->flags = PMinSize | PMaxSize;
+ XSetWMNormalHints(HostX.dpy, host_screen->win, size_hints);
+ XFree(size_hints);
+ }
XMapWindow(HostX.dpy, host_screen->win);
@@ -1001,6 +1007,22 @@ hostx_get_event(EphyrHostXEvent * ev)
ev->data.key_up.scancode = xev.xkey.keycode;
return 1;
+ case ConfigureNotify:
+ {
+ struct EphyrHostScreen *host_screen =
+ host_screen_from_window(xev.xconfigure.window);
+
+ if (host_screen && host_screen->win_pre_existing != None) {
+ ev->type = EPHYR_EV_CONFIGURE;
+ ev->data.configure.width = xev.xconfigure.width;
+ ev->data.configure.height = xev.xconfigure.height;
+ ev->data.configure.window = xev.xconfigure.window;
+ ev->data.configure.screen = host_screen->mynum;
+ return 1;
+ }
+
+ return 0;
+ }
default:
break;