mirror of
https://github.com/gnustep/libs-back.git
synced 2025-02-23 20:01:22 +00:00
* Source/x11/XGServerWindow.m (-setIgnoreMouse::): New method
that allows to ignore mouse events for a window. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@36855 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2fc0d26b47
commit
e74cf49cda
2 changed files with 62 additions and 39 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2013-07-08 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
|
* Source/x11/XGServerWindow.m (-setIgnoreMouse::): New method that
|
||||||
|
allows to ignore mouse events for a window.
|
||||||
|
|
||||||
2013-07-04 Richard Frith-Macdonald <rfm@gnu.org>
|
2013-07-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
* Tools/GNUmakefile.preamble:
|
* Tools/GNUmakefile.preamble:
|
||||||
|
@ -9,7 +14,7 @@
|
||||||
* Source/x11/XGGLFormat.m:
|
* Source/x11/XGGLFormat.m:
|
||||||
* Headers/x11/XGOpenGL.h:
|
* Headers/x11/XGOpenGL.h:
|
||||||
ARGB visual is only picked if NSOpenGLPFAAlphaSize is
|
ARGB visual is only picked if NSOpenGLPFAAlphaSize is
|
||||||
specified in the pixel format.
|
specified in the pixel format.
|
||||||
|
|
||||||
2013-07-03 Ivan Vucica <ivan@vucica.net>
|
2013-07-03 Ivan Vucica <ivan@vucica.net>
|
||||||
|
|
||||||
|
@ -6341,4 +6346,3 @@ Thu Apr 11 22:24:01 2002 Nicola Pero <n.pero@mi.flashnet.it>
|
||||||
2002-03-27 Adam Fedor <fedor@gnu.org>
|
2002-03-27 Adam Fedor <fedor@gnu.org>
|
||||||
|
|
||||||
* Version: Initial version (most code extracted from xgps).
|
* Version: Initial version (most code extracted from xgps).
|
||||||
|
|
||||||
|
|
|
@ -658,6 +658,47 @@ static void setWindowHintsForStyle (Display *dpy, Window window,
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
select_input(Display *display, Window w, BOOL ignoreMouse)
|
||||||
|
{
|
||||||
|
long event_mask;
|
||||||
|
|
||||||
|
if (!ignoreMouse)
|
||||||
|
{
|
||||||
|
event_mask = ExposureMask
|
||||||
|
| KeyPressMask
|
||||||
|
| KeyReleaseMask
|
||||||
|
| ButtonPressMask
|
||||||
|
| ButtonReleaseMask
|
||||||
|
| ButtonMotionMask
|
||||||
|
| StructureNotifyMask
|
||||||
|
| PointerMotionMask
|
||||||
|
| EnterWindowMask
|
||||||
|
| LeaveWindowMask
|
||||||
|
| FocusChangeMask
|
||||||
|
/* enable property notifications to detect window (de)miniaturization */
|
||||||
|
| PropertyChangeMask
|
||||||
|
// | ColormapChangeMask
|
||||||
|
| KeymapStateMask
|
||||||
|
| VisibilityChangeMask;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_mask = ExposureMask
|
||||||
|
| KeyPressMask
|
||||||
|
| KeyReleaseMask
|
||||||
|
| StructureNotifyMask
|
||||||
|
| FocusChangeMask
|
||||||
|
/* enable property notifications to detect window (de)miniaturization */
|
||||||
|
| PropertyChangeMask
|
||||||
|
// | ColormapChangeMask
|
||||||
|
| KeymapStateMask
|
||||||
|
| VisibilityChangeMask;
|
||||||
|
}
|
||||||
|
|
||||||
|
XSelectInput(display, w, event_mask);
|
||||||
|
}
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
_get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
_get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
{
|
{
|
||||||
|
@ -819,24 +860,8 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
valuemask = (GCForeground | GCBackground | GCFunction);
|
valuemask = (GCForeground | GCBackground | GCFunction);
|
||||||
window->gc = XCreateGC(dpy, window->ident, valuemask, &values);
|
window->gc = XCreateGC(dpy, window->ident, valuemask, &values);
|
||||||
|
|
||||||
/* Set the X event mask
|
/* Set the X event mask */
|
||||||
*/
|
select_input(dpy, window->ident, YES);
|
||||||
XSelectInput(dpy, window->ident, ExposureMask
|
|
||||||
| KeyPressMask
|
|
||||||
| KeyReleaseMask
|
|
||||||
| ButtonPressMask
|
|
||||||
| ButtonReleaseMask
|
|
||||||
| ButtonMotionMask
|
|
||||||
| StructureNotifyMask
|
|
||||||
| PointerMotionMask
|
|
||||||
| EnterWindowMask
|
|
||||||
| LeaveWindowMask
|
|
||||||
| FocusChangeMask
|
|
||||||
| PropertyChangeMask
|
|
||||||
// | ColormapChangeMask
|
|
||||||
| KeymapStateMask
|
|
||||||
| VisibilityChangeMask
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initial attributes for any GNUstep window tell Window Maker not to
|
* Initial attributes for any GNUstep window tell Window Maker not to
|
||||||
|
@ -2044,25 +2069,8 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
valuemask = (GCForeground | GCBackground | GCFunction);
|
valuemask = (GCForeground | GCBackground | GCFunction);
|
||||||
window->gc = XCreateGC(dpy, window->ident, valuemask, &values);
|
window->gc = XCreateGC(dpy, window->ident, valuemask, &values);
|
||||||
|
|
||||||
/* Set the X event mask
|
/* Set the X event mask */
|
||||||
*/
|
select_input(dpy, window->ident, NO);
|
||||||
XSelectInput(dpy, window->ident, ExposureMask
|
|
||||||
| KeyPressMask
|
|
||||||
| KeyReleaseMask
|
|
||||||
| ButtonPressMask
|
|
||||||
| ButtonReleaseMask
|
|
||||||
| ButtonMotionMask
|
|
||||||
| StructureNotifyMask
|
|
||||||
| PointerMotionMask
|
|
||||||
| EnterWindowMask
|
|
||||||
| LeaveWindowMask
|
|
||||||
| FocusChangeMask
|
|
||||||
/* enable property notifications to detect window (de)miniaturization */
|
|
||||||
| PropertyChangeMask
|
|
||||||
// | ColormapChangeMask
|
|
||||||
| KeymapStateMask
|
|
||||||
| VisibilityChangeMask
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initial attributes for any GNUstep window tell Window Maker not to
|
* Initial attributes for any GNUstep window tell Window Maker not to
|
||||||
|
@ -5007,4 +5015,15 @@ _computeDepth(int class, int bpp)
|
||||||
XSetTransientForHint(dpy, cwindow->ident, p);
|
XSetTransientForHint(dpy, cwindow->ident, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) setIgnoreMouse: (BOOL)ignoreMouse : (int)win
|
||||||
|
{
|
||||||
|
gswindow_device_t *window;
|
||||||
|
|
||||||
|
window = WINDOW_WITH_TAG(win);
|
||||||
|
if (!window)
|
||||||
|
return;
|
||||||
|
|
||||||
|
select_input(dpy, window->ident, ignoreMouse);
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in a new issue