mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-31 06:40:08 +01:00
Add selection handling stubs.
This commit is contained in:
parent
37f9068fd9
commit
c37dd0d9c1
5 changed files with 181 additions and 0 deletions
|
|
@ -100,6 +100,8 @@ Xdmx_SOURCES = dmx.c \
|
|||
dmxxv.h \
|
||||
dmxgrab.c \
|
||||
dmxgrab.h \
|
||||
dmxselection.c \
|
||||
dmxselection.h \
|
||||
$(top_srcdir)/mi/miinitext.c \
|
||||
$(top_srcdir)/fb/fbcmap_mi.c \
|
||||
$(GLX_SRCS) \
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
#include "dmxstat.h"
|
||||
#include "dmxlaunch.h"
|
||||
#include "dmxgrab.h"
|
||||
#include "dmxselection.h"
|
||||
#include "dmxshm.h"
|
||||
#ifdef RENDER
|
||||
#include "dmxpict.h"
|
||||
|
|
@ -926,6 +927,7 @@ void InitOutput(ScreenInfo *pScreenInfo, int argc, char *argv[])
|
|||
dmxInitFonts();
|
||||
dmxInitProps();
|
||||
dmxInitGrabs();
|
||||
dmxInitSelections();
|
||||
|
||||
#ifdef MITSHM
|
||||
dmxInitShm();
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@
|
|||
#include "dmxcb.h"
|
||||
#include "dmxinit.h"
|
||||
#include "dmxgrab.h"
|
||||
#include "dmxselection.h"
|
||||
#include "dmxatom.h"
|
||||
#include "dmxshm.h"
|
||||
|
||||
|
|
@ -1261,6 +1262,7 @@ Bool dmxCloseScreen(int idx, ScreenPtr pScreen)
|
|||
#ifdef MITSHM
|
||||
dmxResetShm();
|
||||
#endif
|
||||
dmxResetSelections();
|
||||
dmxResetGrabs();
|
||||
dmxResetProps();
|
||||
dmxResetFonts();
|
||||
|
|
|
|||
141
hw/dmx/dmxselection.c
Normal file
141
hw/dmx/dmxselection.c
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* Copyright © 2008 Novell, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software
|
||||
* and its documentation for any purpose is hereby granted without
|
||||
* fee, provided that the above copyright notice appear in all copies
|
||||
* and that both that copyright notice and this permission notice
|
||||
* appear in supporting documentation, and that the name of
|
||||
* Novell, Inc. not be used in advertising or publicity pertaining to
|
||||
* distribution of the software without specific, written prior permission.
|
||||
* Novell, Inc. makes no representations about the suitability of this
|
||||
* software for any purpose. It is provided "as is" without express or
|
||||
* implied warranty.
|
||||
*
|
||||
* NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
|
||||
* NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Author: David Reveman <davidr@novell.com>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_DMX_CONFIG_H
|
||||
#include <dmx-config.h>
|
||||
#endif
|
||||
|
||||
#include "dmx.h"
|
||||
#include "dmxlog.h"
|
||||
#include "dmxselection.h"
|
||||
|
||||
#include "selection.h"
|
||||
|
||||
#ifdef PANORAMIX
|
||||
#include "panoramiX.h"
|
||||
#include "panoramiXsrv.h"
|
||||
#endif
|
||||
|
||||
static void
|
||||
dmxBESetSelectionOwner (WindowPtr pWin,
|
||||
Selection *pSel)
|
||||
{
|
||||
}
|
||||
|
||||
static int (*dmxSaveProcVector[256]) (ClientPtr);
|
||||
|
||||
static int
|
||||
dmxProcSetSelectionOwner (ClientPtr client)
|
||||
{
|
||||
WindowPtr pWin;
|
||||
Selection *pSel;
|
||||
int err;
|
||||
REQUEST(xSetSelectionOwnerReq);
|
||||
|
||||
err = (*dmxSaveProcVector[X_SetSelectionOwner]) (client);
|
||||
if (err != Success)
|
||||
return err;
|
||||
|
||||
if (dixLookupWindow (&pWin,
|
||||
stuff->window,
|
||||
serverClient,
|
||||
DixReadAccess) != Success ||
|
||||
dixLookupSelection (&pSel,
|
||||
stuff->selection,
|
||||
serverClient,
|
||||
DixReadAccess) != Success)
|
||||
return Success;
|
||||
|
||||
#ifdef PANORAMIX
|
||||
if (!noPanoramiXExtension)
|
||||
{
|
||||
PanoramiXRes *win;
|
||||
int j;
|
||||
|
||||
if ((win = (PanoramiXRes *) SecurityLookupIDByType (serverClient,
|
||||
stuff->window,
|
||||
XRT_WINDOW,
|
||||
DixReadAccess)))
|
||||
{
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
if (dixLookupWindow (&pWin,
|
||||
win->info[j].id,
|
||||
serverClient,
|
||||
DixReadAccess) == Success)
|
||||
dmxBESetSelectionOwner (pWin, pSel);
|
||||
}
|
||||
}
|
||||
|
||||
return Success;
|
||||
}
|
||||
#endif
|
||||
|
||||
dmxBESetSelectionOwner (pWin, pSel);
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
static int
|
||||
dmxProcGetSelectionOwner (ClientPtr client)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = (*dmxSaveProcVector[X_GetSelectionOwner]) (client);
|
||||
if (err != Success)
|
||||
return err;
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
static int
|
||||
dmxProcConvertSelection (ClientPtr client)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = (*dmxSaveProcVector[X_ConvertSelection]) (client);
|
||||
if (err != Success)
|
||||
return err;
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
void dmxInitSelections (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
dmxSaveProcVector[i] = ProcVector[i];
|
||||
|
||||
ProcVector[X_SetSelectionOwner] = dmxProcSetSelectionOwner;
|
||||
ProcVector[X_ConvertSelection] = dmxProcConvertSelection;
|
||||
}
|
||||
|
||||
void dmxResetSelections (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
ProcVector[i] = dmxSaveProcVector[i];
|
||||
}
|
||||
34
hw/dmx/dmxselection.h
Normal file
34
hw/dmx/dmxselection.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright © 2008 Novell, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software
|
||||
* and its documentation for any purpose is hereby granted without
|
||||
* fee, provided that the above copyright notice appear in all copies
|
||||
* and that both that copyright notice and this permission notice
|
||||
* appear in supporting documentation, and that the name of
|
||||
* Novell, Inc. not be used in advertising or publicity pertaining to
|
||||
* distribution of the software without specific, written prior permission.
|
||||
* Novell, Inc. makes no representations about the suitability of this
|
||||
* software for any purpose. It is provided "as is" without express or
|
||||
* implied warranty.
|
||||
*
|
||||
* NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
|
||||
* NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Author: David Reveman <davidr@novell.com>
|
||||
*/
|
||||
|
||||
#ifndef DMXSELECTION_H
|
||||
#define DMXSELECTION_H
|
||||
|
||||
#include "dmx.h"
|
||||
|
||||
extern void dmxInitSelections (void);
|
||||
extern void dmxResetSelections (void);
|
||||
|
||||
#endif /* DMXSELECTION_H */
|
||||
Loading…
Add table
Reference in a new issue