forked from 12to11/12to11

* 12to11.man: Document new environment variables. * Imakefile ($(OBJS)): Also depend on protocol headers. * README: Update implementation status. * compositor.h: Update prototypes. * data_device.c (DataOfferSetActions): Fix error sent when the offer is invalid. * dnd.c: Remove out of date comment. * primary_selection.c (struct _PDataSource): Move declaration to compositor.h. New field `atom_types'. (Offer): Record atom types as well. (HandleSourceResourceDestroy): Maybe disown the primary selection, and free offered MIME types. (XLResourceFromPDataSource, XLPDataSourceHasAtomTarget) (XLPDataSourceHasTarget, XLPDataSourceTargetCount) (XLPDataSourceGetTargets): New functions. (UpdateForSingleReference): Handle foreign selections correctly. (SetSelection): Try to own the X selection. (XLSetForeignPrimary, XLClearForeignPrimary): New functions. * seat.c (XLSeatResizeInProgress): New function. * xdata.c (struct _ReadTargetsData): New field `selection'. (struct _DataConversion): Pass send function and source resource to conversion function. (last_primary_time): New timestamp variable. (x_primary_targets, num_x_primary_targets, primary_data_source): New variables. (HasSelectionTarget, FindTranslationForMimeType): Accept arg `is_primary', meaning that the primary selection data should be used instead. (ReceiveBody): Extract generic code from Receive. (Receive): Replace with above macro. (Finish, SetActions): Correctly post errors on DND-specific actions. (ReceivePrimary): New function. (primary_offer_impl): New interface implementation. (CreatePrimaryOffer): New function. (SendOffers1): Extract generic code from SendOffers. (SendOffers, SendPrimaryOffers): Reimplement in terms of SendOffers1. (HandleNewSelection): Handle PRIMARY selection changes. (TargetsFinishCallback): Pass selection to HandleNewSelection. (NoticeClipboardChanged): Set TargetsReadData selection. (NoticePrimaryChanged): New function. (NoticeClipboardCleared): Free unused data. (NoticePrimaryCleared): New function. (HandleSelectionNotify): Handle notifications for both CLIPBOARD and PRIMARY. (MimeTypeFromTarget, TypeFromTarget): Accept argument `primary', meaning to use the primary selection when determining whether or not to call a conversion callback. (GetClipboardCallback): Pass resource and functions to the clipboard callback. (GetConversionCallback): Update to use provided functions and resource. (GetDragCallback, XLNoteSourceDestroyed): Fix typos in debug string. (XLNotePrimaryDestroyed): New function. (NoteLocalSelectionBody, NoteLocalSelectionFooter): Extract selection-generic code from XLNoteLocalSelection. (XLNoteLocalSelection): Reimplement in terms of the above two macros. (XLNoteLocalPrimary, GetPrimaryCallback): New functions. (XLInitXData): Select for selection input from XA_PRIMARY as well. * xdg_surface.c (AckConfigure): Improve debug code. (Commit): Clear that flag. (NoteBounds): If that flag is set, return. (HandleFreeze): Assume a configure event will arrive after a sync request; set flags accordingly. (XLGetXdgSurface): Add HandleFreeze. (XLXdgRoleSendConfigure): Clear some flags and add new state flag `StateWaitingForAckCommit'. Set it. It means that no commit has yet happened after ack_configure. (XLXdgRoleNoteRejectedConfigure): New function. Clear flags if the configure event following _NET_WM_SYNC_REQUEST was rejected. * xdg_toplevel.c (struct _XdgToplevel): New state flags StatePendingResize, StateConfigureSize, StatePendingConfigureStates. New field `configuration_timer'. (batch_state_changes): New flag. (DestroyBacking): Clear configuration timer. (NoteConfigureTime): New function; apply queued state changes. (HandleWmStateChange, HandleConfigureEvent): By default, queue state changes and configure events so they can be applied in one go. (Unmap): Clear delayed configuration timer. (Commit, CommitInsideFrame, PostResize): Improve movement delta adjustment for min_width and min_height, and queue pending motion for after ack_configure. (XLInitXdgToplevels): Set `batch_state_changes' depending on the DIRECT_STATE_CHANGES' environment variable.
92 lines
3 KiB
Groff
92 lines
3 KiB
Groff
.TH 12to11
|
|
.SH NAME
|
|
12to11 - Wayland to X protocol translator
|
|
.SH SYNOPSIS
|
|
.B 12to11
|
|
.SH DESCRIPTION
|
|
.I 12to11
|
|
starts a Wayland compositor on the next available socket;
|
|
Wayland programs will then be displayed through the X server.
|
|
.SH OPTIONS
|
|
None.
|
|
.SH ENVIRONMENT
|
|
Several environment variables exist that modify the behavior of the
|
|
protocol translator in one way or another. Most of these are used for
|
|
debugging, but some may be relevant to users as well.
|
|
.PP
|
|
The
|
|
.B USE_BUILTIN_RESIZE
|
|
environment variable, if set, forces the use of the built-in
|
|
drag-to-resize support provided by the protocol translator, even if
|
|
the X window manager provides its own.
|
|
.PP
|
|
The
|
|
.B DEBUG_REFRESH_PREDICTION
|
|
environment variable, if set, forces the frame clock to predict the
|
|
presentation deadline of the X compositing manager. This is used to
|
|
debug code that is otherwise not run without subsurfaces being
|
|
present.
|
|
.PP
|
|
The
|
|
.B DISABLE_FRAME_SYNCHRONIZATION
|
|
environment variable, if set, disables frame synchronization with the
|
|
X compositing manager. Setting this variable is probably not a good
|
|
idea.
|
|
.PP
|
|
The
|
|
.B SYNCHRONIZE
|
|
environment variable, if set, causes the X library to check for errors
|
|
immediately after issuing a request. The resulting backtraces from
|
|
the error handler then reflect the protocol request that actually
|
|
caused the error, instead of some unpredictable request in the future.
|
|
.PP
|
|
The
|
|
.B APPLY_STATE_WORKAROUND
|
|
environment variable, if set, causes the protocol translator to handle
|
|
toplevel window state changes differently. If Wayland programs do not
|
|
make the transition between fullscreen and maximized states correctly,
|
|
try setting this variable.
|
|
.PP
|
|
The
|
|
.B GLOBAL_SCALE
|
|
environment variable, if set to an integer, overrides the global
|
|
program scale factor normally provided by the
|
|
.I Gdk/WindowScalingFactor
|
|
X setting.
|
|
.PP
|
|
The
|
|
.B OUTPUT_SCALE
|
|
environment variable, if set to an integer, overrides the output scale
|
|
factor that is otherwise set to the global program scale factor.
|
|
Setting this option is only useful to debug Wayland program
|
|
downscaling.
|
|
.PP
|
|
The
|
|
.B DIRECT_STATE_CHANGES
|
|
variable, if set, forces ConfigureNotify events from the window
|
|
manager to be handled directly, without waiting some time for a
|
|
corresponding _NET_WM_STATE event to arrive. This is only
|
|
useful for debugging the window resizing logic.
|
|
.SH BUGS
|
|
There is a hard to catch bug where Wayland programs leaving the
|
|
fullscreen or maximized state may abruptly return to their maximized
|
|
size. Setting the
|
|
.B APPLY_STATE_WORKAROUND
|
|
environment variable may help.
|
|
.PP
|
|
Mozilla Firefox also does not work correctly. Resizing the Firefox
|
|
window leads to screen tearing, and Firefox often resizes its toplevel
|
|
windows outside their normal boundaries, causing invalid screen
|
|
contents to be displayed over other applications.
|
|
.PP
|
|
Using this protocol translator under a window manager that does not at
|
|
least support the
|
|
.B _NET_WM_SYNC_REQUEST
|
|
and
|
|
.B _NET_WM_STATE
|
|
window manager hints will result in Wayland programs running
|
|
incorrectly.
|
|
.SH "SEE ALSO"
|
|
X(1), Xorg(1)
|
|
.SH AUTHOR
|
|
Various contributors.
|