summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@freedesktop.org>2009-03-03 19:44:25 -0800
committerJeremy Huddleston <jeremyhu@freedesktop.org>2009-03-03 19:44:25 -0800
commit7dbba3a821ba839bbcf882d7276098beca677f40 (patch)
tree2d5693b418be18b02238c6cf8a5e60def07f83ee /src
parent177cd34645f6575c44341ed4a081e574a7297ab8 (diff)
Implement XAppleWMSendPSN()
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am4
-rw-r--r--src/applewm.c32
2 files changed, 34 insertions, 2 deletions
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;