Hello community, here is the log from the commit of package xorg-x11-server for openSUSE:Factory checked in at 2012-07-10 14:18:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old) and /work/SRC/openSUSE:Factory/.xorg-x11-server.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes 2012-06-26 17:43:14.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes 2012-07-10 14:18:15.000000000 +0200 @@ -1,0 +2,8 @@ +Mon Jul 9 21:28:59 UTC 2012 - [email protected] + +- Update to Version 1.12.3 + + The third stable update to the X.Org X server 1.12 series is now available. + A few smaller changes only since the second RC, some memory leak fixes and two + fixes to avoid out-of-bounds array access. + +------------------------------------------------------------------- Old: ---- xorg-server-1.12.2.tar.bz2 New: ---- xorg-server-1.12.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-server.spec ++++++ --- /var/tmp/diff_new_pack.b7Fpm9/_old 2012-07-10 14:18:28.000000000 +0200 +++ /var/tmp/diff_new_pack.b7Fpm9/_new 2012-07-10 14:18:28.000000000 +0200 @@ -17,7 +17,7 @@ Name: xorg-x11-server -%define dirsuffix 1.12.2 +%define dirsuffix 1.12.3 %define vnc 1 Summary: X License: GPL-2.0+ ; MIT ++++++ xorg-server-1.12.2.tar.bz2 -> xorg-server-1.12.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/Xi/extinit.c new/xorg-server-1.12.3/Xi/extinit.c --- old/xorg-server-1.12.2/Xi/extinit.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/Xi/extinit.c 2012-07-09 02:44:01.000000000 +0200 @@ -365,7 +365,7 @@ extern XExtensionVersion XIVersion; -Mask PropagateMask[MAXDEVICES]; +Mask PropagateMask[EMASKSIZE]; /***************************************************************** * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/Xi/stubs.c new/xorg-server-1.12.3/Xi/stubs.c --- old/xorg-server-1.12.2/Xi/stubs.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/Xi/stubs.c 2012-07-09 02:44:01.000000000 +0200 @@ -141,4 +141,5 @@ void DeleteInputDeviceRequest(DeviceIntPtr dev) { + RemoveDevice(dev, TRUE); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/Xi/xiquerydevice.c new/xorg-server-1.12.3/Xi/xiquerydevice.c --- old/xorg-server-1.12.2/Xi/xiquerydevice.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/Xi/xiquerydevice.c 2012-07-09 02:44:01.000000000 +0200 @@ -430,7 +430,7 @@ { touch->type = XITouchClass; touch->length = sizeof(xXITouchInfo) >> 2; - touch->sourceid = touch->sourceid; + touch->sourceid = dev->touch->sourceid; touch->mode = dev->touch->mode; touch->num_touches = dev->touch->num_touches; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/configure.ac new/xorg-server-1.12.3/configure.ac --- old/xorg-server-1.12.2/configure.ac 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/configure.ac 2012-07-09 02:44:01.000000000 +0200 @@ -26,8 +26,8 @@ dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.12.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2012-05-29" +AC_INIT([xorg-server], 1.12.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2012-07-09" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/dix/getevents.c new/xorg-server-1.12.3/dix/getevents.c --- old/xorg-server-1.12.2/dix/getevents.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/dix/getevents.c 2012-07-09 02:44:01.000000000 +0200 @@ -35,6 +35,7 @@ #include <X11/keysym.h> #include <X11/Xproto.h> #include <math.h> +#include <limits.h> #include "misc.h" #include "resource.h" @@ -750,6 +751,29 @@ } } +static void +add_to_scroll_valuator(DeviceIntPtr dev, ValuatorMask *mask, int valuator, double value) +{ + double v; + + if (!valuator_mask_fetch_double(mask, valuator, &v)) + return; + + /* protect against scrolling overflow. INT_MAX for double, because + * we'll eventually write this as 32.32 fixed point */ + if ((value > 0 && v > INT_MAX - value) || (value < 0 && v < INT_MIN - value)) { + v = 0; + + /* reset last.scroll to avoid a button storm */ + valuator_mask_set_double(dev->last.scroll, valuator, 0); + } + else + v += value; + + valuator_mask_set_double(mask, valuator, v); +} + + /** * Move the device's pointer by the values given in @valuators. * @@ -768,13 +792,17 @@ if (!valuator_mask_isset(mask, i)) continue; - val += valuator_mask_get_double(mask, i); + + add_to_scroll_valuator(dev, mask, i, val); + /* x & y need to go over the limits to cross screens if the SD * isn't currently attached; otherwise, clip to screen bounds. */ if (valuator_get_mode(dev, i) == Absolute && - ((i != 0 && i != 1) || clip_xy)) + ((i != 0 && i != 1) || clip_xy)) { + val = valuator_mask_get_double(mask, i); clipAxis(dev, i, &val); - valuator_mask_set_double(mask, i, val); + valuator_mask_set_double(mask, i, val); + } } } @@ -1151,16 +1179,33 @@ transformAbsolute(DeviceIntPtr dev, ValuatorMask *mask) { double x, y, ox, oy; + int has_x, has_y; + + has_x = valuator_mask_fetch_double(mask, 0, &ox); + has_y = valuator_mask_fetch_double(mask, 1, &oy); + + if (!has_x && !has_y) + return; + + if (!has_x || !has_y) { + struct pixman_f_transform invert; + + /* undo transformation from last event */ + ox = dev->last.valuators[0]; + oy = dev->last.valuators[1]; + + pixman_f_transform_invert(&invert, &dev->transform); + transform(&invert, &ox, &oy); + + x = ox; + y = oy; + } if (valuator_mask_isset(mask, 0)) ox = x = valuator_mask_get_double(mask, 0); - else - ox = x = dev->last.valuators[0]; if (valuator_mask_isset(mask, 1)) oy = y = valuator_mask_get_double(mask, 1); - else - oy = y = dev->last.valuators[1]; transform(&dev->transform, &x, &y); @@ -1474,6 +1519,7 @@ return num_events; } + /** * Generate a complete series of InternalEvents (filled into the EventList) * representing pointer motion, or button presses. If the device is a slave @@ -1519,7 +1565,7 @@ * necessary. This only needs to cater for the XIScrollFlagPreferred * axis (if more than one scrolling axis is present) */ if (type == ButtonPress) { - double val, adj; + double adj; int axis; int h_scroll_axis = -1; int v_scroll_axis = -1; @@ -1555,8 +1601,7 @@ if (adj != 0.0 && axis != -1) { adj *= pDev->valuator->axes[axis].scroll.increment; - val = valuator_mask_get_double(&mask, axis) + adj; - valuator_mask_set_double(&mask, axis, val); + add_to_scroll_valuator(pDev, &mask, axis, adj); type = MotionNotify; buttons = 0; flags |= POINTER_EMULATED; @@ -1574,7 +1619,7 @@ /* Now turn the smooth-scrolling axes back into emulated button presses * for legacy clients, based on the integer delta between before and now */ for (i = 0; i < valuator_mask_size(&mask); i++) { - if (i >= pDev->valuator->numAxes) + if ( !pDev->valuator || (i >= pDev->valuator->numAxes)) break; if (!valuator_mask_isset(&mask, i)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/dix/touch.c new/xorg-server-1.12.3/dix/touch.c --- old/xorg-server-1.12.2/dix/touch.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/dix/touch.c 2012-07-09 02:44:01.000000000 +0200 @@ -460,14 +460,17 @@ void TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID resource) { - InternalEvent *tel = InitEventList(GetMaximumEventsNum()); - ValuatorMask *mask = valuator_mask_new(0); + InternalEvent *tel; + ValuatorMask *mask; int i, nev; int flags; if (!ti->history) return; + tel = InitEventList(GetMaximumEventsNum()); + mask = valuator_mask_new(0); + valuator_mask_set_double(mask, 0, ti->history[0].valuators.data[0]); valuator_mask_set_double(mask, 1, ti->history[0].valuators.data[1]); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/common/xf86Config.c new/xorg-server-1.12.3/hw/xfree86/common/xf86Config.c --- old/xorg-server-1.12.2/hw/xfree86/common/xf86Config.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/common/xf86Config.c 2012-07-09 02:44:01.000000000 +0200 @@ -2324,6 +2324,7 @@ current = dev; free(*dev); + *dev = NULL; do { *current = *(current + 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/common/xf86Init.c new/xorg-server-1.12.3/hw/xfree86/common/xf86Init.c --- old/xorg-server-1.12.2/hw/xfree86/common/xf86Init.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/common/xf86Init.c 2012-07-09 02:44:01.000000000 +0200 @@ -962,6 +962,7 @@ } #endif #endif + xf86UnblockSIGIO(0); beenHere = TRUE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/common/xf86Xinput.c new/xorg-server-1.12.3/hw/xfree86/common/xf86Xinput.c --- old/xorg-server-1.12.2/hw/xfree86/common/xf86Xinput.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/common/xf86Xinput.c 2012-07-09 02:44:01.000000000 +0200 @@ -1059,26 +1059,24 @@ xf86PostMotionEventM(device, is_absolute, &mask); } -void -xf86PostMotionEventM(DeviceIntPtr device, - int is_absolute, const ValuatorMask *mask) +static int +xf86CheckMotionEvent4DGA(DeviceIntPtr device, int is_absolute, + const ValuatorMask *mask) { - int flags = 0; - - if (valuator_mask_num_valuators(mask) > 0) { - if (is_absolute) - flags = POINTER_ABSOLUTE; - else - flags = POINTER_RELATIVE | POINTER_ACCELERATE; - } + int stolen = 0; #if XFreeXDGA + ScreenPtr scr = NULL; + int idx, i; + /* The evdev driver may not always send all axes across. */ - if (valuator_mask_isset(mask, 0) || valuator_mask_isset(mask, 1)) - if (miPointerGetScreen(device)) { - int index = miPointerGetScreen(device)->myNum; + if (valuator_mask_isset(mask, 0) || valuator_mask_isset(mask, 1)) { + scr = miPointerGetScreen(device); + if (scr) { int dx = 0, dy = 0; + idx = scr->myNum; + if (valuator_mask_isset(mask, 0)) { dx = valuator_mask_get(mask, 0); if (is_absolute) @@ -1091,11 +1089,75 @@ dy -= device->last.valuators[1]; } - if (DGAStealMotionEvent(device, index, dx, dy)) - return; + if (DGAStealMotionEvent(device, idx, dx, dy)) + stolen = 1; + } + } + + for (i = 2; i < valuator_mask_size(mask); i++) { + AxisInfoPtr ax; + double incr; + int val, button; + + if (i >= device->valuator->numAxes) + break; + + if (!valuator_mask_isset(mask, i)) + continue; + + ax = &device->valuator->axes[i]; + + if (ax->scroll.type == SCROLL_TYPE_NONE) + continue; + + if (!scr) { + scr = miPointerGetScreen(device); + if (!scr) + break; + idx = scr->myNum; + } + + incr = ax->scroll.increment; + val = valuator_mask_get(mask, i); + + if (ax->scroll.type == SCROLL_TYPE_VERTICAL) { + if (incr * val < 0) + button = 4; /* up */ + else + button = 5; /* down */ + } else { /* SCROLL_TYPE_HORIZONTAL */ + if (incr * val < 0) + button = 6; /* left */ + else + button = 7; /* right */ } + + if (DGAStealButtonEvent(device, idx, button, 1) && + DGAStealButtonEvent(device, idx, button, 0)) + stolen = 1; + } + #endif + return stolen; +} + +void +xf86PostMotionEventM(DeviceIntPtr device, + int is_absolute, const ValuatorMask *mask) +{ + int flags = 0; + + if (xf86CheckMotionEvent4DGA(device, is_absolute, mask)) + return; + + if (valuator_mask_num_valuators(mask) > 0) { + if (is_absolute) + flags = POINTER_ABSOLUTE; + else + flags = POINTER_RELATIVE | POINTER_ACCELERATE; + } + QueuePointerEvents(device, MotionNotify, 0, flags, mask); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/common/xf86sbusBus.c new/xorg-server-1.12.3/hw/xfree86/common/xf86sbusBus.c --- old/xorg-server-1.12.2/hw/xfree86/common/xf86sbusBus.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/common/xf86sbusBus.c 2012-07-09 02:44:01.000000000 +0200 @@ -619,8 +619,9 @@ pScrn->virtualY = psdp->height; } -static sbusPaletteKeyIndex; -static DevPrivateKey sbusPaletteKey = &sbusPaletteKeyIndex; +static DevPrivateKeyRec sbusPaletteKeyRec; +#define sbusPaletteKey (&sbusPaletteKeyRec) + typedef struct _sbusCmap { sbusDevicePtr psdp; CloseScreenProcPtr CloseScreen; @@ -692,6 +693,9 @@ struct fbcmap fbcmap; unsigned char data[2]; + if (!dixRegisterPrivateKey(sbusPaletteKey, PRIVATE_SCREEN, 0)) + FatalError("Cannot register sbus private key"); + cmap = xnfcalloc(1, sizeof(sbusCmapRec)); dixSetPrivate(&pScreen->devPrivates, sbusPaletteKey, cmap); cmap->psdp = psdp; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/doc/ddxDesign.xml new/xorg-server-1.12.3/hw/xfree86/doc/ddxDesign.xml --- old/xorg-server-1.12.2/hw/xfree86/doc/ddxDesign.xml 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/doc/ddxDesign.xml 2012-07-09 02:44:01.000000000 +0200 @@ -665,11 +665,6 @@ </para> <para> - The core server contains a list of mandatory modules. These are loaded - first. Currently the only module on this list is the bitmap font module. - </para> - - <para> The next set of modules loaded are those specified explicitly in the &k.module; section of the config file. </para> @@ -5992,26 +5987,6 @@ </programlisting> </para> - </blockquote></para></blockquote> - - <blockquote><para> - <programlisting> - void LoadFont(FontModule *font); - </programlisting> - <blockquote><para> - This registers the entry points for the font rasteriser module - identified by <parameter>font</parameter>. The <structname>FontModule</structname> - struct is defined as: - - <programlisting> - typedef struct { - InitFont initFunc; - char * name; - pointer module; -} FontModule; - </programlisting> - </para> - </blockquote></para></blockquote> </sect2> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/modes/xf86EdidModes.c new/xorg-server-1.12.3/hw/xfree86/modes/xf86EdidModes.c --- old/xorg-server-1.12.2/hw/xfree86/modes/xf86EdidModes.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/modes/xf86EdidModes.c 2012-07-09 02:44:01.000000000 +0200 @@ -723,7 +723,13 @@ 1920, 1200, 75, 0}, { 1920, 1200, 85, 0}, { 1920, 1440, 60, 0}, { -1920, 1440, 75, 0},}; + 1920, 1440, 75, 0}, + /* fill up last byte */ + { + 0,0,0,0}, { + 0,0,0,0}, { + 0,0,0,0}, { + 0,0,0,0}, }; static DisplayModePtr DDCModesFromEstIII(unsigned char *est) @@ -732,10 +738,11 @@ int i, j, m; for (i = 0; i < 6; i++) { - for (j = 7; j > 0; j--) { + for (j = 7; j >= 0; j--) { if (est[i] & (1 << j)) { m = (i * 8) + (7 - j); - modes = xf86ModesAdd(modes, + if (EstIIIModes[m].w) + modes = xf86ModesAdd(modes, FindDMTMode(EstIIIModes[m].w, EstIIIModes[m].h, EstIIIModes[m].r, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xfree86/utils/man/cvt.man new/xorg-server-1.12.3/hw/xfree86/utils/man/cvt.man --- old/xorg-server-1.12.2/hw/xfree86/utils/man/cvt.man 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xfree86/utils/man/cvt.man 2012-07-09 02:44:01.000000000 +0200 @@ -19,8 +19,8 @@ .SH OPTIONS .TP 8 .BR refresh -Provide a vertical refresh rate in kHz. The CVT standard prefers either 50.0, -60.0, 75.0 or 85.0kHz. The default is 60.0kHz. +Provide a vertical refresh rate in Hz. The CVT standard prefers either 50.0, +60.0, 75.0 or 85.0Hz. The default is 60.0Hz. .TP 8 .BR \-v | \-\-verbose Warn verbosely when a given mode does not completely correspond with CVT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xquartz/X11Application.m new/xorg-server-1.12.3/hw/xquartz/X11Application.m --- old/xorg-server-1.12.2/hw/xquartz/X11Application.m 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xquartz/X11Application.m 2012-07-09 02:44:01.000000000 +0200 @@ -1281,6 +1281,11 @@ } #endif +extern void +darwinEvents_lock(void); +extern void +darwinEvents_unlock(void); + - (void) sendX11NSEvent:(NSEvent *)e { NSPoint location = NSZeroPoint; @@ -1293,18 +1298,15 @@ int modifierFlags; BOOL isMouseOrTabletEvent, isTabletEvent; -#ifdef HAVE_LIBDISPATCH - static dispatch_once_t once_pred; - dispatch_once(&once_pred, ^{ - tilt = NSZeroPoint; - darwinTabletCurrent = darwinTabletStylus; - }); -#else if (!darwinTabletCurrent) { + /* Ensure that the event system is initialized */ + darwinEvents_lock(); + darwinEvents_unlock(); + assert(darwinTabletStylus); + tilt = NSZeroPoint; darwinTabletCurrent = darwinTabletStylus; } -#endif isMouseOrTabletEvent = [e type] == NSLeftMouseDown || [e type] == NSOtherMouseDown || @@ -1593,6 +1595,11 @@ case NSScrollWheel: { +#if MAC_OS_X_VERSION_MAX_ALLOWED < 1050 + float deltaX = [e deltaX]; + float deltaY = [e deltaY]; + BOOL isContinuous = NO; +#else CGFloat deltaX = [e deltaX]; CGFloat deltaY = [e deltaY]; CGEventRef cge = [e CGEvent]; @@ -1614,6 +1621,7 @@ deltaY *= lineHeight / 5.0; } #endif +#endif #if !defined(XPLUGIN_VERSION) || XPLUGIN_VERSION == 0 /* If we're in the background, we need to send a MotionNotify event diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xquartz/console_redirect.c new/xorg-server-1.12.3/hw/xquartz/console_redirect.c --- old/xorg-server-1.12.2/hw/xquartz/console_redirect.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xquartz/console_redirect.c 2012-07-09 02:44:01.000000000 +0200 @@ -310,6 +310,20 @@ atexit(redirect_atexit); } +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 +#define fls(v) xq_fls(v) + +static inline int fls(int value) { + unsigned int b, v; + + v = *((unsigned int *)&value); + + for(b=0 ; v ; v >>= 1 , b++); + + return b; +} +#endif + int xq_asl_log_fd(aslclient asl, aslmsg msg, int level, int fd) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/hw/xquartz/quartz.c new/xorg-server-1.12.3/hw/xquartz/quartz.c --- old/xorg-server-1.12.2/hw/xquartz/quartz.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/hw/xquartz/quartz.c 2012-07-09 02:44:01.000000000 +0200 @@ -69,6 +69,12 @@ #include <rootlessCommon.h> #include <Xplugin.h> +/* Work around a bug on Leopard's headers */ +#if defined (__LP64__) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 && MAC_OS_X_VERSION_MAX_ALLOWED < 1060 +extern OSErr UpdateSystemActivity(UInt8 activity); +#define OverallAct 0 +#endif + DevPrivateKeyRec quartzScreenKeyRec; int aquaMenuBarHeight = 0; QuartzModeProcsPtr quartzProcs = NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/randr/randr.c new/xorg-server-1.12.3/randr/randr.c --- old/xorg-server-1.12.2/randr/randr.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/randr/randr.c 2012-07-09 02:44:01.000000000 +0200 @@ -416,7 +416,7 @@ int i; if (pScrPriv->changed) { - UpdateCurrentTime(); + UpdateCurrentTimeIf(); if (pScrPriv->configChanged) { pScrPriv->lastConfigTime = currentTime; pScrPriv->configChanged = FALSE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/xkb/XKBMAlloc.c new/xorg-server-1.12.3/xkb/XKBMAlloc.c --- old/xorg-server-1.12.2/xkb/XKBMAlloc.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/xkb/XKBMAlloc.c 2012-07-09 02:44:01.000000000 +0200 @@ -375,8 +375,10 @@ nResize = 0; for (nTotal = 1, i = xkb->min_key_code; i <= xkb->max_key_code; i++) { width = XkbKeyGroupsWidth(xkb, i); - if (width < type->num_levels) + if (width < type->num_levels || width >= new_num_lvls) { + nTotal += XkbKeyNumSyms(xkb,i); continue; + } for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1; (g >= 0) && (!match); g--) { if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) { @@ -384,7 +386,7 @@ match = 1; } } - if ((!match) || (width >= new_num_lvls)) + if (!match) nTotal += XkbKeyNumSyms(xkb, i); else { nTotal += XkbKeyNumGroups(xkb, i) * new_num_lvls; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorg-server-1.12.2/xkb/xkbAccessX.c new/xorg-server-1.12.3/xkb/xkbAccessX.c --- old/xorg-server-1.12.2/xkb/xkbAccessX.c 2012-05-29 22:05:17.000000000 +0200 +++ new/xorg-server-1.12.3/xkb/xkbAccessX.c 2012-07-09 02:44:01.000000000 +0200 @@ -295,10 +295,15 @@ cn.eventType = 0; cn.requestMajor = 0; cn.requestMinor = 0; - if (xkbi->desc->ctrls->enabled_ctrls & XkbSlowKeysMask) + if (xkbi->desc->ctrls->enabled_ctrls & XkbSlowKeysMask) { AccessXKRGTurnOff((DeviceIntPtr) arg, &cn); - else + LogMessage(X_INFO, "XKB SlowKeys are disabled.\n"); + } + else { AccessXKRGTurnOn((DeviceIntPtr) arg, XkbSlowKeysMask, &cn); + LogMessage(X_INFO, "XKB SlowKeys are now enabled. Hold shift to disable.\n"); + } + return 0; } -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
