From 55cf29d7f748b814a2b8eb016fbf15635d56aa53 Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 18 May 2014 14:38:14 +0200 Subject: plink fontconfig mesa xserver xkeyboard-config git update 18 May 2014 xserver commit 01e18af17f8dc91451fbd0902049045afd1cea7e xkeyboard-config commit 2bf80b0d9b36fd56acf1f196fb781f045351efaf fontconfig commit 58acd993cb13b58c61633174071ef42da3dcac85 mesa commit 5646319f25c7880b3706bb7590e24c84fd8de0fc plink revision 10192 --- xorg-server/Xi/exevents.c | 16 +++--- xorg-server/config/config.c | 6 +- xorg-server/glamor/glamor_priv.h | 3 - xorg-server/glamor/glamor_segment.c | 11 +++- xorg-server/hw/xfree86/common/xf86Bus.c | 4 +- xorg-server/hw/xfree86/common/xf86Config.c | 34 +++++++++--- xorg-server/hw/xfree86/common/xf86Xinput.c | 9 +-- xorg-server/hw/xfree86/common/xf86platformBus.c | 3 +- xorg-server/hw/xfree86/man/xorg.conf.man | 24 ++++++++ .../hw/xfree86/os-support/linux/lnx_platform.c | 2 +- .../hw/xfree86/os-support/linux/systemd-logind.c | 7 ++- xorg-server/hw/xfree86/parser/Device.c | 6 ++ xorg-server/hw/xfree86/parser/Layout.c | 6 ++ xorg-server/hw/xfree86/parser/Screen.c | 6 ++ xorg-server/hw/xfree86/parser/xf86Parser.h | 3 + xorg-server/hw/xfree86/parser/xf86tokens.h | 1 + xorg-server/include/systemd-logind.h | 4 +- xorg-server/mi/miwindow.c | 2 +- xorg-server/randr/rrcrtc.c | 7 ++- .../xkeyboard-config/rules/base.extras.xml.in | 12 ++++ xorg-server/xkeyboard-config/rules/base.xml.in | 11 +++- .../xkeyboard-config/rules/compat/base.l1v1_c.part | 1 + .../xkeyboard-config/rules/compat/base.l2v2_c.part | 1 + .../xkeyboard-config/rules/compat/base.l3v3_c.part | 1 + .../xkeyboard-config/rules/compat/base.l4v4_c.part | 1 + .../xkeyboard-config/rules/compat/base.lv_c.part | 1 + xorg-server/xkeyboard-config/symbols/al | 64 ++++++++++++++++++++++ xorg-server/xkeyboard-config/symbols/de | 56 +++++++++++++++++++ xorg-server/xkeyboard-config/symbols/ru | 2 + xorg-server/xkeyboard-config/symbols/sun_vndr/de | 10 ++++ 30 files changed, 266 insertions(+), 48 deletions(-) (limited to 'xorg-server') diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index 9c207eb23..02530bdee 100644 --- a/xorg-server/Xi/exevents.c +++ b/xorg-server/Xi/exevents.c @@ -1469,7 +1469,7 @@ static void DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev) { - InternalEvent motion; + DeviceEvent motion; if (ti->num_listeners) { ClientPtr client; @@ -1481,11 +1481,11 @@ DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, ti->listeners[0].type != LISTENER_POINTER_GRAB) return; - motion = *ev; - motion.any.type = ET_TouchUpdate; - motion.device_event.detail.button = 0; + motion = ev->device_event; + motion.type = ET_TouchUpdate; + motion.detail.button = 0; - if (!RetrieveTouchDeliveryData(dev, ti, &motion, + if (!RetrieveTouchDeliveryData(dev, ti, (InternalEvent*)&motion, &ti->listeners[0], &client, &win, &grab, &mask)) return; @@ -1500,18 +1500,18 @@ DeliverEmulatedMotionEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, } } - DeliverTouchEmulatedEvent(dev, ti, &motion, &ti->listeners[0], client, + DeliverTouchEmulatedEvent(dev, ti, (InternalEvent*)&motion, &ti->listeners[0], client, win, grab, mask); } else { InternalEvent button; int converted; - converted = TouchConvertToPointerEvent(ev, &motion, &button); + converted = TouchConvertToPointerEvent(ev, (InternalEvent*)&motion, &button); BUG_WARN(converted == 0); if (converted) - ProcessOtherEvent(&motion, dev); + ProcessOtherEvent((InternalEvent*)&motion, dev); } } diff --git a/xorg-server/config/config.c b/xorg-server/config/config.c index def7f16ca..551451623 100644 --- a/xorg-server/config/config.c +++ b/xorg-server/config/config.c @@ -250,8 +250,6 @@ config_odev_free_attributes(struct OdevAttributes *attribs) free(iter); } - if (fd != -1) { - systemd_logind_release_fd(major, minor); - close(fd); - } + if (fd != -1) + systemd_logind_release_fd(major, minor, fd); } diff --git a/xorg-server/glamor/glamor_priv.h b/xorg-server/glamor/glamor_priv.h index 96635be39..c56c55973 100644 --- a/xorg-server/glamor/glamor_priv.h +++ b/xorg-server/glamor/glamor_priv.h @@ -30,9 +30,6 @@ #include "dix-config.h" #include -#ifndef DEBUG -#define NDEBUG -#endif #include "glamor.h" #include diff --git a/xorg-server/glamor/glamor_segment.c b/xorg-server/glamor/glamor_segment.c index 84b27acce..53f7da0cb 100644 --- a/xorg-server/glamor/glamor_segment.c +++ b/xorg-server/glamor/glamor_segment.c @@ -26,14 +26,19 @@ Bool glamor_poly_segment_nf(DrawablePtr drawable, GCPtr gc, int nseg, xSegment *seg) { - return FALSE; + if (glamor_ddx_fallback_check_pixmap(drawable) && + glamor_ddx_fallback_check_gc(gc)) { + return FALSE; + } + + miPolySegment(drawable, gc, nseg, seg); + + return TRUE; } void glamor_poly_segment(DrawablePtr drawable, GCPtr gc, int nseg, xSegment *seg) { - if (glamor_poly_segment_nf(drawable, gc, nseg, seg)) - return; miPolySegment(drawable, gc, nseg, seg); } diff --git a/xorg-server/hw/xfree86/common/xf86Bus.c b/xorg-server/hw/xfree86/common/xf86Bus.c index 507c57dbc..b3b3f8cc5 100644 --- a/xorg-server/hw/xfree86/common/xf86Bus.c +++ b/xorg-server/hw/xfree86/common/xf86Bus.c @@ -81,7 +81,7 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only) if (drv->platformProbe != NULL) { foundScreen = xf86platformProbeDev(drv); } - if (ServerIsNotSeat0()) + if (ServerIsNotSeat0() && foundScreen) return foundScreen; #endif @@ -201,7 +201,7 @@ xf86BusProbe(void) { #ifdef XSERVER_PLATFORM_BUS xf86platformProbe(); - if (ServerIsNotSeat0()) + if (ServerIsNotSeat0() && xf86_num_platform_devices > 0) return; #endif #ifdef XSERVER_LIBPCIACCESS diff --git a/xorg-server/hw/xfree86/common/xf86Config.c b/xorg-server/hw/xfree86/common/xf86Config.c index 542d5abf6..2adef44c3 100644 --- a/xorg-server/hw/xfree86/common/xf86Config.c +++ b/xorg-server/hw/xfree86/common/xf86Config.c @@ -232,6 +232,18 @@ xf86ValidateFontPath(char *path) return tmp_path; } +#define FIND_SUITABLE(pointertype, listhead, ptr) \ + do { \ + pointertype _l, _p; \ + \ + for (_l = (listhead), _p = NULL; !_p && _l; _l = (pointertype)_l->list.next) { \ + if (!_l->match_seat || (SeatId && xf86nameCompare(_l->match_seat, SeatId) == 0)) \ + _p = _l; \ + } \ + \ + (ptr) = _p; \ + } while(0) + /* * use the datastructure that the parser provides and pick out the parts * that we need at this point @@ -1580,8 +1592,11 @@ configLayout(serverLayoutPtr servlayoutp, XF86ConfLayoutPtr conf_layout, * config file, or - if it is NULL - configScreen autogenerates one for * us */ if (!count) { + XF86ConfScreenPtr screen; + + FIND_SUITABLE (XF86ConfScreenPtr, xf86configptr->conf_screen_lst, screen); slp[0].screen = xnfcalloc(1, sizeof(confScreenRec)); - if (!configScreen(slp[0].screen, xf86configptr->conf_screen_lst, + if (!configScreen(slp[0].screen, screen, 0, X_CONFIG)) { free(slp[0].screen); free(slp); @@ -1821,7 +1836,7 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr conf_screen, int scrnum, * set it to NULL so that the section can be autoconfigured later */ screenp->device = xnfcalloc(1, sizeof(GDevRec)); if ((!conf_screen->scrn_device) && (xf86configptr->conf_device_lst)) { - conf_screen->scrn_device = xf86configptr->conf_device_lst; + FIND_SUITABLE (XF86ConfDevicePtr, xf86configptr->conf_device_lst, conf_screen->scrn_device); xf86Msg(X_DEFAULT, "No device specified for screen \"%s\".\n" "\tUsing the first device section listed.\n", screenp->id); } @@ -2354,6 +2369,7 @@ xf86HandleConfigFile(Bool autoconfig) const char *scanptr; Bool singlecard = 0; Bool implicit_layout = FALSE; + XF86ConfLayoutPtr layout; if (!autoconfig) { char *filename, *dirname, *sysdirname; @@ -2429,14 +2445,17 @@ xf86HandleConfigFile(Bool autoconfig) */ /* First check if a layout section is present, and if it is valid. */ + FIND_SUITABLE(XF86ConfLayoutPtr, xf86configptr->conf_layout_lst, layout); + if (layout == NULL || xf86ScreenName != NULL) { + XF86ConfScreenPtr screen; - if (xf86configptr->conf_layout_lst == NULL || xf86ScreenName != NULL) { if (xf86ScreenName == NULL) { xf86Msg(X_DEFAULT, "No Layout section. Using the first Screen section.\n"); } + FIND_SUITABLE (XF86ConfScreenPtr, xf86configptr->conf_screen_lst, screen); if (!configImpliedLayout(&xf86ConfigLayout, - xf86configptr->conf_screen_lst, + screen, xf86configptr)) { xf86Msg(X_ERROR, "Unable to determine the screen layout\n"); return CONFIG_PARSE_ERROR; @@ -2451,16 +2470,13 @@ xf86HandleConfigFile(Bool autoconfig) if (optlist && xf86FindOption(optlist, "defaultserverlayout")) dfltlayout = xf86SetStrOption(optlist, "defaultserverlayout", NULL); - if (!configLayout - (&xf86ConfigLayout, xf86configptr->conf_layout_lst, - dfltlayout)) { + if (!configLayout(&xf86ConfigLayout, layout, dfltlayout)) { xf86Msg(X_ERROR, "Unable to determine the screen layout\n"); return CONFIG_PARSE_ERROR; } } else { - if (!configLayout(&xf86ConfigLayout, xf86configptr->conf_layout_lst, - NULL)) { + if (!configLayout(&xf86ConfigLayout, layout, NULL)) { xf86Msg(X_ERROR, "Unable to determine the screen layout\n"); return CONFIG_PARSE_ERROR; } diff --git a/xorg-server/hw/xfree86/common/xf86Xinput.c b/xorg-server/hw/xfree86/common/xf86Xinput.c index bc6b73f91..4e8060b0f 100644 --- a/xorg-server/hw/xfree86/common/xf86Xinput.c +++ b/xorg-server/hw/xfree86/common/xf86Xinput.c @@ -770,10 +770,8 @@ xf86DeleteInput(InputInfoPtr pInp, int flags) FreeInputAttributes(pInp->attrs); - if (pInp->flags & XI86_SERVER_FD) { - systemd_logind_release_fd(pInp->major, pInp->minor); - close(pInp->fd); - } + if (pInp->flags & XI86_SERVER_FD) + systemd_logind_release_fd(pInp->major, pInp->minor, pInp->fd); /* Remove the entry from the list. */ if (pInp == xf86InputDevs) @@ -873,8 +871,7 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable) sizeof(pInfo) * (new_input_devices_count + 1)); new_input_devices[new_input_devices_count] = pInfo; new_input_devices_count++; - systemd_logind_release_fd(pInfo->major, pInfo->minor); - close(fd); + systemd_logind_release_fd(pInfo->major, pInfo->minor, fd); return BadMatch; } pInfo->fd = fd; diff --git a/xorg-server/hw/xfree86/common/xf86platformBus.c b/xorg-server/hw/xfree86/common/xf86platformBus.c index 4e80f9ee3..dd118a285 100644 --- a/xorg-server/hw/xfree86/common/xf86platformBus.c +++ b/xorg-server/hw/xfree86/common/xf86platformBus.c @@ -340,8 +340,7 @@ static Bool doPlatformProbe(struct xf86_platform_device *dev, DriverPtr drvp, fd = xf86_get_platform_device_int_attrib(dev, ODEV_ATTRIB_FD, -1); major = xf86_get_platform_device_int_attrib(dev, ODEV_ATTRIB_MAJOR, 0); minor = xf86_get_platform_device_int_attrib(dev, ODEV_ATTRIB_MINOR, 0); - systemd_logind_release_fd(major, minor); - close(fd); + systemd_logind_release_fd(major, minor, fd); config_odev_add_int_attribute(dev->attribs, ODEV_ATTRIB_FD, -1); dev->flags &= ~XF86_PDEV_SERVER_FD; } diff --git a/xorg-server/hw/xfree86/man/xorg.conf.man b/xorg-server/hw/xfree86/man/xorg.conf.man index 6d2652e84..cadd87b7b 100644 --- a/xorg-server/hw/xfree86/man/xorg.conf.man +++ b/xorg-server/hw/xfree86/man/xorg.conf.man @@ -1378,6 +1378,14 @@ for the regular text mode. The frequency is specified in MHz. This is rarely used. .TP 7 +.BI "MatchSeat " "seat\-id" +Only apply this +.B Device +section if X server was started with +.B -seat +.I seat\-id +option. +.TP 7 .BI "Option \*qModeDebug\*q \*q" boolean \*q Enable printing of additional debugging information about modesetting to the server log. @@ -1900,6 +1908,14 @@ The only case where there is even a choice in this value is for depth 24, where some hardware supports both a packed 24 bit framebuffer layout and a sparse 32 bit framebuffer layout. .TP 7 +.BI "MatchSeat " "seat\-id" +Only apply this +.B Screen +section if X server was started with +.B -seat +.I seat\-id +option. +.TP 7 .B Options Various .B Option @@ -2295,6 +2311,14 @@ and the first two should normally be used to indicate the core pointer and core keyboard devices respectively. .RE .TP 7 +.BI "MatchSeat " "seat\-id" +Only apply this +.B ServerLayout +section if X server was started with +.B -seat +.I seat\-id +option. +.TP 7 .B Options In addition to the following, any option permitted in the .B ServerFlags diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c b/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c index dbd7aa0aa..308275ab4 100644 --- a/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c +++ b/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c @@ -37,7 +37,7 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) if (paused) { LogMessage(X_ERROR, "Error systemd-logind returned paused fd for drm node\n"); - systemd_logind_release_fd(major, minor); + systemd_logind_release_fd(major, minor, -1); return FALSE; } config_odev_add_int_attribute(attribs, ODEV_ATTRIB_FD, fd); diff --git a/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c b/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c index ed670a88c..73a8d55bf 100644 --- a/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c +++ b/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c @@ -162,7 +162,7 @@ cleanup: } void -systemd_logind_release_fd(int _major, int _minor) +systemd_logind_release_fd(int _major, int _minor, int fd) { struct systemd_logind_info *info = &logind_info; InputInfoPtr pInfo; @@ -174,7 +174,7 @@ systemd_logind_release_fd(int _major, int _minor) int matches = 0; if (!info->session || major == 0) - return; + goto close; /* Only release the fd if there is only 1 InputInfo left for this major * and minor, otherwise other InputInfo's are still referencing the fd. */ @@ -218,6 +218,9 @@ cleanup: if (reply) dbus_message_unref(reply); dbus_error_free(&error); +close: + if (fd != -1) + close(fd); } int diff --git a/xorg-server/hw/xfree86/parser/Device.c b/xorg-server/hw/xfree86/parser/Device.c index 073171f22..d3ac29351 100644 --- a/xorg-server/hw/xfree86/parser/Device.c +++ b/xorg-server/hw/xfree86/parser/Device.c @@ -71,6 +71,7 @@ xf86ConfigSymTabRec DeviceTab[] = { {RAMDAC, "ramdac"}, {DACSPEED, "dacspeed"}, {CLOCKS, "clocks"}, + {MATCHSEAT, "matchseat"}, {OPTION, "option"}, {VIDEORAM, "videoram"}, {BIOSBASE, "biosbase"}, @@ -216,6 +217,11 @@ xf86parseDeviceSection(void) Error(NUMBER_MSG, "TextClockFreq"); ptr->dev_textclockfreq = (int) (xf86_lex_val.realnum * 1000.0 + 0.5); break; + case MATCHSEAT: + if (xf86getSubToken(&(ptr->dev_comment)) != STRING) + Error(QUOTE_MSG, "MatchSeat"); + ptr->match_seat = xf86_lex_val.str; + break; case OPTION: ptr->dev_option_lst = xf86parseOption(ptr->dev_option_lst); break; diff --git a/xorg-server/hw/xfree86/parser/Layout.c b/xorg-server/hw/xfree86/parser/Layout.c index 7be746f04..994b31ae4 100644 --- a/xorg-server/hw/xfree86/parser/Layout.c +++ b/xorg-server/hw/xfree86/parser/Layout.c @@ -70,6 +70,7 @@ static xf86ConfigSymTabRec LayoutTab[] = { {ENDSECTION, "endsection"}, {SCREEN, "screen"}, {IDENTIFIER, "identifier"}, + {MATCHSEAT, "matchseat"}, {INACTIVE, "inactive"}, {INPUTDEVICE, "inputdevice"}, {OPTION, "option"}, @@ -109,6 +110,11 @@ xf86parseLayoutSection(void) ptr->lay_identifier = xf86_lex_val.str; has_ident = TRUE; break; + case MATCHSEAT: + if (xf86getSubToken(&(ptr->lay_comment)) != STRING) + Error(QUOTE_MSG, "MatchSeat"); + ptr->match_seat = xf86_lex_val.str; + break; case INACTIVE: { XF86ConfInactivePtr iptr; diff --git a/xorg-server/hw/xfree86/parser/Screen.c b/xorg-server/hw/xfree86/parser/Screen.c index fecd57c0c..0e9746ae5 100644 --- a/xorg-server/hw/xfree86/parser/Screen.c +++ b/xorg-server/hw/xfree86/parser/Screen.c @@ -198,6 +198,7 @@ xf86parseDisplaySubSection(void) static xf86ConfigSymTabRec ScreenTab[] = { {ENDSECTION, "endsection"}, {IDENTIFIER, "identifier"}, + {MATCHSEAT, "matchseat"}, {OBSDRIVER, "driver"}, {MDEVICE, "device"}, {MONITOR, "monitor"}, @@ -236,6 +237,11 @@ xf86parseScreenSection(void) Error(ONLY_ONE_MSG, "Identifier or Driver"); has_ident = TRUE; break; + case MATCHSEAT: + if (xf86getSubToken(&(ptr->scrn_comment)) != STRING) + Error(QUOTE_MSG, "MatchSeat"); + ptr->match_seat = xf86_lex_val.str; + break; case OBSDRIVER: if (xf86getSubToken(&(ptr->scrn_comment)) != STRING) Error(QUOTE_MSG, "Driver"); diff --git a/xorg-server/hw/xfree86/parser/xf86Parser.h b/xorg-server/hw/xfree86/parser/xf86Parser.h index 8f855ac09..c95423a1f 100644 --- a/xorg-server/hw/xfree86/parser/xf86Parser.h +++ b/xorg-server/hw/xfree86/parser/xf86Parser.h @@ -224,6 +224,7 @@ typedef struct { int dev_screen; XF86OptionPtr dev_option_lst; char *dev_comment; + char *match_seat; } XF86ConfDeviceRec, *XF86ConfDevicePtr; typedef struct { @@ -275,6 +276,7 @@ typedef struct { XF86OptionPtr scrn_option_lst; char *scrn_comment; int scrn_virtualX, scrn_virtualY; + char *match_seat; } XF86ConfScreenRec, *XF86ConfScreenPtr; typedef struct { @@ -366,6 +368,7 @@ typedef struct { XF86ConfInactivePtr lay_inactive_lst; XF86ConfInputrefPtr lay_input_lst; XF86OptionPtr lay_option_lst; + char *match_seat; char *lay_comment; } XF86ConfLayoutRec, *XF86ConfLayoutPtr; diff --git a/xorg-server/hw/xfree86/parser/xf86tokens.h b/xorg-server/hw/xfree86/parser/xf86tokens.h index f751b7b0e..5c01ce701 100644 --- a/xorg-server/hw/xfree86/parser/xf86tokens.h +++ b/xorg-server/hw/xfree86/parser/xf86tokens.h @@ -87,6 +87,7 @@ typedef enum { VENDOR, DASH, COMMA, + MATCHSEAT, OPTION, COMMENT, diff --git a/xorg-server/include/systemd-logind.h b/xorg-server/include/systemd-logind.h index 06dd03134..a4067d097 100644 --- a/xorg-server/include/systemd-logind.h +++ b/xorg-server/include/systemd-logind.h @@ -30,14 +30,14 @@ int systemd_logind_init(void); void systemd_logind_fini(void); int systemd_logind_take_fd(int major, int minor, const char *path, Bool *paus); -void systemd_logind_release_fd(int major, int minor); +void systemd_logind_release_fd(int major, int minor, int fd); int systemd_logind_controls_session(void); void systemd_logind_vtenter(void); #else #define systemd_logind_init() #define systemd_logind_fini() #define systemd_logind_take_fd(major, minor, path, paus) -1 -#define systemd_logind_release_fd(major, minor) +#define systemd_logind_release_fd(major, minor, fd) close(fd) #define systemd_logind_controls_session() 0 #define systemd_logind_vtenter() #endif diff --git a/xorg-server/mi/miwindow.c b/xorg-server/mi/miwindow.c index 951b8c519..57de91bab 100644 --- a/xorg-server/mi/miwindow.c +++ b/xorg-server/mi/miwindow.c @@ -766,7 +766,7 @@ miSpriteTrace(SpritePtr pSprite, int x, int y) WindowPtr pWin; BoxRec box; - pWin = DeepestSpriteWin(pSprite); + pWin = DeepestSpriteWin(pSprite)->firstChild; while (pWin) { if ((pWin->mapped) && (x >= pWin->drawable.x - wBorderWidth(pWin)) && diff --git a/xorg-server/randr/rrcrtc.c b/xorg-server/randr/rrcrtc.c index 6da698ea0..69b3ecf0f 100644 --- a/xorg-server/randr/rrcrtc.c +++ b/xorg-server/randr/rrcrtc.c @@ -476,7 +476,7 @@ rrCheckPixmapBounding(ScreenPtr pScreen, xorg_list_for_each_entry(slave, &pScreen->output_slave_list, output_head) { rrScrPrivPtr slave_priv = rrGetScrPriv(slave); - for (c = 0; c < slave_priv->numCrtcs; c++) + for (c = 0; c < slave_priv->numCrtcs; c++) { if (slave_priv->crtcs[c] == rr_crtc) { newbox.x1 = x; newbox.x2 = x + w; @@ -491,8 +491,9 @@ rrCheckPixmapBounding(ScreenPtr pScreen, newbox.y1 = slave_priv->crtcs[c]->y; newbox.y2 = slave_priv->crtcs[c]->y + slave_priv->crtcs[c]->mode->mode.height; } - RegionInit(&new_crtc_region, &newbox, 1); - RegionUnion(&total_region, &total_region, &new_crtc_region); + RegionInit(&new_crtc_region, &newbox, 1); + RegionUnion(&total_region, &total_region, &new_crtc_region); + } } newsize = RegionExtents(&total_region); diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in index dd7339390..9107c03f2 100644 --- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in +++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in @@ -120,6 +120,12 @@ <_description>German (Sun Type 6/7) + + + adnw + <_description>German (Aus der Neo-Welt) + + @@ -687,6 +693,12 @@ <_description>Swedish + + + dvorak_a5 + <_description>Swedish (Dvorak A5) + + sun_type6 diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in index 3b32e2209..0b0c1482c 100644 --- a/xorg-server/xkeyboard-config/rules/base.xml.in +++ b/xorg-server/xkeyboard-config/rules/base.xml.in @@ -1584,7 +1584,14 @@ alb - + + + + plisi-d1 + <_description>Albanian (Plisi D1) + + + @@ -6604,7 +6611,7 @@ diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part index 9d274dff1..9e2158767 100644 --- a/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part +++ b/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part @@ -1,2 +1,3 @@ de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part index b7d6e309a..28fb80b8a 100644 --- a/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part +++ b/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part @@ -1,2 +1,3 @@ de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 jp $sun_compat = +complete+japan(kana_lock):2 diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part index 360b4c425..db62b75e1 100644 --- a/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part +++ b/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part @@ -1,2 +1,3 @@ de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 jp $sun_compat = +complete+japan(kana_lock):3 diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part index 6633312c2..1df202f99 100644 --- a/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part +++ b/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part @@ -1,2 +1,3 @@ de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 jp $sun_compat = +complete+japan(kana_lock):4 diff --git a/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part b/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part index 927ff06b2..45b94b422 100644 --- a/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part +++ b/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part @@ -1,2 +1,3 @@ de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) diff --git a/xorg-server/xkeyboard-config/symbols/al b/xorg-server/xkeyboard-config/symbols/al index a8d6ec715..a6d58bfb7 100644 --- a/xorg-server/xkeyboard-config/symbols/al +++ b/xorg-server/xkeyboard-config/symbols/al @@ -39,3 +39,67 @@ xkb_symbols "basic" { include "level3(ralt_switch)" }; + + +partial alphanumeric_keys +xkb_symbols "plisi-d1" { + + include "us" + + name[Group1]= "Albanian (Plisi D1)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar, EuroSign ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, braceright ] }; + key { [ 9, parenleft, bracketleft ] }; + key { [ 0, parenright, bracketright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ ccedilla, Ccedilla ] }; + key { [ greater, less ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ ediaeresis, Ediaeresis ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ slash, question ] }; + + key { [ backslash, bar ] }; + + include "level3(ralt_switch)" +}; + diff --git a/xorg-server/xkeyboard-config/symbols/de b/xorg-server/xkeyboard-config/symbols/de index 150c081c9..368456c52 100644 --- a/xorg-server/xkeyboard-config/symbols/de +++ b/xorg-server/xkeyboard-config/symbols/de @@ -748,3 +748,59 @@ partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/de(sun_type6)" }; + +partial alphanumeric_keys +xkb_symbols "adnw_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL"; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ odiaeresis, odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "adnw" { + + include "de(adnw_base)" + + name[Group1]= "German (Aus der Neo-Welt)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch)" + include "level5(ralt_switch)" +}; + diff --git a/xorg-server/xkeyboard-config/symbols/ru b/xorg-server/xkeyboard-config/symbols/ru index fd1cc0ec5..64c862b26 100644 --- a/xorg-server/xkeyboard-config/symbols/ru +++ b/xorg-server/xkeyboard-config/symbols/ru @@ -156,6 +156,8 @@ xkb_symbols "typewriter-legacy" { partial alphanumeric_keys xkb_symbols "phonetic" { + name[Group1]= "Russian (phonetic)"; + key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, Cyrillic_io ] }; diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/de b/xorg-server/xkeyboard-config/symbols/sun_vndr/de index 7736088bb..d95b07952 100644 --- a/xorg-server/xkeyboard-config/symbols/sun_vndr/de +++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/de @@ -120,6 +120,16 @@ partial alphanumeric_keys include "de(neo_base)" }; +partial alphanumeric_keys + xkb_symbols "adnw" { + include "de(adnw)" +}; + +partial alphanumeric_keys + xkb_symbols "adnw_base" { + include "de(adnw_base)" +}; + partial alphanumeric_keys xkb_symbols "neo" { include "de(neo)" -- cgit v1.2.3