Sophie

Sophie

distrib > Arklinux > devel > i586 > media > main > by-pkgid > ecce55e3af83a7e02b05faa4c929c985 > files > 37

lesstif-0.95.2-1ark.i586.rpm

[UNDER CONSTRUCTION]


                             The Clipboard
                             =============



1.0 Introduction
================

To understand how the Clipboard works, you first need to understand the
ICCCM specification (currently at version 2 in R6; you can find a PostScript
version in docs/hardcopy/ICCCM).  Read through it, frequently referring to
O'Reilly Volume Zero (the protocol reference) and Volume Two (the Xlib
reference), about how selections should work, and how the CLIPBOARD
selection in particular should be used.  It will take you about a month
to fully understand how all this should work.  Come back when you're done.


2.0 Basics
==========

Oh, you're back.  Is your head swimming with visions of SelectionNotify,
SelectionClear, XGetSelectionOwner(), and other choice nuggets?  Have you
seen the beautiful fogginess of EventHandlers, struggled with the concepts
of Atoms, properties on windows, and format atoms?

Good.  You're ready for the first nugget of information about the M*tif
clipboard.

Forget everything you've learned, it doesn't apply in 90% of the cases.

There are two coexisting mechanisms in Motif; there's the Motif way, and
there's the X way.  Both work, but the differences are a little messy until
you understand what gets used, and when.  (talk about compliant apps like
xclipboard vs Motif applications here).  The mechanism uses selections, but
doesn't do so in the traditional sense.

There are two selections: the XA_MOTIF_CLIP_LOCK, and the XA_CLIPBOARD.

The XA_MOTIF_CLIP_LOCK selection is used to serialize access to the
CLIPBOARD selection between M*tif applications.  The XA_CLIPBOARD selection
is used to indicate which app just added data to the clipboard via a copy
(normal M*tif case), or the application that just cut or copied something
to the clipboard (X case).

Contrary to O'Reilly, the Motif clipboard does NOT store data that you
pass to XmClipboardCopy in the CLIPBOARD property of the window that you
passed in (section 18.5 or section 17.5, depending on the version of Volume
Six (or Six-A, respectively) that you're reading.  Instead, it's stored on
the root window itself.  Unless I've got the only version of Motif that
does this try using xprop on the root window after you've copied something
to the clipboard;  if you don't see something like _MOTIF_CLIP_ITEM_*,
let me know).  However, ICCCM compliant applications do.