diff options
author | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2009-03-03 19:44:25 -0800 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2009-03-03 19:44:25 -0800 |
commit | 7dbba3a821ba839bbcf882d7276098beca677f40 (patch) | |
tree | 2d5693b418be18b02238c6cf8a5e60def07f83ee | |
parent | 177cd34645f6575c44341ed4a081e574a7297ab8 (diff) |
Implement XAppleWMSendPSN()
-rw-r--r-- | INSTALL | 0 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/Makefile.am | 4 | ||||
-rw-r--r-- | src/applewm.c | 32 |
4 files changed, 35 insertions, 3 deletions
diff --git a/INSTALL b/INSTALL deleted file mode 100644 index e69de29..0000000 --- a/INSTALL +++ /dev/null diff --git a/configure.ac b/configure.ac index 77d5cff..c1acef7 100644 --- a/configure.ac +++ b/configure.ac @@ -34,7 +34,7 @@ AC_PROG_CC AC_PROG_LIBTOOL # Check for dependencies -PKG_CHECK_MODULES(APPLEWM, x11 xext xextproto applewmproto) +PKG_CHECK_MODULES(APPLEWM, x11 xext xextproto [applewmproto >= 1.2]) AC_SUBST(APPLEWM_CFLAGS) AC_SUBST(APPLEWM_LIBS) diff --git a/src/Makefile.am b/src/Makefile.am index 7898b40..1ba758f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3,7 +3,7 @@ lib_LTLIBRARIES = libAppleWM.la libAppleWM_la_SOURCES = \ applewm.c -libAppleWM_la_CFLAGS = @APPLEWM_CFLAGS@ @MALLOC_ZERO_CFLAGS@ +libAppleWM_la_CFLAGS = @APPLEWM_CFLAGS@ @MALLOC_ZERO_CFLAGS@ -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks libAppleWM_la_LIBADD = @APPLEWM_LIBS@ -libAppleWM_la_LDFLAGS = -version-info 7:0:0 -no-undefined +libAppleWM_la_LDFLAGS = -version-info 7:0:0 -no-undefined -framework ApplicationServices diff --git a/src/applewm.c b/src/applewm.c index c627762..2a79998 100644 --- a/src/applewm.c +++ b/src/applewm.c @@ -39,6 +39,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <X11/extensions/extutil.h> #include <stdio.h> +#include <HIServices/Processes.h> + static XExtensionInfo _applewm_info_data; static XExtensionInfo *applewm_info = &_applewm_info_data; static char *applewm_extension_name = APPLEWMNAME; @@ -375,6 +377,36 @@ Bool XAppleWMSetWindowLevel(dpy, id, level) return True; } +Bool XAppleWMSendPSN(Display* dpy) { + XExtDisplayInfo *info = find_display (dpy); + xAppleWMSendPSNReq *req; + ProcessSerialNumber psn; + OSErr err; + + + TRACE("SendPSN..."); + AppleWMCheckExtension (dpy, info, False); + + err = GetCurrentProcess(&psn); + + if(err != noErr) { + TRACE("SendPSN... couldn't get current Process."); + return False; + } + + LockDisplay(dpy); + GetReq(AppleWMSendPSN, req); + req->reqType = info->codes->major_opcode; + req->wmReqType = X_AppleWMSendPSN; + req->psn_hi = psn.highLongOfPSN; + req->psn_lo = psn.lowLongOfPSN; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("SendPSN... return True"); + return True; +} + + Bool XAppleWMSetCanQuit(dpy, state) Display* dpy; Bool state; |