summaryrefslogtreecommitdiffstats
path: root/xrdp/xrdp_mm.c
diff options
context:
space:
mode:
authorjsorg71 <jsorg71>2008-02-26 21:55:19 +0000
committerjsorg71 <jsorg71>2008-02-26 21:55:19 +0000
commit30b0b77fcebf29fcd13eb998a696f8f67461ad30 (patch)
tree2e5310f26c9ee1cad2bb3f529df28fe6facff747 /xrdp/xrdp_mm.c
parent57484bd7016c6e56854dc4c34ac0dc8077a07014 (diff)
downloadxrdp-proprietary-30b0b77fcebf29fcd13eb998a696f8f67461ad30.tar.gz
xrdp-proprietary-30b0b77fcebf29fcd13eb998a696f8f67461ad30.zip
don't supress key up and sync modifiers on connect
Diffstat (limited to 'xrdp/xrdp_mm.c')
-rw-r--r--xrdp/xrdp_mm.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index cceaba81..105a166a 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -386,6 +386,8 @@ xrdp_mm_setup_mod2(struct xrdp_mm* self)
char* value;
int i;
int rv;
+ int key_flags;
+ int device_flags;
rv = 1;
text[0] = 0;
@@ -443,6 +445,32 @@ xrdp_mm_setup_mod2(struct xrdp_mm* self)
rv = 0;
}
}
+ if (rv == 0)
+ {
+ /* sync modifiers */
+ key_flags = 0;
+ device_flags = 0;
+ if (self->wm->scroll_lock)
+ {
+ key_flags |= 1;
+ }
+ if (self->wm->num_lock)
+ {
+ key_flags |= 2;
+ }
+ if (self->wm->caps_lock)
+ {
+ key_flags |= 4;
+ }
+ if (self->mod != 0)
+ {
+ if (self->mod->mod_event != 0)
+ {
+ self->mod->mod_event(self->mod, 17, key_flags, device_flags,
+ key_flags, device_flags);
+ }
+ }
+ }
return rv;
}